외부 DAG를 v4.2에서 v5.0으로 마이그레이션

이 가이드에서는 외부 유향 그래프 (DAG)에서 Cortex Data Foundation v5.0 아키텍처 내의 새 위치로 출력 테이블을 재배치하는 데 필요한 단계를 간략히 설명합니다. 예를 들어 날씨 및 동향 이 가이드는 이전 Cortex Framework Data Foundation 버전 (4.2~5.0)에서 외부 DAG를 구현했으며 현재 업그레이드 중인 사용자를 위해 특별히 설계되었습니다. 외부 DAG를 사용하지 않았거나 SAP를 배포하지 않은 경우 이 가이드는 적용되지 않습니다.

컨텍스트

4.2 이전의 Cortex Framework Data Foundation 버전은 _GEN_EXT 플래그를 사용하여 외부 데이터 소스의 배포를 관리했으며 일부 소스는 특정 워크로드 (예: SAP의 통화 변환)에 연결되었습니다. 그러나 버전 5.0에서는 이 플래그가 삭제되었습니다. 이제 여러 워크로드를 제공할 수 있는 DAG 관리 전용 새 모듈이 있습니다. 이 가이드에서는 이 새로운 구조를 사용하도록 기존 데이터 파이프라인을 조정하는 단계를 설명합니다.

교차 워크로드 재사용 가능한 DAG

Cortex Framework Data Foundation v5.0에서는 다양한 데이터 소스에서 공유되는 재사용 가능한 데이터 요소를 처리, 처리, 모델링하는 새로운 구성요소인 K9을 도입합니다. 이제 보고 뷰가 K9_PROCESSING 데이터 세트를 참조하여 이러한 재사용 가능한 구성요소에 액세스하므로 데이터 액세스가 간소화되고 중복이 줄어듭니다. 이제 다음 외부 데이터 소스가 K9의 일부로 K9_PROCESSING 데이터 세트에 배포됩니다.

  • date_dimension
  • holiday_calendar
  • trends
  • weather

SAP 종속 DAG

다음 SAP 종속 DAG는 여전히 generate_external_dags.sh 스크립트에 의해 트리거되지만 이제 보고 빌드 단계 중에 실행되며 CDC(변경 데이터 캡처) 단계 대신 SAP 보고 데이터 세트에 씁니다.

  • currency_conversion
  • inventory_snapshots
  • prod_hierarchy_texts

이전 가이드

이 가이드에서는 Cortex Framework Data Foundation을 버전 5.0으로 업그레이드하는 단계를 간략히 설명합니다.

Cortex Framework Data Foundation 5.0 배포

먼저 다음 가이드라인에 따라 Cortex Framework Data Foundation의 최신 버전 (v5.0)을 프로젝트에 배포합니다.

  1. 이전 개발 또는 스테이징 배포의 기존 RAW 및 CDC 데이터 세트를 이 배포의 RAW 및 CDC 데이터 세트로 사용합니다. 배포 중에 데이터 세트가 수정되지 않기 때문입니다.
  2. config/config.json에서 testDataSAP.deployCDC를 모두 False로 설정합니다.
  3. 테스트 목적으로 기존 v4.2 환경과 별도의 새 SAP Reporting 프로젝트를 만듭니다. 이렇게 하면 현재 운영에 영향을 주지 않고 업그레이드 프로세스를 안전하게 평가할 수 있습니다.
  4. 선택사항입니다. 이전 Cortex Framework Data Foundation 버전에서 실행 중인 활성 Airflow DAG가 있는 경우 이전을 진행하기 전에 일시중지합니다. Airflow UI를 통해 할 수 있습니다. 자세한 내용은 Composer에서 Airflow UI 열기DAG 일시중지 문서를 참고하세요.

이 단계에 따라 Cortex Framework Data Foundation 버전 5.0으로 안전하게 전환하고 새로운 기능을 검증할 수 있습니다.

기존 테이블 이전

