DAG 직렬화를 위한 환경 구성

일반적인 Cloud Composer 환경에서는 Directed Acrylic Graphs(DAG)가 Airflow 스케줄러 및 웹 서버에서 지속적으로 처리됩니다. 스케줄러가 웹서버로 DAG 파일을 전송하기 전에 강제로 DAG 파일을 처리하는 DAG 직렬화를 사용 설정하면 Airflow 웹서버의 신뢰성 및 성능을 개선할 수 있습니다.

작동 방식

DAG 직렬화가 없는 경우 DAG는 스케줄러와 웹 서버에 의해 동시에 처리되며 웹 서버는 시작하자마자 전체 DAG 백을 로드합니다. DAG 직렬화를 사용 설정하면 웹 서버가 시작되기 전에 스케줄러가 모든 DAG 파일을 파싱하여 직렬화된 DAG 테이블에 결과를 저장합니다. 그러면 웹 서버가 처리를 위해 테이블에서 각 DAG를 주문형으로 로드합니다. 이러한 방식으로 DAG를 직렬화하면 특히 많은 수의 DAG를 처리할 때 웹 서버의 CPU 및 메모리 사용량이 감소합니다.

전제 조건 및 제한사항

  • DAG 직렬화는 Composer 버전 1.8.2 이상 및 Airflow 버전 1.10.3 이상을 사용하는 Cloud Composer 환경에서만 사용 설정할 수 있습니다. 사용 가능한 모든 버전은 Cloud Composer 버전 목록을 참조하세요.

  • DAG 직렬화는 비동기 DAG 로드와 동시에 사용할 수 없습니다.

  • DAG 직렬화를 사용 설정하면 Cloud Composer의 모든 Airflow 웹 서버 플러그인이 중지됩니다. 이는 Airflow 연산자, 센서 등을 비롯한 스케줄러 또는 작업자 플러그인에 영향을 미치지 않습니다.

DAG 직렬화 사용 설정

DAG 직렬화를 사용하려면 다음 구성 매개변수를 지정해야 합니다.

섹션
core store_serialized_dags True
core store_dag_code True
core min_serialized_dag_update_interval 30
scheduler dag_dir_list_interval 30

[core] min_serialized_dag_update_interval는 직렬화된 DAG가 데이터베이스에서 업데이트되는 빈도를 제어하고 [scheduler] dag_dir_list_interval는 삭제 된 DAG가 데이터베이스에서 삭제되는 빈도를 제어합니다. 업데이트 빈도가 높으면 성능에 부정적인 영향을 줄 수 있으므로 30초로 설정하는 것이 좋습니다.

Airflow 구성 재정의

Airflow 구성을 재정의하는 방법에는 두 가지가 있습니다.

DAG 직렬화 사용 중지

DAG 직렬화를 사용 중지하려면 Airflow 구성 재정의를 사용하여 [core] store_serialized_dags[core] store_dag_codeFalse으로 설정합니다.

참조

DAG 직렬화에 대한 자세한 내용은 Airflow 문서의 관련 자료를 참조하세요.