從 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 版部署作業中,找出下列參數:

    <td"> 名稱 <td"> 說明 </td"></td"><td"> project_id_src <td"> 來源 Google Cloud 專案:現有 SAP CDC 資料集所在的專案 (來自 4.2 版部署作業)。K9_PROCESSING 資料集也會在這個專案中建立。</td"></td"><td"> project_id_tgt <td"> 指定新部署的 SAP 報表資料集在 5.0 版部署中的位置。 Google Cloud 這可能與來源專案不同。 </td"></td"><td"> dataset_cdc_processed <td"> CDC BigQuery 資料集: CDC 處理的資料會匯入這個 BigQuery 資料集,並提供最新的可用記錄。這可能與來源資料集相同。 </td"></td"><td"> dataset_reporting_tgt <td"> 目標 BigQuery 報表資料集:部署 SAP 預先定義資料模型資料基礎的 BigQuery 資料集。 </td"></td"><td"> k9_datasets_processing <td"> K9 BigQuery 資料集: 部署 K9 (擴增資料來源) 的 BigQuery 資料集。 </td"></td">
  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