태스크 종속 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 파일을 수정합니다. 이 설정은 Cortex 프레임워크가_task_dep.yaml접미사가 있는 작업 종속 보고 설정 파일을 검색하도록 활성화합니다.- 작업 종속 항목이 필요한 각 데이터 소스에 대해
_task_dep.yaml접미사가 있는 전용 보고 설정 파일을 만듭니다. 자세한 내용은 작업 종속 보고 설정 정의를 참고하세요. table_setting.dag_setting를table유형 노드에 새 섹션으로 추가하여 태스크 종속 항목을 맞춤설정합니다. 자세한 내용은 태스크 종속 항목 지정 및 맞춤설정을 참고하세요.- 표준 빌드 프로세스를 사용하여 Cortex Framework를 빌드합니다.
dags/data_source/reporting/task_dep_dags/dag_name아래의 타겟 버킷에 있는 생성된 파일을 검토합니다. 이 폴더에는 관리형 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 유형 노드에 table_setting.dag_setting를 새 섹션으로 추가하여 태스크 종속 항목을 맞춤설정합니다.
- 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 시작 시 실행됩니다.
- 하나 이상의 최상위 노드에
table_setting.load_frequency가 정의되어 있어야 하며 이는 DAG 일정으로 사용됩니다. - 여러 최상위 노드에
load_frequency이 정의된 경우load_frequency은 동일해야 합니다. parents가 정의된 하위 노드는load_frequency를 정의할 수 없습니다.dag_setting가 정의되지 않은 노드는 단일 테이블 새로고침 노드가 있고 작업 종속 항목이 없는 DAG로 이전과 동일하게 생성됩니다.- 뷰 및 스크립트와 같은 다른 노드 유형은 테이블을 새로고침하는 DML이 있는 노드만 생성하는 작업 종속 DAG에 포함할 수 없습니다.