将外部 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_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
首先,按照以下准则将最新版本 (v5.0) 的 Cortex Framework Data Foundation 部署到您的项目中:
- 使用之前开发或预演部署中的现有原始数据集和 CDC 数据集作为此部署的原始数据集和 CDC 数据集,因为在部署期间不会对其进行任何修改。
- 在
config/config.json中将testData和SAP.deployCDC都设置为False。 - 创建一个新的 SAP 报告项目,该项目与您现有的 v4.2 环境分开,用于测试目的。这样可以安全地评估升级过程,而不会影响您当前的操作。
- 可选。如果您有针对之前 Cortex Framework Data Foundation 版本运行的活跃 Airflow DAG,请先暂停这些 DAG,然后再继续迁移。 这可以通过 Airflow 界面完成。如需查看详细说明,请参阅 从 Composer 打开 Airflow 界面 和 暂停 DAG 文档。
按照这些步骤操作,您可以安全地过渡到 Cortex Framework Data Foundation 5.0 版,并验证新功能。
迁移现有表
如需将现有表迁移到新位置,请使用 jinja-cli 格式化提供的迁移脚本模板以完成迁移。
使用以下命令安装 jinja-cli:
pip install jinja-cli从现有 4.2 版和新 5.0 版部署中识别以下参数:
<td"> 名称 <td"> 说明 </td"></td"><td">project_id_src<td"> Source Google Cloud Project:您的现有 SAP CDC 数据集(来自 4.2 版部署)所在的项目。K9_PROCESSING数据集 也会在此项目中创建。 </td"></td"><td">project_id_tgt<td"> Target Google Cloud where:您的新部署的 SAP 报告数据集(来自 新 5.0 版部署)所在的位置。这可能与源项目不同。 </td"></td"><td">dataset_cdc_processed<td"> CDC BigQuery 数据集: CDC 处理的数据最终会落入其中的 BigQuery 数据集,其中包含最新的可用记录。这可能与源数据集相同。 </td"></td"><td">dataset_reporting_tgt<td"> 目标 BigQuery 报告数据集:Data Foundation for SAP 预定义的数据模型部署到的 BigQuery 数据集。 </td"></td"><td">k9_datasets_processing<td"> K9 BigQuery 数据集: K9(扩充的数据源)部署到的 BigQuery 数据集。 </td"></td">使用所需的输入数据创建 JSON 文件。请务必从
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 存储桶中的当前 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