第 5 步:配置部署

本页介绍了部署 Cortex Framework Data Foundation(Cortex Framework 的核心)的第五步。在此步骤中,您需要修改 Cortex Framework Data Foundation 代码库中的配置文件,以满足您的要求。

配置文件

部署的行为由 Cortex Framework Data Foundation 中的配置文件 config.json 控制。此文件包含全局配置,以及每个工作负载的特定配置。 按照以下步骤,根据您的需求修改 config.json 文件:

  1. 从 Cloud Shell 中打开文件 config.json
  2. 根据以下参数修改 config.json 文件:

    <td"> 参数 <td">含义 <td">默认值 <td">说明 </td"></td"></td"></td"><td">testData <td">部署测试数据 <td">true <td">源数据集所在的工程,以及构建运行的工程。注意:只有在原始数据集为空且没有表的情况下,才会执行测试数据部署 。 </td"></td"></td"></td"><td">deploySAP <td">部署 SAP <td">true <td">执行 SAP 工作负载(ECC 或 S/4 HANA)的部署。 </td"></td"></td"></td"><td">deploySFDC <td">部署 Salesforce <td">true <td">执行 Salesforce 工作负载的部署。 </td"></td"></td"></td"><td">deployMarketing <td">部署营销 <td">true <td">执行营销来源(Google Ads、CM360 和 TikTok)的部署。 </td"></td"></td"></td"><td">deployOracleEBS <td">部署 Oracle EBS <td">true <td">执行 Oracle EBS 工作负载的部署。 </td"></td"></td"></td"><td">enableTaskDependencies <td">任务依赖型 DAG <td">false <td">启用任务依赖型 DAG,以便在单个 DAG 中,根据依赖顺序执行受支持的 SQL 表。如需了解详情,请参阅 任务依赖型 DAG。 </td"></td"></td"></td"><td">turboMode <td">以 Turbo 模式 部署。 <td">true <td">在同一 Cloud Build 构建流程中,将所有视图构建作为一步 并行执行,以加快 部署速度。如果设置为 false,则每个报告数据视图都会在自己的顺序构建步骤中生成。我们建议仅在使用测试数据时或在解决报告列与源数据之间的任何不匹配问题后,才将其设置为 true。 </td"></td"></td"></td"><td">projectIdSource <td">源项目 ID <td">- <td">源数据集所在的工程,以及构建运行的工程。 </td"></td"></td"></td"><td">projectIdTarget <td">目标项目 ID <td">- <td">面向用户的数据集的目标项目。 </td"></td"></td"></td"><td">targetBucket <td">用于存储生成的 DAG 脚本的目标存储分区 <td">- <td">之前创建的 用于生成 DAG(和 Dataflow 临时文件)的 存储分区。 避免使用实际的 Airflow 存储桶。 </td"></td"></td"></td"><td">location <td">位置或区域 <td">"US" <td">BigQuery 数据集和 Cloud Storage 存储分区所在的位置。

    请参阅 BigQuery 数据集位置下列出的限制。

    </td"></td"></td"></td"><td">testDataProject <td">测试工具的来源 <td">kittycorn-public <td">演示部署的测试数据来源。当 testDatatrue 时适用。

    除非您有自己的测试工具,否则请勿更改此值。

    </td"></td"></td"></td"><td">k9.datasets.processing <td">K9 数据集 - 处理 <td">"K9_PROCESSING" <td">执行跨工作负载模板 (例如,日期维度),如 K9 配置文件中所定义。 下游工作负载通常需要这些模板。 </td"></td"></td"></td"><td">k9.datasets.reporting <td">K9 数据集 - 报告 <td">"K9_REPORTING" <td">执行跨工作负载模板 和外部数据源(例如:天气),具体取决于 K9 配置文件中的定义。 默认情况下已注释掉。 </td"></td"></td"></td">
  3. 根据需要配置所需的工作负载。如果工作负载的部署参数(例如,deploySAPdeployMarketing)设置为 False,则无需配置它们。如需了解详情,请参阅 第 3 步:确定集成机制

如需更好地自定义部署,请参阅以下可选步骤

优化报告视图的性能

报告制品可以视图形式创建,也可以表形式创建,并通过 DAG 定期刷新。一方面,视图会在每次执行查询时计算数据,从而始终保持结果最新。 另一方面,表会运行一次计算,并且可以多次查询结果,而不会产生更高的计算费用并实现更快的运行时。每位客户都会根据自己的需求创建自己的配置。

