태스크 종속 DAG
이 페이지에서는 여러 DAG에서 cron 예약을 사용하는 대신 태스크 종속 방향성 비순환 그래프 (DAG)를 사용 설정하여 단일 DAG 내에서 SQL 테이블 노드 간의 태스크 종속 항목을 지정하는 단계를 설명합니다. 맞춤설정 가능한 설정을 사용하여 서로 종속되는 여러 테이블 새로고침 노드가 있는 Managed Service for Apache Airflow DAG를 생성합니다. Cortex Framework는 태스크 종속 SAP DAG (ECC 및 S/4HANA)에 권장되는 설정을 제공합니다. 그러나 이러한 설정을 추가로 맞춤설정하거나 모든 데이터 소스에 태스크 종속 DAG를 정의할 수 있습니다.
태스크 종속 DAG 사용 설정
enableTaskDependencies필드를True로 설정하여 config.json 파일을 수정합니다. 이 설정은 접미사_task_dep.yaml이 있는 태스크 종속 보고 설정 파일을 검색하는 Cortex Framework를 활성화합니다.- 태스크 종속 항목이 필요한 각 데이터 소스에 접미사
_task_dep.yaml이 있는 전용 보고 설정 파일을 만듭니다. 자세한 내용은 태스크 종속 보고 설정 정의를 참고하세요. -
table_setting.dag_setting을table유형 노드에 새 섹션으로 추가하여 태스크 종속 항목을 맞춤설정합니다. 자세한 내용은 태스크 종속 항목 지정 및 맞춤설정을 참고하세요. - 표준 빌드 프로세스를 사용하여 Cortex Framework를 빌드합니다.
-
dags/data_source/reporting/task_dep_dags/dag_name아래의 대상 버킷에 있는 생성된 파일을 검사합니다. 이 폴더에는 Managed Airflow DAG를 정의하는 Python 파일과 DAG 내의 각 테이블 노드에 대한 새로고침 쿼리가 포함된 SQL 파일이 포함됩니다. - 표준 빌드 프로세스를 사용하여 Cortex Framework를 배포하려면 파일을 Managed Airflow DAG 버킷에 복사합니다.
태스크 종속 보고 설정 정의
태스크 종속 항목이 필요한 각 데이터 소스에 대해 Cortex Framework는 접미사 _task_dep.yaml이 있는 태스크 종속 보고 설정 파일을 예상합니다.
이러한 파일을 만들고 업데이트할 때는 다음 사항을 고려하세요.
- SAP의 경우 제공된 설정 파일
reporting_settings_ecc_task_dep.yaml및reporting_settings_s4_task_dep.yaml을 맞춤설정하고 사용할 수 있습니다. - 다른 데이터 소스의 경우 원래 데이터 소스와 함께 자체 태스크 종속 보고 설정을 만듭니다(예:
reporting_settings_task_dep.yaml.)
보고 설정 파일 내에서 사용할 수 있는 필드에 대한 자세한 내용은 dag_types.py를 참고하세요.
태스크 종속 항목 지정 및 맞춤설정
table_setting.dag_setting을 table 유형 노드에 새 섹션으로 추가하여 태스크 종속 항목을 맞춤설정합니다.
- sql_file: dependent_table2.sql
type: table
table_setting:
dag_setting:
name: "dag1"
parents: ["dependent_table1.sql"]
DAG 설정에는 두 필드가 포함됩니다.
name: 태스크 종속 DAG의 모든 노드 에 필요한 문자열로, 테이블 노드가 속한 DAG의 이름을 지정합니다. 여기에는 DAG 내의 다른 노드에서 상위 요소 로 참조되는 최상위 노드가 포함됩니다.parents: 동일한 DAG 내에 있는 다른 테이블 노드의sql_file경로를 포함하는 선택적 문자열 목록입니다. 노드가 트리거되기 전에 이러한 상위 요소가 성공적으로 실행되어야 합니다.
추가 고려사항:
- 상위 요소가 정의되지 않은 노드는 최상위 노드로 간주되며 DAG 시작 시 실행됩니다.
- 최상위 노드 중 하나 이상에 DAG 일정으로 사용되는
table_setting.load_frequency가 정의되어 있어야 합니다. - 여러 최상위 노드에
load_frequency가 정의되어 있는 경우 동일해야 합니다. parents가 정의된 하위 노드는load_frequency를 정의할 수 없습니다.dag_setting이 정의되지 않은 노드는 단일 테이블 새로고침 노드가 있고 태스크 종속 항목이 없는 DAG로 이전과 동일하게 생성됩니다.- 뷰 및 스크립트와 같은 다른 노드 유형은 테이블을 새로고침하기 위해 DML이 있는 노드만 생성하는 태스크 종속 DAG에 포함될 수 없습니다.