安排 Salesforce Marketing Cloud 转移作业
借助适用于 Salesforce Marketing Cloud 连接器的 BigQuery Data Transfer Service,您可以自动安排和管理从 Salesforce Marketing Cloud 到 BigQuery 的周期性加载作业。
准备工作
以下部分介绍了在创建 Salesforce Marketing Cloud 转移作业之前需要执行的步骤。
Salesforce Marketing Cloud 前提条件
创建 Salesforce Marketing Cloud 转移作业时,您必须具备以下信息:
参数名称 | 说明 |
---|---|
subdomain |
API 子网域 |
instance |
API 服务器实例 |
clientId |
应用集成客户端 ID |
clientSecret |
应用集成客户端密钥 |
以下步骤展示了如何获取创建 Salesforce Marketing Cloud 转移作业所需的信息:
- 安装服务器到服务器类型的 API 集成软件包。
记下软件包详情页面的组件部分中的客户端 ID、客户端密钥和子网域。
- 子网域是基本 URI 的一部分。例如,在身份验证基本 URI
https://SUBDOMAIN.auth.marketingcloudapis.com/
中,SUBDOMAIN 是您的子网域值。 - 如需了解详情,请参阅采用客户端凭据授权类型的服务器到服务器集成。
- 子网域是基本 URI 的一部分。例如,在身份验证基本 URI
- 登录 Salesforce Marketing Cloud 应用后,在网址中查找 API 服务器实例。实例值包含
s
,后跟数值。例如,在网址https://mc.s4.exacttarget.com/
中,实例值为s4
。如需了解详情,请参阅查找 Marketing Cloud 账号的堆栈位置。
您还必须配置范围权限设置,以允许 Salesforce Marketing Cloud 转移作业:
登录 Salesforce Marketing Cloud 应用。
展开个人资料下拉菜单,然后点击 Setup(设置)。
在 Platform Tools(平台工具)下的导航栏中,点击 Apps > Installed packages(应用 > 已安装的软件包)。
选择已安装的软件包以修改其设置。
在 Components(组件)部分中,点击 Edit(修改)。
为以下范围选择 Read(读取)选项:
- 电子邮件
- 已保存的内容
- 历程
- 回调
- 广告系列
点击保存。
BigQuery 前提条件
- 确认您已完成启用 BigQuery Data Transfer Service 所需的所有操作。
- 创建 BigQuery 数据集来存储数据。
- 如果您想要为 Pub/Sub 设置转移作业运行通知,请确保拥有
pubsub.topics.setIamPolicy
Identity and Access Management (IAM) 权限。如果您只是要设置电子邮件通知,则无需 Pub/Sub 权限。如需了解详情,请参阅 BigQuery Data Transfer Service 运行通知。
所需 BigQuery 角色
如需获得创建转移作业所需的权限,请让您的管理员为您授予 BigQuery Admin (roles/bigquery.admin
) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限。
此预定义角色可提供创建转移作业所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建转移作业需要以下权限:
-
针对用户的
bigquery.transfers.update
权限 -
针对目标数据集的
bigquery.datasets.get
权限 -
针对目标数据集的
bigquery.datasets.update
权限
设置 Salesforce Marketing Cloud 数据转移作业
如需创建 Salesforce Marketing Cloud 数据转移作业,请执行以下操作:
控制台
转到 Google Cloud 控制台中的 BigQuery 页面。
在导航窗格中,点击数据转移 > 创建转移作业。
在来源类型部分的来源中,选择 Salesforce Marketing Cloud。
在转移配置名称部分的显示名中,输入转移作业的名称。
在时间表选项部分中,执行以下操作:
在重复频率列表中,选择一个选项以指定此转移作业的运行频率。如需指定自定义重复频率,请选择自定义。如果您选择按需,则当您手动触发转移作业时,此转移作业会运行。
如果适用,请选择立即开始或在设置的时间开始,并提供开始日期和运行时间。
在目标设置部分的数据集中,选择您创建用来存储数据的数据集。
在数据源详细信息部分中,执行以下操作:
- 对于 API 子网域,输入 API 子网域。
- 对于 API 实例,输入 API 实例值。
- 对于客户端 ID,输入应用集成客户端 ID。
- 对于客户端密钥,输入应用集成客户端密钥。
在服务账号菜单中,选择与您的 Google Cloud 项目关联的服务账号。所选服务账号必须具有所需的角色才能运行此转移作业。
如果您使用联合身份登录,则需要有服务账号才能创建转移作业。如果您使用 Google 账号登录,则转移作业的服务账号是可选的。
如需详细了解如何将服务账号用于数据转移,请参阅使用服务账号。
可选:在通知选项部分中,执行以下操作:
- 如需启用电子邮件通知,请点击电子邮件通知切换开关。启用此选项后,传输作业管理员会在传输作业运行失败时收到电子邮件通知。
- 如需为此转移作业启用 Pub/Sub 转移作业运行通知,请点击 Pub/Sub 通知切换开关。您可以选择主题名称,也可以点击创建主题来创建某个主题。
点击保存。
当此转移作业运行时,BigQuery Data Transfer Service 会根据 REST 接口自动填充以下表。
Campaigns
Categories
EventDefinitions
Journeys
JourneyActivities
SendDefinitions
Subscriptions
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 转移作业时遇到问题,请尝试以下问题排查步骤:
- 确保将为 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 简介。
- 如需了解如何使用转移作业,包括获取有关转移作业配置的信息、列出转移作业配置以及查看转移作业的运行历史记录,请参阅管理转移作业。
- 了解如何通过跨云操作加载数据。