從 4.2 版遷移外部 DAG 至 5.0 版

本指南將說明必要步驟,協助您將外部有向非循環圖 (DAG) 的輸出資料表,遷移至 Cortex Data Foundation 5.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 5.0 版推出 K9,這個新元件負責擷取、處理及模擬可重複使用的資料元素,這些元素會跨各種資料來源共用。報表檢視畫面現在會參照 K9_PROCESSING 資料集來存取這些可重複使用的元件,簡化資料存取程序並減少冗餘。下列外部資料來源現已部署為 K9 的一部分,並納入 K9_PROCESSING 資料集:

  • date_dimension
  • holiday_calendar
  • trends
  • weather

與 SAP 相關的 DAG

下列與 SAP 相關的 DAG 仍會由 generate_external_dags.sh 指令碼觸發,但現在會在報表建構步驟中執行,並寫入 SAP 報表資料集,而非 CDC (變更資料擷取) 階段。

  • currency_conversion
  • inventory_snapshots
  • prod_hierarchy_texts

遷移指南

本指南說明如何將 Cortex Framework Data Foundation 升級至 5.0 版。

部署 Cortex Framework Data Foundation 5.0

首先,請按照下列指南,將最新版 (5.0 版) 的 Cortex Framework 資料基礎架構部署至專案:

  1. 使用先前開發或暫存部署作業的現有 RAW 和 CDC 資料集,做為本次部署作業的 RAW 和 CDC 資料集,因為部署期間不會修改這些資料集。
  2. config/config.json 中,將 testDataSAP.deployCDC 都設為 False
  3. 建立新的 SAP 報表專案,與現有的 4.2 版環境分開,以進行測試。這樣就能安全評估升級程序,不會影響目前的作業。
  4. (選用步驟) 如果您有為先前的 Cortex Framework Data Foundation 版本執行的 Airflow DAG,請先暫停這些 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 專案:現有 SAP CDC 資料集所在的專案 (來自 4.2 版部署作業)。這個專案也會建立 K9_PROCESSING 資料集。
    project_id_tgt 目標 Google Cloud :新部署的 SAP 報表資料集 (來自新版 5.0 部署作業) 所在位置。這可能與來源專案不同。
    dataset_cdc_processed CDC BigQuery 資料集: CDC 處理的資料會匯入這個 BigQuery 資料集,並提供最新的可用記錄。這可能與來源資料集相同。
    dataset_reporting_tgt 目標 BigQuery 報表資料集:部署 SAP 預先定義資料模型的 BigQuery 資料集。
    k9_datasets_processing K9 BigQuery 資料集: 部署 K9 (擴增資料來源) 的 BigQuery 資料集。
  3. 建立 JSON 檔案,內含必要輸入資料。請務必從「DAGs」migrate_list部分移除不想遷移的 DAG:

    {
      "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 bucket 中的現有 DAG 檔案。然後,將這些檔案替換為 Cortex Framework Data Foundation 5.0 版部署作業新產生的檔案。如需詳細操作說明,請參閱下列說明文件:

驗證與清除

遷移作業現已完成。您現在可以驗證新版 5.0 報表部署中的所有報表檢視畫面是否正常運作。如果一切正常,請再次執行程序,這次將 v5.0 部署至生產環境的報表集。之後,您可以使用下列指令碼移除所有資料表:

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