Salesforce 批量来源

本页介绍了如何使用 Cloud Data Fusion 将数据从 Salesforce sObject 加载到 Google Cloud。Salesforce Batch Source 插件会从 Salesforce 读取 sObject。sObject 是您计划从中提取数据的 Salesforce 表。sObject 示例包括商机、联系人、账号、潜在客户和自定义对象。

Salesforce Batch Source 插件支持使用 Salesforce 对象查询语言 (SOQL) 查询和增量日期过滤器或范围日期过滤器读取数据。

准备工作

配置插件

  1. 前往 Cloud Data Fusion 网页界面,然后点击 Studio
  2. 检查是否已选择 Data Pipeline - Batch(而不是 Realtime)。
  3. 来源菜单中,点击 Salesforce。Salesforce 节点会显示在您的流水线中。如果您在 Studio 页面上没有看到 Salesforce 来源,请从 Cloud Data Fusion Hub 部署 Salesforce 插件
  4. 如需配置该来源,请前往 Salesforce 节点,然后点击属性
  5. 输入以下属性。如需查看完整列表,请参阅属性

    1. 为 Salesforce 节点输入标签,例如 Salesforce tables
    2. 为 Salesforce 来源输入参考名称(例如 Salesforce tables),以便建立谱系。
    3. 输入连接详情。您可以设置新的一次性连接,也可以设置现有的可重复使用连接。

      新增关联项

      如需向 Salesforce 添加一次性连接,请按以下步骤操作:

      1. 使用连接保持关闭状态。
      2. 连接部分,在以下字段中输入 Salesforce 账号中的以下信息:

        • 用户名
        • 密码
        • 安全令牌
        • 使用方密钥
        • 使用方密钥

        如需从 Salesforce 获取凭据,请参阅从 Salesforce 获取媒体资源

      可重复使用的连接

      如需重复使用现有连接,请按以下步骤操作:

      1. 开启使用连接
      2. 点击浏览连接
      3. 点击连接名称。

      4. 可选:如果不存在关联,并且您想创建新的可重复使用关联,请点击添加关联,然后参阅新关联标签页中的步骤。

    4. 输入 SObject 名称以加载对象中的所有列。

    5. 可选:如果您选择 sObject 名称,则可以使用以下字段过滤数据:

      • 上次修改时间晚于:仅包含上次修改时间晚于指定时间的记录。
      • 上次修改日期早于:仅包含上次修改日期早于指定时间的记录。
      • 时长:仅包含上次修改时间在指定大小的时间范围内的记录。
      • 偏移量:仅包含“上次修改日期”小于流水线逻辑开始时间(减去给定偏移量)的记录。
    6. 可选:对于受支持的 sObject,如需提升流水线的性能,请开启启用主键分块。如需了解详情,请参阅利用 PK 分块提升性能

    7. 可选:您可以输入 SOQL 查询(例如 SELECT LastName from Contact),而不是指定 sObject 名称。如需了解详情,请参阅 Salesforce 来源的 SOQL 查询

    8. 如需测试连接,请点击获取架构。Cloud Data Fusion 会连接到 Salesforce,并提取所列表(在技术上称为 sObject)的架构。

属性

属性 已启用宏 必需属性 说明
参考名称 用于唯一标识此来源,以便执行任务(例如沿袭、注释元数据)。
使用连接 使用现有连接。如果使用连接,则无需提供凭据。
浏览关联 要使用的连接的名称。
用户名 Salesforce 用户名。
密码 Salesforce 密码。
安全令牌 Salesforce 安全令牌。如果密码不包含安全令牌,Cloud Data Fusion 会在使用 Salesforce 进行身份验证之前附加该令牌。
使用方密钥 应用使用方密钥。这也称为 OAuth 客户端 ID。如需获取使用方密钥,请创建 Salesforce 关联的应用
使用方密钥 应用使用方密钥。这也称为 OAuth 客户端密钥。如需获取客户端密钥,请创建 Salesforce 关联的应用
登录网址 Salesforce OAuth2 登录网址。
默认值为 https://login.salesforce.com/services/oauth2/token
连接超时 等待连接初始化之前超时的最长时间(以毫秒为单位)。
默认值为 30,000 毫秒。
代理网址 代理网址,其中包含协议、地址和端口。
SOQL 用于将数据提取到来源的 SOQL 查询。
示例:
  • SELECT Id, Name, BillingCity FROM Account
  • SELECT Id FROM Contact WHERE Name LIKE 'A%' AND MailingCity = 'California'