기존 테이블을 새 위치로 이전하려면 jinja-cli를 사용하여 제공된 이전 스크립트 템플릿의 형식을 지정하여 이전을 완료합니다.

  1. 다음 명령어를 사용하여 jinja-cli를 설치합니다.

    pip install jinja-cli
    
  2. 기존 버전 4.2 및 새 버전 5.0 배포에서 다음 매개변수를 식별합니다.

    이름 설명
    project_id_src 소스 Google Cloud 프로젝트: 버전 4.2 배포의 기존 SAP CDC 데이터 세트가 있는 프로젝트입니다. K9_PROCESSING 데이터 세트도 이 프로젝트에서 생성됩니다.
    project_id_tgt 새 버전 5.0 배포에서 새로 배포된 SAP 보고 데이터 세트가 있는 Google Cloud 타겟 이는 소스 프로젝트와 다를 수 있습니다.
    dataset_cdc_processed CDC BigQuery 데이터 세트: CDC 처리 데이터가 사용 가능한 최신 레코드를 저장하는 BigQuery 데이터 세트입니다. 소스 데이터 세트와 동일할 수 있습니다.
    dataset_reporting_tgt 대상 BigQuery 보고 데이터 세트: SAP 사전 정의 데이터 모델용 데이터 기반이 배포된 BigQuery 데이터 세트입니다.
    k9_datasets_processing K9 BigQuery 데이터 세트: K9 (증강 데이터 소스)가 배포된 BigQuery 데이터 세트입니다.
  3. 필요한 입력 데이터가 포함된 JSON 파일을 만듭니다. 이전하지 않을 DAG는 migrate_list 섹션에서 삭제해야 합니다.

    {
      "project_id_src": "your-source-project",
      "project_id_tgt": "your-target-project",
      "dataset_cdc_processed": "your-cdc-processed-dataset",
      "dataset_reporting_tgt": "your-reporting-target-dataset-OR-SAP_REPORTING",
      "k9_datasets_processing": "your-k9-processing-dataset-OR-K9_REPORTING",
      "migrate_list":
        [
            "holiday_calendar",
            "trends",
            "weather",
            "currency_conversion",
            "inventory_snapshots",
            "prod_hierarchy_texts"
        ]
    }
    EOF
    

    예를 들어 weathertrends를 삭제하려면 스크립트가 다음과 같이 표시됩니다.

    {
      "project_id_src": "kittycorn-demo",
      "project_id_tgt": "kittycorn-demo",
      "dataset_cdc_processed": "CDC_PROCESSED",
      "dataset_reporting_tgt": "SAP_REPORTING",
      "k9_datasets_processing": "K9_PROCESSING",
      "migrate_list":
        [
            "holiday_calendar",
            "currency_conversion",
            "inventory_snapshots",
            "prod_hierarchy_texts"
        ]
        }
    
  4. 다음 명령어를 사용하여 출력 폴더를 만듭니다.

      mkdir output
    
  5. 다음 명령어를 사용하여 파싱된 이전 스크립트를 생성합니다. 이 명령어는 사용자가 저장소의 루트에 있다고 가정합니다.

      jinja -d data.json -o output/migrate_external_dags.sql docs/external_dag_migration/scripts/migrate_external_dags.sql
    
  6. 출력 SQL 파일을 검토하고 BigQuery에서 실행하여 테이블을 새 위치로 이전합니다.

Airflow DAG 업데이트 및 일시중지 해제

Airflow 버킷의 현재 DAG 파일을 백업합니다. 그런 다음 Cortex Framework Data Foundation 버전 5.0 배포에서 새로 생성된 파일로 교체합니다. 자세한 내용은 다음 문서를 참고하세요.

유효성 검사 및 정리

이제 이전이 완료되었습니다. 이제 새 v5.0 보고 배포의 모든 보고 보기가 올바르게 작동하는지 확인할 수 있습니다. 모든 것이 제대로 작동하면 프로덕션 보고 세트에 v5.0 배포를 타겟팅하여 이 프로세스를 다시 진행합니다. 그런 다음 다음 스크립트를 사용하여 모든 테이블을 삭제해도 됩니다.

    jinja -d data.json -o output/delete_old_dag_tables.sql docs/external_dag_migration/scripts/delete_old_dag_tables.sql