与 Salesforce Marketing Cloud 集成
本页介绍了将 Salesforce Marketing Cloud (SFMC) 中的数据作为 Cortex Framework Data Foundation 的营销工作负载的数据源所需的配置。
SFMC 是 Salesforce 提供的一款数字营销自动化平台。它为企业提供了一套全面的工具,用于管理和自动化处理多个渠道中的各种营销活动。 Cortex Framework 充当数据分析和 AI 引擎,可帮助您了解结果、确定需要改进的方面,并优化营销策略以取得更理想的成效。
下图描述了如何通过 Cortex Framework Data Foundation 的营销工作负载获取 SFMC 数据:

配置文件
config.json 文件用于配置连接到数据源所需的设置,以便从各种工作负载转移数据。此文件包含以下 SFMC 参数:
"marketing": {
"deploySFMC": true,
"SFMC": {
"deployCDC": true,
"fileTransferBucket": "",
"datasets": {
"cdc": "",
"raw": "",
"reporting": "REPORTING_SFMC"
}
}
}
下表介绍了每个营销参数的值:
| 参数 | 含义 | 默认值 | 说明 |
marketing.deploySFMC
|
部署 SFMC | true
|
执行 SFMC 数据源的部署。 |
marketing.SFMC.deployCDC
|
为 SFMC 部署 CDC 脚本 | true
|
生成 Salesforce Marketing Cloud (SFMC) CDC 处理脚本,以在 Managed Airflow 中作为 DAG 运行。 |
marketing.SFMC.fileTransferBucket
|
包含数据提取文件的存储分区 | - | 存储 Salesforce Marketing Cloud (SFMC) Automation Studio 数据提取文件的存储分区。 |
marketing.SFMC.datasets.cdc
|
SFMC 的 CDC 数据集 | Salesforce Marketing Cloud (SFMC) 的 CDC 数据集。 | |
marketing.SFMC.datasets.raw
|
SFMC 的原始数据集 | Salesforce Marketing Cloud (SFMC) 的原始数据集。 | |
marketing.SFMC.datasets.reporting
|
SFMC 的报告数据集 | "REPORTING_SFMC"
|
Salesforce Marketing Cloud (SFMC) 的报告数据集。 |
数据模型
本部分使用实体关系图 (ERD) 介绍了 Salesforce Marketing Cloud (SFMC) 数据模型。
基本视图
这些是 ERD 中的蓝色对象,是 CDC 表的视图,除了某些列名别名之外,没有其他转换。请参阅 src/marketing/src/SFMC/src/reporting/ddls 中的脚本。
报告数据视图
这些是 ERD 中的绿色对象,属于包含汇总指标的报告视图。请参阅 src/marketing/src/SFMC/src/reporting/ddls 中的脚本。
使用 Automation Studio 提取数据
SFMC Automation Studio 允许 SFMC 的消费者将其 SFMC 数据导出到各种存储系统。 Cortex Framework Data Foundation 会在 Cloud Storage 存储桶中查找使用 Automation Studio 创建的一组文件。在此过程中,您还需要使用 SFMC Email Studio。
如需设置数据提取和导出流程,请按以下步骤操作:
- 设置 Cloud Storage 存储桶。此存储桶用于存储从 SFMC 导出的文件。将此存储桶命名为
marketing.SFMC.fileTransferBucket配置参数。请参阅 Salesforce 文档中的说明。 创建数据扩展程序。对于您要提取数据的每个实体,请在 Email Studio 中创建数据扩展区。 这是为了从 SFMC 内部数据库中识别数据源。
- 列出实体在
src/SFMC/config/table_schema中定义的所有字段。如果您需要自定义此设置以提取更多或更少的字段,请确保这些步骤以及表架构文件中的字段列表保持一致。例如:
Entity: unsubscribe Fields: AccountID OYBAccountID JobID ListID BatchID SubscriberID SubscriberKey EventDate IsUnique Domain- 列出实体在
创建 SQL 查询活动。为每个实体创建一个 SQL 查询活动。 此活动与之前创建的相应数据扩展相关联。 如需了解此步骤,请参阅 Salesforce 文档 :
- 定义包含所有相关字段的 SQL 查询。查询需要选择与上一步中数据扩展中定义的实体相关的所有字段。
- 选择正确的数据扩展程序作为目标。
- 选择覆盖作为数据操作。
- 请参阅以下查询示例:
SELECT AccountID, OYBAccountID, JobID, ListID, BatchID, SubscriberID, SubscriberKey, EventDate, IsUnique, Domain FROM _Unsubscribe创建数据提取活动。如需为每个实体创建数据提取活动 ,请参阅 Salesforce 文档。此活动从 Salesforce 数据扩展中获取数据,并将其提取到 CSV 文件中。在此步骤中:
- 使用正确的命名模式。它应与设置中定义的模式相匹配。例如,对于
Unsubscribe实体,文件名可以是unsubscribe_%%Year%%_%%Month%%_%%Day%% %%Hour%%.csv之类的名称。 - 将提取类型设置为
Data Extension Extract。 - 选择有列标题和文本限定选项。
- 使用正确的命名模式。它应与设置中定义的模式相匹配。例如,对于
创建文件转换 activity,以将格式从 UTF-16 转换为 UTF-8。默认情况下,Salesforce 会以 UTF-16 格式导出 CSV 文件。在此步骤中,您将该文件转换为 UTF-8 格式。为每个实体创建另一个数据提取活动,用于文件转换。在此步骤中:
- 使用与数据提取 activity 的上一步中使用的相同的文件名模式。
- 将提取类型设置为
File Convert - 从
Convert To的下拉菜单中选择UTF8。
创建文件转移活动。为每个实体创建文件传输活动。这些活动会将提取的 CSV 文件从 Salesforce Safehouse 移至 Cloud Storage 存储分区。在此步骤中:
- 使用之前步骤中使用的相同文件名模式。
- 选择之前在流程中设置的 Cloud Storage 存储桶作为目标位置。
安排执行。所有活动完成后,设置自动安排来运行这些活动。
数据新鲜度和延迟
一般来说,Cortex Framework 数据源的数据新鲜度受上游连接允许的范围以及 DAG 执行频率的限制。调整 DAG 执行频率,使其与上游频率、资源限制和业务需求保持一致。
使用 SFMC Automation Studio 时,数据新鲜度延迟取决于设置数据导出时安排的延迟时间。
Managed Service for Apache Airflow 连接权限
在 Managed Airflow 中创建以下连接。如需了解详情,请参阅管理 Airflow 连接文档。
| 连接名称 | 目的 |
sfmc_raw_dataflow
|
对于 SFMC 提取的文件 > BigQueryRaw 数据集。 |
sfmc_cdc_bq
|
对于原始数据集 > CDC 数据集转移。 |
sfmc_reporting_bq
|
对于 CDC 数据集 > 报告数据集转移。 |
Managed Airflow 服务账号权限
在 Managed Airflow 中使用的服务账号(如在 sfmc_raw_dataflow 连接中配置的那样)需要 Dataflow 相关权限。请参阅 Dataflow 文档中的说明
内容提取设置
通过文件 src/SFMC/config/ingestion_settings.yaml 中的设置控制 Source to Raw 和 Raw to CDC 数据流水线。
本部分介绍了每个数据流水线的参数。
从来源到原始表的转换
此部分包含用于控制如何使用从 Automation Studio 提取的文件的条目。每个条目都对应一个 SFMC 实体。 根据此配置,Cortex Framework 会创建 Airflow DAG,这些 DAG 会运行 Dataflow 流水线,以将数据从导出的文件加载到原始数据集中的 BigQuery 表。
目录 src/SFMC/config/table_schema 包含从 SFMC 提取的每个实体的架构文件。每个文件都说明了如何读取从 Automaton Studio 提取的 CSV 文件,以便成功将这些文件加载到 BigQueryraw 数据集中。
每个架构文件包含三列:
SourceField:CSV 文件的字段名称。TargetField:相应实体的原始表中的列名称。DataType:每个原始表字段的数据类型。
以下参数可控制每个条目的 Source to Raw 的设置:
| 参数 | 说明 |
base_table
|
加载 SFMC 实体提取数据的原始表名称。 |
load_frequency
|
相应实体的 DAG 从提取的文件中加载数据的运行频率。如需详细了解可能的值,请参阅 Airflow 文档。 |
file_pattern
|
从 Automation Studio 导出到 Cloud Storage 存储桶的相应表格的文件模式。仅当您为提取的文件选择的名称与建议的名称不同时,才需要更改此设置。 |
partition_details
|
出于性能考虑,原始表的划分方式。如需了解详情,请参阅表分区。 |
cluster_details
|
可选:如果您希望原始表出于性能考虑而进行聚类。如需了解详情,请参阅集群设置。 |
从原始表到 CDC 表
本部分介绍了哪些条目控制着如何将数据从原始表移至 CDC 表。每个条目都对应一个原始表格。
以下参数可控制每个条目的 Raw to CDC 的设置:
| 参数 | 说明 |
base_table
|
CDC 数据集中的表,用于存储 CDC 转换后的原始数据。 |
load_frequency
|
相应实体的 DAG 运行以填充 CDC 表的频率。如需详细了解可能的值,请参阅 Airflow 文档。 |
raw_table
|
原始数据集中的源表。 |
row_identifiers
|
构成相应表的唯一记录的列(以英文逗号分隔)。 |
partition_details
|
出于性能考虑,CDC 表的分区方式。如需了解详情,请参阅表分区。 |
cluster_details
|
可选:如果您希望出于性能考虑而对该表进行聚类。如需了解详情,请参阅集群设置。 |
报告设置
您可以使用报告设置文件 (src/SFMC/config/reporting_settings.yaml) 配置和控制 Cortex Framework 如何为 SFMC 最终报告层生成数据。此文件控制着报告层 BigQuery 对象(表、视图、函数或存储过程)的生成方式。如需了解详情,请参阅自定义报告设置文件。
接下来怎么做?
- 如需详细了解其他数据源和工作负载,请参阅数据源和工作负载。
- 如需详细了解生产环境中的部署步骤,请参阅 Cortex Framework Data Foundation 部署前提条件。
