第 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 的部署。 如需了解详情,请参阅 Data Mesh 用户指南。 enableTaskDependencies
任务依赖型 DAG false
启用任务依赖 DAG,以便在单个 DAG 中根据依赖项顺序执行受支持的 SQL 表。如需了解详情,请参阅与任务相关的 DAG。 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
演示版部署的测试数据的来源。当 testData
为true
时适用。除非您有自己的测试框架,否则请勿更改此值。
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 资产上部署资产级、行级或列级访问权限控制,需要先进行配置,然后才能启用。 根据需要配置所需的工作负载。如果工作负载的部署参数(例如
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
:表应如何分片。此值为可选。如需了解详情,请参阅集群设置部分。
表分区
通过某些设置文件,您可以使用自定义集群和分区选项配置 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" 。
|
如需详细了解选项和相关限制,请参阅表集群文档。
后续步骤
完成此步骤后,请继续执行以下部署步骤: