從 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_dimensionholiday_calendartrendsweather
與 SAP 相關的 DAG
下列與 SAP 相關的 DAG 仍會由 generate_external_dags.sh 指令碼觸發,但現在會在報表建構步驟中執行,並寫入 SAP 報表資料集,而非 CDC (變更資料擷取) 階段。
currency_conversioninventory_snapshotsprod_hierarchy_texts
遷移指南
本指南說明如何將 Cortex Framework Data Foundation 升級至 5.0 版。
部署 Cortex Framework Data Foundation 5.0
首先,請按照下列指南,將最新版 (5.0 版) 的 Cortex Framework 資料基礎架構部署至專案:
- 使用先前開發或暫存部署作業的現有 RAW 和 CDC 資料集,做為本次部署作業的 RAW 和 CDC 資料集,因為部署期間不會修改這些資料集。
- 在
config/config.json中,將testData和SAP.deployCDC都設為False。 - 建立新的 SAP 報表專案,與現有的 4.2 版環境分開,以進行測試。這樣就能安全評估升級程序,不會影響目前的作業。
- (選用步驟) 如果您有為先前的 Cortex Framework Data Foundation 版本執行的 Airflow DAG,請先暫停這些 DAG,再繼續進行遷移。這項操作可透過 Airflow UI 完成。如需詳細的操作說明,請參閱「從 Composer 開啟 Airflow UI」和「暫停 DAG」說明文件。
按照這些步驟操作,即可安全地轉換至 Cortex Framework Data Foundation 5.0 版,並驗證新功能。
遷移現有資料表
如要將現有資料表遷移至新位置,請使用 jinja-cli 格式化提供的遷移指令碼範本,完成遷移作業。
使用下列指令安裝 jinja-cli:
pip install jinja-cli從現有的 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_processedCDC BigQuery 資料集: CDC 處理的資料會匯入這個 BigQuery 資料集,並提供最新的可用記錄。這可能與來源資料集相同。 dataset_reporting_tgt目標 BigQuery 報表資料集:部署 SAP 預先定義資料模型的 BigQuery 資料集。 k9_datasets_processingK9 BigQuery 資料集: 部署 K9 (擴增資料來源) 的 BigQuery 資料集。 建立 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舉例來說,如要移除
weather和trends,指令碼會如下所示:{ "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" ] }使用下列指令建立輸出資料夾:
mkdir output使用下列指令產生已剖析的遷移指令碼 (這個指令假設您位於存放區的根目錄):
jinja -d data.json -o output/migrate_external_dags.sql docs/external_dag_migration/scripts/migrate_external_dags.sql檢查輸出 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