将 Salesforce Marketing Cloud 数据加载到 BigQuery 中
您可以使用适用于 Salesforce Marketing Cloud 的 BigQuery Data Transfer Service 连接器将数据从 Salesforce Marketing Cloud 加载到 BigQuery。借助 BigQuery Data Transfer Service,您可以安排周期性转移作业,以将最新数据从 Salesforce Marketing Cloud 添加到 BigQuery。
限制
Salesforce Marketing Cloud 数据转移受到以下限制:
- 单个转移配置在给定时间只能支持一次数据转移运行。如果第二次数据转移的预定运行时间在第一次转移完成之前,则只有第一次数据转移会完成,而与第一次转移时间重叠的任何其他数据转移都会被跳过。
- 为避免在单个转移配置中跳过转移,建议您通过配置重复频率来增加大型数据转移之间的时长。
- 如果您配置的网络连接和虚拟机 (VM) 实例位于不同的区域,那么在从 Salesforce Marketing Cloud 转移数据时,可能会发生跨区域数据移动。
准备工作
以下部分介绍了在创建 Salesforce Marketing Cloud 数据转移之前需要执行的步骤。
Salesforce Marketing Cloud 前提条件
创建 Salesforce Marketing Cloud 数据转移时,您必须具备以下信息:
参数名称 | 说明 |
---|---|
subdomain |
基本 URI 中的 API 子网域。例如,在身份验证基本 URI https://SUBDOMAIN.auth.marketingcloudapis.com/ 中,SUBDOMAIN 是您的子网域值。 |
instance |
登录 Salesforce Marketing Cloud 应用后,在网址中找到的 API 服务器实例。实例值包含“s”,后跟数值。例如,在网址 `https://mc.s4.exacttarget.com/` 中,实例值为 `s4`。如需了解详情,请参阅查找 Marketing Cloud 账号的堆栈位置 |
clientId |
API 集成中的客户端 ID。依次前往设置 > 应用 > 已安装的软件包,然后点击软件包名称。客户端 ID 列在组件下方。 |
clientSecret |
应用集成客户端密钥。依次前往设置 > 应用 > 已安装的软件包,然后点击软件包名称。客户端密钥列在组件下。 |
为 Salesforce Marketing Cloud 转移作业设置 IP 许可名单
您必须配置 Google Cloud 环境和 Salesforce Marketing Cloud 账号,才能将特定 IP 地址添加到数据转移的许可名单中。 这样可确保 Salesforce Marketing Cloud 仅接受来自可信的静态 IP 地址的连接。
为此,您必须先设置和配置 Google Cloud 网络以使用静态 IP 地址:
- 在虚拟私有云网络中设置具有静态 IP 地址的公共网络地址转换 (NAT)。CloudNAT 必须配置在与相应数据转移的目标数据集相同的区域内。
- 在同一 VPC 网络中设置网络连接。BigQuery Data Transfer Service 使用此资源来访问私有服务。
接下来,您必须将静态 IP 地址添加到 Salesforce Marketing Cloud 的许可名单中。 添加 IP 地址范围时,请使用Google Cloud Public NAT 中的静态 IP 地址作为 IP 范围的起始和结束 IP 地址。
设置 IP 地址范围后,您现在可以在设置转移配置时,通过在网络连接字段中选择网络连接来指定静态 IP。
安装和配置 Salesforce Marketing Cloud API 集成软件包
您必须在 Salesforce Marketing Cloud 中安装服务器到服务器 API 集成软件包。您可以在 Salesforce Marketing Cloud 中通过安装新的已安装软件包来完成此操作,并指定组件 API 集成 > 服务器到服务器。如需了解详情,请参阅创建和安装软件包。
安装 API 集成软件包后,您必须添加以下权限范围:
- 访问权限:
Offline Access
- 电子邮件地址:
Read
- OTT:
Read
- 推送:
Read
- 短信:
Read
- Web:
Read
- 文档和图片:
Read
- 已保存的内容:
Read
- 旅程:
Read
- 受众群体:
Read
- 名单和订阅者:
Read
- 日期扩展函数:
Read
- 文件位置
Read
- 跟踪事件:
Read
- 回调:
Read
- 订阅:
Read
- 广告系列:
Read
- 素材资源:
Read
- 账号:
Read
- OTT 频道:
Read
- 用户数:
Read
如需了解详情,请参阅 API 集成权限范围。
BigQuery 前提条件
- 确认您已完成启用 BigQuery Data Transfer Service 所需的所有操作。
- 创建 BigQuery 数据集来存储数据。
- 如果您想要为 Pub/Sub 设置转移作业运行通知,请确保拥有
pubsub.topics.setIamPolicy
Identity and Access Management (IAM) 权限。如果您只是要设置电子邮件通知,则无需 Pub/Sub 权限。如需了解详情,请参阅 BigQuery Data Transfer Service 运行通知。
所需 BigQuery 角色
如需获得创建 BigQuery Data Transfer Service 数据转移所需的权限,请让您的管理员为您授予项目的 BigQuery Admin (roles/bigquery.admin
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含创建 BigQuery Data Transfer Service 数据转移所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需创建 BigQuery Data Transfer Service 数据转移作业,需要具备以下权限:
-
BigQuery Data Transfer Service 权限:
-
bigquery.transfers.update
-
bigquery.transfers.get
-
-
BigQuery 权限:
-
bigquery.datasets.get
-
bigquery.datasets.getIamPolicy
-
bigquery.datasets.update
-
bigquery.datasets.setIamPolicy
-
bigquery.jobs.create
-
如需了解详情,请参阅授予 bigquery.admin
访问权限。
设置 Salesforce Marketing Cloud 数据转移作业
通过使用以下选项之一设置转移配置,将 Salesforce Marketing Cloud 数据添加到 BigQuery 中:
控制台
前往 Google Cloud 控制台中的“数据转移”页面。
点击
创建转移作业。在来源类型部分的来源中,选择 Salesforce Marketing Cloud。
在数据源详细信息部分,执行以下操作:
- 在 API 子网域部分,输入身份验证基本 URI 的子网域。
- 在 API 实例部分,输入登录 Marketing Cloud 应用后从网址中获取的 API 实例。
- 在客户端 ID 部分,输入 API 集成软件包中的客户端 ID。
- 在客户端密钥部分,输入API 集成软件包中的客户端密钥。
在目标设置部分的数据集字段中,选择您创建用来存储数据的数据集。
在转移配置名称部分的显示名称中,输入数据转移作业的名称。
在时间表选项部分中,执行以下操作:
- 在重复频率列表中,选择一个选项来指定此数据转移作业的运行频率。如需指定自定义重复频率,请选择自定义。如果您选择按需,则当您手动触发转移作业时,此转移作业会运行。
- 如果适用,请选择立即开始或从设置的时间开始,并提供开始日期和运行时间。
可选:在通知选项部分中,执行以下操作:
- 如需启用电子邮件通知,请点击电子邮件通知切换开关。启用此选项后,转移作业管理员会在转移作业运行失败时收到电子邮件通知。
- 如需为此转移作业启用 Pub/Sub 转移作业运行通知,请点击 Pub/Sub 通知切换开关。您可以选择主题名称,也可以点击创建主题来创建一个主题。
点击保存。
bq
输入 bq mk
命令并提供转移作业创建标志 --transfer_config
。
bq mk --transfer_config --project_id=PROJECT_ID --data_source=DATA_SOURCE --display_name=DISPLAY_NAME --target_dataset=DATASET --params='PARAMETERS'
替换以下内容:
- PROJECT_ID(可选):您的 Google Cloud 项目 ID。
如果未提供
--project_id
来指定具体项目,则系统会使用默认项目。 - DATA_SOURCE:数据源(例如
saphana
)。 - DISPLAY_NAME:此标志表示转移配置的显示名称。数据转移作业名称可以是任何可让您在需要修改数据转移作业时识别该数据转移作业的名称。
- DATASET:转移作业配置的目标数据集。
- PARAMETERS:所创建转移作业配置的参数(采用 JSON 格式)。例如
--params='{"param":"param_value"}'
。以下是 Salesforce Marketing Cloud 转移作业的参数:connector.subdomain
:API 子网域。connector.instance
:API 实例值。connector.authentication.oauth.clientId
:OAuth 客户端的应用 ID 名称。connector.authentication.oauth.clientSecret
:OAuth 客户端的应用密钥。
例如,以下命令会使用所有必需参数在默认项目中创建 Salesforce Marketing Cloud 数据转移:
bq mk --transfer_config --target_dataset=mydataset --data_source=salesforce_marketing --display_name='My Transfer' --params='{"connector.subdomain": "abcd", "connector.instance": "x", "connector.authentication.oauth.clientId": "1234567890", "connector.authentication.oauth.clientSecret":"ABC12345"}'
API
使用 projects.locations.transferConfigs.create
方法并提供 TransferConfig
资源实例。
保存转移配置后,Salesforce Marketing Cloud 连接器会根据您的安排选项自动触发转移运行。在每次转移运行时,Salesforce Marketing Cloud 连接器都会将 Salesforce Marketing Cloud 中的所有可用数据转移到 BigQuery 中,并根据 REST 接口转移到以下表格中:
Assets
CampaignAssets
Campaigns
Categories
EventDefinitions
FacebookMessengerProperties
JourneyActivities
Journeys
LineMessengerProperties
SendDefinitions
Subscriptions
DataExtension
Email
LinkSend
List
ListSubscriber
Subscriber
TriggeredSendDefinition
如需在常规安排之外手动运行数据转移,您可以启动回填运行。
数据类型映射
下表将 Salesforce Marketing Cloud 数据类型映射到相应的 BigQuery 数据类型。
Salesforce Marketing Cloud 数据类型 | BigQuery 数据类型 |
---|---|
Boolean |
BOOLEAN |
Number |
INTEGER |
Text |
STRING |
Decimal |
FLOAT |
EmailAddress |
STRING |
Phone |
STRING |
date |
DATE |
Date |
TIMESTAMP |
排查转移作业设置问题
如果您在设置 Salesforce Marketing Cloud 数据转移时遇到问题,请尝试以下问题排查步骤:
- 确保将为 API 集成软件包配置的身份验证配置为服务器到服务器。
- 确保为身份验证应用配置了范围内的所需权限。
错误消息
- 错误:
invalid_grant. The client's IP address is unauthorized for this account. Allowlist the client's IP address in Marketing Cloud Administration.
解决方法:尝试执行以下步骤之一:
- 为 Google Cloud 资源启用所有可用的 IP 地址。
- 停用 IP 许可名单。为此,您可以登录 Salesforce Marketing Cloud 应用,然后进入 Setup > Security Settings 页面。点击 Edit,然后将 Restrict Logins by IP Address (IP Allowlisting) 设置配置为 IP Allowlisting Disabled。
- 错误:
INVALID_ARGUMENT. Table tableName does not exist in asset TableName
解决方法:确保您已在 Salesforce Marketing Cloud 应用中配置正确的范围权限。如需了解详情,请参阅 Salesforce Marketing Cloud 前提条件。
价格
将 Salesforce Marketing Cloud 数据转移到 BigQuery 的功能处于预览版阶段时,您无需付费即可使用此功能。
后续步骤
- 如需大致了解 BigQuery Data Transfer Service,请参阅 BigQuery Data Transfer Service 简介。
- 如需了解如何使用数据转移,包括获取有关转移作业配置的信息、列出转移作业配置以及查看转移作业的运行历史记录,请参阅管理转移作业。
- 了解如何通过跨云操作加载数据。