第 5 步:配置部署
本页介绍了部署 Cortex Framework 数据基础(Cortex Framework 的核心)的第五步。在此步骤中,您需要修改 Cortex Framework Data Foundation 代码库中的配置文件,以满足您的要求。
配置文件
部署的行为由 Cortex Framework Data Foundation 中的配置文件 config.json 控制。此文件包含全局配置,以及每个工作负载的特定配置。
根据您的需求,按照以下步骤修改 config.json 文件:
- 从 Cloud Shell 中打开文件 config.json。
- 根据以下参数修改 - config.json文件:- 参数 - 含义 - 默认值 - 说明 - testData- 部署测试数据 - true- 源数据集所在的项目以及 build 运行的项目。注意:只有在原始数据集为空且没有表的情况下,才会执行测试数据部署。 - deploySAP- 部署 SAP - true- 执行 SAP 工作负载(ECC 或 S/4 HANA)的部署。 - deploySFDC- 部署 Salesforce - true- 执行 Salesforce 工作负载的部署。 - deployMarketing- 部署营销 - true- 针对营销来源(Google Ads、CM360 和 TikTok)执行部署。 - deployOracleEBS- 部署 Oracle EBS - true- 执行 Oracle EBS 工作负载的部署。 - deployDataMesh- 部署数据网格 - true- 执行数据网格的部署。 如需了解详情,请参阅 Data Mesh 用户指南。 - enableTaskDependencies- 依赖于任务的 DAG - false- 启用任务依赖型 DAG,以便在单个 DAG 中根据依赖顺序执行受支持的 SQL 表。如需了解详情,请参阅依赖于任务的 DAG。 - turboMode- 以加速模式部署。 - true- 在同一 Cloud Build 流程中,以并行方式执行所有视图构建,以便更快地进行部署。如果设置为 - false,则每个报告视图都会在自己的顺序构建步骤中生成。我们建议仅在以下情况下将其设置为- true:使用测试数据时,或报告列与源数据之间的任何不一致情况已得到解决后。- projectIdSource- 源项目 ID - - - 源数据集所在的项目以及 build 运行的项目。 - projectIdTarget- 目标项目 ID - - - 面向用户的目标数据集。 - targetBucket- 用于存储生成的 DAG 脚本的目标存储分区 - - - 之前创建的用于生成 DAG(和 Dataflow 临时文件)的存储分区。 避免使用实际的 Airflow 存储桶。 - location- 位置或区域 - "US"- BigQuery 数据集和 Cloud Storage 存储分区所在的位置。 - 请参阅 BigQuery 数据集位置下列出的限制。 - testDataProject- 自动化测试框架的来源 - kittycorn-public- 演示部署的测试数据源。当 - testData为- true时适用。- 除非您有自己的测试框架,否则请勿更改此值。 - k9.datasets.processing- K9 数据集 - 处理中 - "K9_PROCESSING"- 执行 K9 配置文件中定义的跨工作负载模板(例如,日期维度)。 下游工作负载通常需要这些模板。 - k9.datasets.reporting- K9 数据集 - 报告 - "K9_REPORTING"- 执行 K9 配置文件中定义的跨工作负载模板和外部数据源(例如天气)。默认情况下处于注释掉的状态。 - DataMesh.deployDescriptions- 数据网格 - 资产说明 - true- 部署 BigQuery 资产架构说明。 - DataMesh.deployLakes- 数据网格 - 湖泊和区域 - false- 部署按处理层级整理表的 Dataplex Universal Catalog 数据湖和区域,需要在启用之前进行配置。 - DataMesh.deployCatalog- 数据网格 - 目录标记和模板 - false- 部署允许在 BigQuery 资产或字段上使用自定义元数据的 Data Catalog 标记,需要在启用之前进行配置。 - DataMesh.deployACLs- 数据网格 - 访问权限控制 - false- 在 BigQuery 资产上部署资产级、行级或列级访问权限控制,需要在启用前进行配置。 
- 根据需要配置所需的工作负载。如果工作负载的部署参数(例如 - deploySAP或- deployMarketing)设置为- False,则无需配置这些参数。如需了解详情,请参阅第 3 步:确定集成机制。
如需更好地自定义部署,请参阅以下可选步骤:
针对报告视图的性能优化
报告制品可以创建为视图,也可以创建为通过 DAG 定期刷新的表。一方面,视图会在每次执行查询时计算数据,从而始终保持结果新鲜。另一方面,该表只需运行一次计算,即可多次查询结果,而不会产生更高的计算费用,并且可以实现更快的运行时。每位客户都可以根据自己的需求创建配置。
具体化结果会更新到表中。通过向这些表添加分区和聚簇,可以进一步微调这些表。
每个工作负载的配置文件都位于 Cortex Framework Data Foundation 代码库中的以下路径中:
| 数据源 | 设置文件 | 
| 运营 - SAP | src/SAP/SAP_REPORTING/reporting_settings_ecc.yaml | 
| 运营 - Salesforce Sales Cloud | src/SFDC/config/reporting_settings.yaml | 
| 运营 - Oracle EBS | src/oracleEBS/config/reporting_settings.yaml | 
| 营销 - Google Ads | src/marketing/src/GoogleAds/config/reporting_settings.yaml | 
| 营销 - CM360 | src/marketing/src/CM360/config/reporting_settings.yaml | 
| 营销 - Meta | src/marketing/src/Meta/config/reporting_settings.yaml | 
| 营销 - Salesforce Marketing Cloud | src/marketing/src/SFMC/config/reporting_settings.yaml | 
| 营销 - TikTok | src/marketing/src/TikTok/config/reporting_settings.yaml | 
| 营销 - YouTube(使用 DV360) | src/marketing/src/DV360/config/reporting_settings.yaml | 
| 营销 - Google Analytics 4 | src/marketing/src/GA4/config/reporting_settings.yaml | 
| 营销 - 跨媒体和关联产品数据分析 | src/marketing/src/CrossMedia/config/reporting_settings.yaml | 
自定义报告设置文件
reporting_settings 文件决定了如何为报告数据集创建 BigQuery 对象(表或视图)。使用以下参数说明自定义文件。假设此文件包含两个部分:
- bq_independent_objects:可以独立创建且没有任何其他依赖项的所有 BigQuery 对象。启用- Turbo mode后,这些 BigQuery 对象会在部署期间并行创建,从而加快部署过程。
- bq_dependent_objects:由于依赖于其他 BigQuery 对象而需要按特定顺序创建的所有 BigQuery 对象。- Turbo mode不适用于本部分。
部署程序首先创建 bq_independent_objects 中列出的所有 BigQuery 对象,然后创建 bq_dependent_objects 中列出的所有对象。为每个对象定义以下属性:
- sql_file:用于创建指定对象的 SQL 文件的名称。
- type:BigQuery 对象的类型。可能的值:- view:如果您希望对象是 BigQuery 视图。
- table:如果您希望对象是 BigQuery 表。
- script:用于创建其他类型的对象(例如 BigQuery 函数和存储过程)。
 
