使用 Azure 数据工厂或 Synapse Analytics 从 Salesforce Marketing Cloud 复制数据

适用于: Azure 数据工厂 Azure Synapse Analytics

提示

试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用

本文概述如何使用 Azure 数据工厂或 Synapse Analytics 管道中的复制活动从 Salesforce Marketing Cloud 复制数据。 它是基于概述复制活动总体的复制活动概述一文。

支持的功能

此 Salesforce Marketing Cloud 连接器支持以下功能:

支持的功能 IR
复制活动(源/-) ① ②
Lookup 活动 ① ②

① Azure 集成运行时 ② 自承载集成运行时

如需可以用作源/接收器的数据存储的列表,请参阅支持的数据存储表。

Salesforce Marketing Cloud 连接器支持 OAuth 2 身份验证,并同时支持旧包类型和增强包类型。 该连接器在 Salesforce Marketing Cloud REST API 的基础上构建。

注意

此连接器不支持检索视图、自定义对象或自定义数据扩展插件。

入门

可以使用 .NET SDK、Python SDK、Azure PowerShell、REST API 或 Azure 资源管理器模板创建包含复制活动的管道。 有关创建包含复制活动的管道的分步说明,请参阅复制活动教程

使用 UI 创建到 Salesforce Marketing Cloud 的链接服务

使用以下步骤在 Azure 门户 UI 中创建到 Salesforce Marketing Cloud 的链接服务。

  1. 浏览到 Azure 数据工厂或 Synapse 工作区中的“管理”选项卡并选择“链接服务”,然后单击“新建”:

  2. 搜索“Salesforce”并选择“Salesforce Marketing Cloud 连接器”。

    Select the Salesforce Marketing Cloud connector.

  3. 配置服务详细信息、测试连接并创建新的链接服务。

    Configure a linked service to Salesforce Marketing Cloud.

注意

Salesforce Marketing Cloud 上的 API 集成范围必须设置为“中心”|“市场活动”|“进行读取以便连接器成功”。

连接器配置详细信息

对于特定于 Salesforce Marketing Cloud 连接器的数据工厂实体,以下部分提供有关用于定义这些实体的属性的详细信息。

链接服务属性

Salesforce Marketing Cloud 链接的服务支持以下属性:

属性 描述 必需
type type 属性必须设置为:SalesforceMarketingCloud
connectionProperties 一组属性,定义如何连接到 Salesforce Marketing Cloud。
connectionProperties
authenticationType 指定要使用的身份验证方法。 允许的值为 Enhanced sts OAuth 2.0OAuth_2.0

Salesforce Marketing Cloud 旧包仅支持 OAuth_2.0,而增强包需要 Enhanced sts OAuth 2.0
自 2019 年 8 月 1 日起,Salesforce Marketing Cloud 去除了创建旧包的功能。 所有新包都是增强包。
host 对于增强包,主机应为子域,由以字母“mc”开头的 28 个字符的字符串表示,例如 mc563885gzs27c5t9-63k636ttgm
对于旧包,指定 www.exacttargetapis.com
clientId 与 Salesforce Marketing Cloud 应用程序关联的客户端 ID。
clientSecret 与 Salesforce Marketing Cloud 应用程序关联的客户端密码。 可选择将此字段标记为 SecureString,将其安全地存储在服务中,或在 Azure 密钥保管库中存储机密,让服务复制活动在执行数据复制时从其中进行拉取(详见在 Key Vault 中存储凭据)。
useEncryptedEndpoints 指定是否使用 HTTPS 加密数据源终结点。 默认值为 true。
useHostVerification 指定通过 TLS 进行连接时是否要求服务器证书中的主机名与服务器的主机名匹配。 默认值为 true。
usePeerVerification 指定通过 TLS 进行连接时是否要验证服务器的标识。 默认值为 true。

示例:对增强包使用增强版 STS OAuth 2 身份验证

{
    "name": "SalesforceMarketingCloudLinkedService",
    "properties": {
        "type": "SalesforceMarketingCloud",
        "typeProperties": {
            "connectionProperties": {
                "host": "<subdomain e.g. mc563885gzs27c5t9-63k636ttgm>",
                "authenticationType": "Enhanced sts OAuth 2.0",
                "clientId": "<clientId>",
                "clientSecret": {
                     "type": "SecureString",
                     "value": "<clientSecret>"
            	},
                "useEncryptedEndpoints": true,
                "useHostVerification": true,
                "usePeerVerification": true
            }
        }
    }
}

示例:对旧包使用 OAuth 2 身份验证

{
    "name": "SalesforceMarketingCloudLinkedService",
    "properties": {
        "type": "SalesforceMarketingCloud",
        "typeProperties": {
            "connectionProperties": {
                "host": "www.exacttargetapis.com",
                "authenticationType": "OAuth_2.0",
                "clientId": "<clientId>",
                "clientSecret": {
                     "type": "SecureString",
                     "value": "<clientSecret>"
            	},
                "useEncryptedEndpoints": true,
                "useHostVerification": true,
                "usePeerVerification": true
            }
        }
    }
}

如果使用的是具有以下有效负载的 Salesforce Marketing Cloud 链接服务,它仍然按原样受支持,但建议使用新的版本来添加增强包支持。

{
    "name": "SalesforceMarketingCloudLinkedService",
    "properties": {
        "type": "SalesforceMarketingCloud",
        "typeProperties": {
            "clientId": "<clientId>",
            "clientSecret": {
                 "type": "SecureString",
                 "value": "<clientSecret>"
            },
            "useEncryptedEndpoints": true,
            "useHostVerification": true,
            "usePeerVerification": true
        }
    }
}

数据集属性

有关可用于定义数据集的各部分和属性的完整列表,请参阅数据集一文。 本部分提供 Salesforce Marketing Cloud 数据集支持的属性列表。

要从 Salesforce Marketing Cloud 复制数据,请将数据集的 type 属性设置为 SalesforceMarketingCloudObject 。 支持以下属性:

属性 描述 必需
type 数据集的 type 属性必须设置为:SalesforceMarketingCloudObject
tableName 表的名称。 否(如果指定了活动源中的“query”)

示例

{
    "name": "SalesforceMarketingCloudDataset",
    "properties": {
        "type": "SalesforceMarketingCloudObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<SalesforceMarketingCloud linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

复制活动属性

有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供 Salesforce Marketing Cloud 源支持的属性列表。

Salesforce Marketing Cloud 作为源

要从 Salesforce Marketing Cloud 复制数据,请将复制活动中的源类型设置为 SalesforceMarketingCloudSource 。 复制活动source部分支持以下属性:

属性 描述 必需
type 复制活动 source 的 type 属性必须设置为:SalesforceMarketingCloudSource
query 使用自定义 SQL 查询读取数据。 例如:"SELECT * FROM MyTable" 否(如果指定了数据集中的“tableName”)

示例:

"activities":[
    {
        "name": "CopyFromSalesforceMarketingCloud",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SalesforceMarketingCloud input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SalesforceMarketingCloudSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

注意

不支持 Contacts 表。

查找活动属性

若要了解有关属性的详细信息,请查看 Lookup 活动

有关复制活动支持作为源和接收器的数据存储的列表,请参阅支持的数据存储