SObject 名称 要读取的 Salesforce 对象名称。如果提供了值,连接器会从 Salesforce 获取此对象的所有字段,并生成 SOQL 查询,例如 select FIELD_1, FIELD_2 from ${sObjectName}。如果提供了 SOQL 查询,则忽略该参数。
Salesforce Bulk API 中还不支持某些 sObject。使用不受支持的对象创建作业会导致以下错误:Entity is not supported by the Bulk API。Einstein Analytics 也不支持这些对象,它使用 Bulk API 来查询数据。
不使用 BULK API 的情况:当查询长度将查询发送到 Salesforce 以接收批量信息数组时,在一种情况下不会使用 BULK API。如果查询在限制范围内,则执行原始查询。否则,它会切换到宽对象逻辑。 例如,它会生成一个 ID 查询,该查询仅会检索日后用于通过 SOAP API 检索数据的 ID 的批量信息。
上次修改日期晚于 过滤数据,仅包含系统字段 LastModifiedDate 大于或等于指定日期的记录。使用 Salesforce 日期格式(请参阅示例)。如果未提供任何值,则不应用下限日期。
上次修改时间早于 过滤数据,使其仅包含系统字段 LastModifiedDate 小于指定日期的记录。使用 Salesforce 日期格式(请参阅示例)。通过上次修改日期晚于属性指定此值,您可以读取在某个时间范围内修改的数据。如果未提供值,则不会应用上限日期。
时长 过滤数据,以便仅读取上次修改时间在指定大小的时间范围内的记录。例如,如果时长为 6 hours,且数据流式传输作业在凌晨 9 点运行,则它将读取上次更新时间介于凌晨 3 点(包括)到凌晨 9 点(不包括)的数据。 使用数字和以下时间单位指定时长:
  • seconds
  • minutes
  • hours
  • days
  • months
  • years
可以指定多个单位,但每个单位只能使用一次。例如 2 days, 1 hours, 30 minutes。如果已为上次修改时间晚于上次修改时间早于指定了值,则系统会忽略时长。
偏移值 过滤数据,以便仅读取系统字段 LastModifiedDate 小于流水线逻辑开始时间(减去给定偏移量)的记录。例如,如果时长为 6 hours,偏移量为 1 hours,并且流水线在凌晨 9 点运行,则系统会读取上次修改时间介于凌晨 2 点(包括)到凌晨 8 点(不包括)之间的数据。
使用数字和以下时间单位指定时长:
  • seconds
  • minutes
  • hours
  • days
  • months
  • years
可以指定多个单位,但每个单位只能使用一次。例如 2 days, 1 hours, 30 minutes。如果已为最后修改时间晚于最后修改时间早于指定值,系统会忽略偏移量。
SOQL 操作类型 指定要在表上运行的查询操作。如果选择了查询,则系统只会返回当前记录。选择 queryAll 会返回所有当前记录和已删除记录。
默认操作为 query
启用主键分块 主键 (PK) 分块会根据所查询记录的记录 ID(即主键)将对大型表的查询拆分为多个部分(即分块)。
Salesforce 建议您在查询包含超过 1, 000 万条记录的表时,或批量查询不断超时时,启用主键分块。 如需了解详情,请参阅 主键分块。主键分块仅适用于不包含 SELECT 子句或 WHERE 以外条件的查询。 自定义对象以及支持标准对象的任何“分享和历史记录”表都支持分块。
分块大小 指定分块大小。大小上限为 25 万。默认大小为 10 万。
SObject 父级名称 Salesforce 对象的父级。用于为历史记录表或共享对象启用分块。

Salesforce 日期格式示例

格式语法 示例
YYYY-MM-DDThh:mm:ss+hh:mm 1999-01-01T23:01:01+01:00
YYYY-MM-DDThh:mm:ss-hh:mm 1999-01-01T23:01:01-08:00
YYYY-MM-DDThh:mm:ssZ 1999-01-01T23:01:01Z

数据类型映射

下表列出了 Salesforce 数据类型及其对应的 CDAP 类型。

Salesforce 数据类型 CDAP 架构数据类型
_bool boolean
_int int
_long long
_doublecurrencypercentgeolocation(纬度)、geolocation(经度) double
date date
datetime timestamp(微秒)
time time(微秒)
picklist string
multipicklist string
combobox string
reference string
base64 string
textarea string
phone string
id string
url string
email string
encryptedstring string
datacategorygroupreference string
location string
address string
anyType string
json string
complexvalue string

使用场景

请参阅 Salesforce 批量来源的以下使用场景:

最佳做法

如需详细了解如何提升 Salesforce 批量来源的性能,请参阅最佳实践

后续步骤