Apache Airflow

[Airflow] .airflowignore - DAG 정의 파일 무시

비번변경 2022. 9. 25. 22:21

.airflowignore

Airflow가 무시해야 하는 DAG_FOLDER 내 디렉터리, 파일을 지정하는 설정 파일

.airflowignore 파일의 각 행은 정규 표현식 패턴을 지정하며, DAG id가 아니라 디렉터리나 파일의 이름이 패턴과 일치하는 경우 무시된다. .gitignore와 비슷하게 생각하면 된다.

 

 

경로

.airflowignore는 DAG_FOLDER 또는 그 하위 폴더에 위치해야 한다. 이 글의 경우, dag_folder는 다음과 같다.

## airflow.cfg

[core]
# The folder where your airflow pipelines live, most likely a
# subfolder in a code repository. This path must be absolute.
dags_folder = /home/airflow/airflow/dags

따라서 .airflowignore는 /home/airflow/airflow/dags/ 또는 그 하위 경로 아래에 위치해야 한다.

/home/airflow/airflow/dags/

다만 .airflowignore 파일의 범위(scope)가 파일이 존재하는 디렉터리와 그 하위 폴더이므로, 하위 디렉터리인 /home/airflow/airflow/dags/ignore_dags 아래에 .airflowignore 파일이 존재하는 경우 /home/airflow/airflow/dags/에 위치한 DAG 정의 파일은 패턴이 일치해도 무시되지 않는다.

 

이 글에서는 .airflwignore가 어떻게 동작하는지 테스트해보려고 한다.

 

테스트 디렉터리 구조 및 DAG 목록

DAG_FOLDER와 하위 디렉터리에 dag_ 로 시작하는 DAG 정의 파일을 생성해두었다.

테스트 디렉터리 구조

각 DAG 정의 파일에 의해 생성된 DAG 목록은 아래와 같다.

airflow dags list | grep dag_ | grep -v home

DAG 목록

 

 

DAG_FOLDER/.airflowignore

1. 파일 무시

dag_ignoretest.py라는 이름의 DAG 정의 파일을 무시하려고 한다.

DAG_FOLDER에 아래의 내용으로 .airflowignore 파일을 생성했다.

## DAG_FOLDER/dags/.airflowignore

ignoretest

DAG_FOLDER/dags/.airflowignore

airflow cli로 DAG 목록을 확인해보면 하위 디렉터리를 포함하여 패턴에 일치한 dag_ignoretest.py 파일이 전부 무시된 것을 확인할 수 있다.

파일 무시 확인

 

2. 하위 디렉터리 무시

ignore_ 로 시작하고 추가적인 문자를 포함한 디렉터리(ignore_*/) 내 DAG 정의 파일을 전부 무시하려고 한다.

.airflowignore는 정규식 패턴을 지원하므로 다음과 같이 설정할 수 있다.

## DAG_FOLDER/dags/.airflowignore

ignore_[a-zA-Z0-9]+/

하위 디렉터리 설정

설정 이후 DAG 목록은 다음과 같다.

하위 디렉터리 무시 확인

참고로 하위 디렉터리를 무시하려고 할 때 /를 붙이지 않으면 동일 디렉터리 내에 위치하면서 패턴에 일치하는 DAG 정의 파일(예: DAG_FOLDER/ingore_a.py)도 무시된다.

 

 

DAG_FOLDER/sub_dir/.airflowignore

DAG_FOLDER의 하위 디렉터리인 ignore_dags 아래에 위치한 dag_ignoretest.py만 무시하고자 한다.

DAG_FOLDER/ignore_dags에 아래의 내용으로 .airflowignore 파일을 생성했다.

## DAG_FOLDER/dags/ignore_dags/.airflowignore

ignoretest

DAG_FOLDER/dags/ignore_dags/.airflowignore

설정 이후 DAG 목록을 확인해보면 다른 디렉터리에 위치한 dag_ignoretest.py는 무시되지 않은 모습을 확인할 수 있다.

하위 디렉터리 .airflowignore 동작 확인

 

 

 

참고 문서

https://airflow.apache.org/docs/apache-airflow/1.10.1/concepts.html#airflowignore

https://airflow.apache.org/docs/apache-airflow/stable/concepts/dags.html

 

 

 

728x90