与 Salesforce Marketing Cloud 集成

本页介绍了将 Salesforce Marketing Cloud (SFMC) 中的数据作为 Cortex Framework Data Foundation 的营销工作负载的数据源所需的配置。

SFMC 是 Salesforce 提供的一款数字营销自动化平台。它为企业提供了一套全面的工具,用于管理和自动化处理多个渠道中的各种营销活动。 Cortex Framework 充当数据分析和 AI 引擎,可帮助您了解结果、确定需要改进的方面,并优化营销策略以取得更理想的成效。

下图描述了如何通过 Cortex Framework Data Foundation 的营销工作负载获取 SFMC 数据:

SFMC 数据源

图 1。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) 数据模型。

SFMC 的实体关系图

图 2。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

如需设置数据提取和导出流程,请按以下步骤操作:

  1. 设置 Cloud Storage 存储桶。此存储桶用于存储从 SFMC 导出的文件。将此存储桶命名为 marketing.SFMC.fileTransferBucket 配置参数。请参阅 Salesforce 文档中的说明。
  2. 创建数据扩展程序。对于您要提取数据的每个实体,请在 Email Studio 中创建数据扩展区。 这是为了从 SFMC 内部数据库中识别数据源。

    • 列出实体在 src/SFMC/config/table_schema 中定义的所有字段。如果您需要自定义此设置以提取更多或更少的字段,请确保这些步骤以及表架构文件中的字段列表保持一致。例如:
      Entity: unsubscribe
      Fields:
      AccountID
      OYBAccountID
      JobID
      ListID
      BatchID
      SubscriberID
      SubscriberKey
      EventDate
      IsUnique
      Domain
    
  3. 创建 SQL 查询活动。为每个实体创建一个 SQL 查询活动。 此活动与之前创建的相应数据扩展相关联。 如需了解此步骤,请参阅 Salesforce 文档

    1. 定义包含所有相关字段的 SQL 查询。查询需要选择与上一步中数据扩展中定义的实体相关的所有字段。
    2. 选择正确的数据扩展程序作为目标。
    3. 选择覆盖作为数据操作。
    4. 请参阅以下查询示例:
      SELECT
        AccountID,
        OYBAccountID,
        JobID,
        ListID,
        BatchID,
        SubscriberID,
        SubscriberKey,
        EventDate,
        IsUnique,
        Domain
      FROM
        _Unsubscribe
    
  4. 创建数据提取活动。如需为每个实体创建数据提取活动 ,请参阅 Salesforce 文档。此活动从 Salesforce 数据扩展中获取数据,并将其提取到 CSV 文件中。在此步骤中:

    1. 使用正确的命名模式。它应与设置中定义的模式相匹配。例如,对于 Unsubscribe 实体,文件名可以是 unsubscribe_%%Year%%_%%Month%%_%%Day%% %%Hour%%.csv 之类的名称。
    2. 提取类型设置为 Data Extension Extract
    3. 选择有列标题文本限定选项。
  5. 创建文件转换 activity,以将格式从 UTF-16 转换为 UTF-8。默认情况下,Salesforce 会以 UTF-16 格式导出 CSV 文件。在此步骤中,您将该文件转换为 UTF-8 格式。为每个实体创建另一个数据提取活动,用于文件转换。在此步骤中:

    • 使用与数据提取 activity 的上一步中使用的相同的文件名模式。
    • 提取类型设置为 File Convert
    • Convert To 的下拉菜单中选择 UTF8
  6. 创建文件转移活动。为每个实体创建文件传输活动。这些活动会将提取的 CSV 文件从 Salesforce Safehouse 移至 Cloud Storage 存储分区。在此步骤中:

    • 使用之前步骤中使用的相同文件名模式。
    • 选择之前在流程中设置的 Cloud Storage 存储桶作为目标位置。
  7. 安排执行。所有活动完成后,设置自动安排来运行这些活动。

数据新鲜度和延迟

一般来说,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 RawRaw 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 对象(表、视图、函数或存储过程)的生成方式。如需了解详情,请参阅自定义报告设置文件

接下来怎么做?