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

이 가이드에서는 외부 DAG (Directed Acyclic Graph)의 출력 테이블을 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 보고 프로젝트를 만듭니다. 이렇게 하면 현재 운영에 영향을 미치지 않고 업그레이드 프로세스를 안전하게 평가할 수 있습니다.
  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 배포에서 다음 매개변수를 식별합니다.

    <td"> 이름 <td"> 설명 </td"></td"><td"> project_id_src <td"> Source Google Cloud Project: 버전 4.2 배포의 기존 SAP CDC 데이터 세트가 있는 프로젝트입니다. K9_PROCESSING 데이터 세트 도 이 프로젝트에서 생성됩니다. </td"></td"><td"> project_id_tgt <td"> Target Google Cloud 새 버전 5.0 배포에서 새로 배포된 SAP 보고 데이터 세트가 있는 위치입니다. 소스 프로젝트와 다를 수 있습니다. </td"></td"><td"> dataset_cdc_processed <td"> CDC BigQuery 데이터 세트: CDC 처리된 데이터가 최신 사용 가능한 레코드를 가져오는 BigQuery 데이터 세트입니다. 소스 데이터 세트와 동일할 수 있습니다. </td"></td"><td"> dataset_reporting_tgt <td"> 대상 BigQuery 보고 데이터 세트: SAP용 Data Foundation 사전 정의 데이터 모델이 배포되는 BigQuery 데이터 세트입니다. </td"></td"><td"> k9_datasets_processing <td"> K9 BigQuery 데이터 세트: K9 (확장된 데이터 소스)이 배포되는 BigQuery 데이터 세트입니다. </td"></td">
  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