第 5 步:配置部署

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

配置文件

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

  1. 在 Cloud Shell 中打开 config.json 文件。
  2. 根据以下参数修改 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 的部署。 如需了解详情,请参阅 Data Mesh 用户指南
    turboMode “Turbo 模式”进行部署。 true 将所有视图 build 作为同一 Cloud Build 流程中的一个步骤并行执行,以加快部署速度。如果设置为 false,则每个报告视图都会在其自己的顺序构建步骤中生成。我们建议仅在使用测试数据或报告列与来源数据之间的任何不匹配问题得到解决后,将其设置为 true
    projectIdSource 来源项目 ID - 包含源数据集和运行 build 的项目。
    projectIdTarget 目标项目 ID - 面向用户的数据集(报告和机器学习数据集)的目标项目。
    targetBucket 用于存储生成的 DAG 脚本的目标存储分区 - 之前创建的存储分区,用于生成 DAG(和 Dataflow 临时文件)。避免使用实际的 Airflow 存储分区。
    location 地理位置或区域 "US" BigQuery 数据集和 Cloud Storage 存储分区所在的位置。

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

    testDataProject 自动化测试框架的来源 kittycorn-public 演示版部署的测试数据的来源。当 testDatatrue 时适用。

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

    k9.datasets.processing K9 数据集 - 处理 "K9_PROCESSING" 执行 K9 配置文件中定义的跨工作负载模板(例如日期维度)。这些模板通常是下游工作负载所必需的。
    k9.datasets.reporting K9 数据集 - 报告 "K9_REPORTING" 执行 K9 配置文件中定义的跨工作负载模板和外部数据源(例如天气)。默认处于注释状态。
    DataMesh.deployDescriptions 数据网格 - 资产说明 true 部署 BigQuery 资产架构说明。
    DataMesh.deployLakes 数据网格 - 数据湖和数据区 false 部署按处理层整理表格的 Dataplex 数据湖和区域,需要先进行配置,然后才能启用。
    DataMesh.deployCatalog Data Mesh - 目录标记和模板 false 部署数据目录标记,允许在 BigQuery 资产或字段中使用自定义元数据,需要先进行配置,然后才能启用。
    DataMesh.deployACLs 数据网格 - 访问控制 false 在 BigQuery 资产上部署资产级、行级或列级访问权限控制,需要先进行配置,然后才能启用。
  3. 根据需要配置所需的工作负载。如果工作负载的部署参数(例如 deploySAPdeployMarketing)设置为 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 对象(表或视图)。使用以下参数说明自定义您的文件。假设此文件包含两个部分:

  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:表应如何分片。此值为可选。如需了解详情,请参阅集群设置部分。

表分区

通过某些设置文件,您可以使用自定义集群和分区选项配置 materialized 表。这可以显著提高大型数据集的查询性能。此选项仅适用于 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"

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

后续步骤

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

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