具体化结果会更新到表中。您可以通过向这些表添加分区聚簇来进一步微调这些表。

每个工作负载的配置文件都位于 Cortex Framework Data Foundation 代码库中的以下路径中:

<td">数据源 <td">设置文件 </td"></td"><td">运营 - SAP <td">src/SAP/SAP_REPORTING/reporting_settings_ecc.yaml </td"></td"><td">运营 - Salesforce Sales Cloud <td">src/SFDC/config/reporting_settings.yaml </td"></td"><td">运营 - Oracle EBS <td">src/oracleEBS/config/reporting_settings.yaml </td"></td"><td">营销 - Google Ads <td">src/marketing/src/GoogleAds/config/reporting_settings.yaml </td"></td"><td">营销 - CM360 <td">src/marketing/src/CM360/config/reporting_settings.yaml </td"></td"><td">营销 - Meta <td">src/marketing/src/Meta/config/reporting_settings.yaml </td"></td"><td">营销 - Salesforce Marketing Cloud <td">src/marketing/src/SFMC/config/reporting_settings.yaml </td"></td"><td">营销 - TikTok <td">src/marketing/src/TikTok/config/reporting_settings.yaml </td"></td"><td"> 营销 - YouTube(使用 DV360) <td">src/marketing/src/DV360/config/reporting_settings.yaml </td"></td"><td">营销 - Google Analytics 4 <td">src/marketing/src/GA4/config/reporting_settings.yaml </td"></td"><td">营销 - 跨媒体和产品关联分析 <td">src/marketing/src/CrossMedia/config/reporting_settings.yaml </td"></td">

自定义报告设置文件

reporting_settings 文件决定了如何为报告数据集创建 BigQuery 对象(表或视图)。使用以下参数说明自定义文件。请注意,此文件包含两个部分:

  1. bq_independent_objects:所有可以独立创建且没有任何其他依赖项的 BigQuery 对象。启用 Turbo mode 后,这些 BigQuery 对象 会在部署期间并行创建,从而加快 部署过程。
  2. bq_dependent_objects:所有需要按特定顺序创建的 BigQuery 对象,因为它们依赖于其他 BigQuery 对象。Turbo mode 不适用于此部分。

部署程序首先创建 bq_independent_objects 中列出的所有 BigQuery 对象,然后创建 bq_dependent_objects 中列出的所有对象。为每个对象定义以下属性:

  1. sql_file:用于创建给定对象的 SQL 文件的名称。
  2. type:BigQuery 对象的类型。可采用的值:
    • view:如果您希望对象是 BigQuery 视图。
    • table:如果您希望对象是 BigQuery 表。
    • script:用于创建其他类型的对象(例如,BigQuery 函数和存储过程)。
  3. 如果 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" }

使用以下参数控制给定表的分区详细信息:

<td">属性 <td">说明 <td"> </td"></td"></td"><td">column <td">CDC 表所依据的分区列。 <td">列名称。 </td"></td"></td"><td">partition_type <td">分区类型。 <td">"time"(适用于基于时间的分区)。如需了解详情,请参阅时间戳分区表"integer_range"(适用于基于整数的分区)。如需了解详情,请参阅整数范围文档。 </td"></td"></td"><td">time_grain <td">要用于分区的时间部分 当 partition_type = "time" 时是必需的。 <td>"hour""day""month""year"。 </td"></td"></td"><td">integer_range_bucket <td">存储分区范围。 当 partition_type = "integer_range" <td">"start" = 起始值, "end" = 终止值,和 "interval" = 范围间隔。 </td"></td"></td">

如需详细了解选项和相关限制,请参阅 BigQuery 表分区

集群设置

您可以通过指定 cluster_details 来启用表聚簇:

  - base_table: vbak
    load_frequency: "@daily"
    cluster_details: {columns: ["vkorg"]}

使用以下参数控制给定表的聚簇详细信息:

<td">属性 <td">说明 <td"> </td"></td"></td"><td">columns <td">表所依据的聚簇列。 <td">列名称列表。例如, "mjahr""matnr". </td"></td"></td">

如需详细了解选项和相关限制, 请参阅 表聚簇文档

后续步骤

完成此步骤后,请继续执行以下部署步骤:

  1. 建立工作负载
  2. 克隆代码库
  3. 确定集成机制
  4. 设置组件
  5. 配置部署(本页)。
  6. 执行部署