- 如果 type设置为table,则可以定义以下可选属性:- load_frequency:执行 Composer DAG 以刷新此表的频率。如需详细了解可能的值,请参阅 Airflow 文档。
- partition_details:表应如何分区。 此值是可选的。如需了解详情,请参阅表分区部分。
- cluster_details:表应如何聚类。 此值是可选的。如需了解详情,请参阅集群设置部分。
 
表分区
某些设置文件可让您使用自定义聚簇和分区选项配置具体化表。这可以显著提高大型数据集的查询性能。此选项仅适用于 SAP cdc_settings.yaml 和所有 reporting_settings.yaml 文件。
您可以通过指定以下partition_details来启用表分区:
- base_table: vbap
  load_frequency: "@daily"
  partition_details: {
    column: "erdat", partition_type: "time", time_grain: "day" }
使用以下参数可控制指定表的分区详细信息:
| 属性 | 说明 | 值 | 
| column | CDC 表的分区列。 | 列名称。 | 
| partition_type | 分区类型。 | "time"(对于基于时间的分区)。如需了解详情,请参阅时间戳分区表。"integer_range"(适用于基于整数的分区)。如需了解详情,请参阅整数范围文档。 | 
| time_grain | 用于分区的日期/时间部分
   当值为 partition_type = "time"时,此参数为必需参数。 | "hour"、"day"、"month"或"year"。 | 
| integer_range_bucket | 分桶范围
当 partition_type = "integer_range"时,必须提供此参数 | "start"= 起始值,"end"= 结束值,"interval= 范围的间隔。 | 
如需详细了解相关选项和限制,请参阅 BigQuery 表分区。
集群设置
您可以通过指定 cluster_details 来启用表聚簇:
  - base_table: vbak
    load_frequency: "@daily"
    cluster_details: {columns: ["vkorg"]}
使用以下参数来控制指定表的聚类详细信息:
| 属性 | 说明 | 值 | 
| columns | 用于对表进行聚簇的列。 | 列名称列表。例如, "mjahr"和"matnr"。 | 
如需详细了解相关选项和限制,请参阅表格集群文档。
后续步骤
完成此步骤后,请继续执行以下部署步骤: