在复制活动中配置 Salesforce

本文概述了如何使用数据管道中的复制活动从/向 Salesforce 复制数据。

支持的配置

有关复制活动下每个选项卡的配置,请分别转到以下各部分。

常规

若要配置“常规”设置选项卡,请参阅常规”设置指导。

Source

Salesforce 支持复制活动的“源”选项卡下的以下属性。

显示“源”选项卡的屏幕截图。

需要以下属性:

  • 连接:从连接列表中选择 Salesforce 连接。 如果不存在连接,请选择“新建”来创建新的 Salesforce 连接。
  • 使用查询:从“对象 API”、“报表”或“SOQL 查询”中进行选择。
    • 如果选择“对象 API”:

      • 对象 API:指定要从中检索数据的 Salesforce 对象名称。 从下拉列表中选择名称。
    • 如果选择“报表”:

      • 报表 ID:指定要从中检索数据的 Salesforce 报表的 ID。 目标不支持。 使用报表时存在限制

        屏幕截图,其中显示了“使用查询 – 报表”。

    • 如果选择“SOQL 查询”

在“高级”下,可以指定以下字段:

  • 包括已删除对象:指定是否查询现有记录(未选择),还是查询已删除记录在内的所有记录(已选择)。
  • 其他列:添加其他数据列以存储源文件的相对路径或静态值。 后者支持表达式。

目标

Salesforce 在复制活动的“目的地”选项卡下支持以下属性。

显示“目标”选项卡和属性列表的屏幕截图。

需要以下属性:

  • 连接:从连接列表中选择 Salesforce 连接。 如果不存在连接,请选择“新建”来创建新的 Salesforce 连接。
  • 对象 API:指定要向其写入数据的 Salesforce 对象名称。 从下拉列表中选择名称。

在“高级”下,可以指定以下字段:

  • 写入行为:指定操作的写入行为。 允许的值为 InsertUpsert。 可以从下拉列表中选择行为。

    如果选择“更新插入”

    • 外部 ID 字段:更新插入操作的外部 ID 字段名称。 指定的字段必须在 Salesforce 对象中定义为“外部 ID 字段”。 它相应的输入数据中不能有 NULL 值。

      显示“写入行为 – 更新插入”的屏幕截图。

  • 忽略 null 值:指定是否在写入操作期间忽略输入数据中的 NULL 值。

    • 选择此项时:执行更新插入或更新操作时,保持目标对象中的数据不变。 插入在执行插入操作时定义的默认值。
    • 未选择此项时:执行更新插入或更新操作时,将目标对象中的数据更新为 NULL。 执行插入操作时插入 NULL 值。
  • 写入批大小:指定每个批中写入 Salesforce 的数据的行数。 建议将此值设置为介于 10,000 和 200,000 之间的值。 每批中的行太少会降低复制性能。 每批中的行过多可能会导致 API 超时。

  • 最大并发连接:活动运行期间与数据存储建立的并发连接的上限。 仅在要限制并发连接时指定一个值。

映射

对于“映射”选项卡配置,请参阅“映射”选项卡下的“配置映射”

设置

对于“设置”选项卡配置,请转到“设置”选项卡下的“配置其他设置”

表摘要

下表包含有关 Salesforce 中的复制活动的详细信息。

源信息

名称 描述 必选 JSON 脚本属性
Connection 与源数据存储的连接。 <Salesforce 连接> 连接
连接类型 你的连接类型。 选择“Salesforce 对象”。 SalesforceObject /
使用查询 从 Salesforce 读取数据的方式。 • 对象 API
• 报表
• SOQL 查询
/
对于 对象 API
对象 API 指定要从中检索数据的 Salesforce 对象名称。 <对象名称> objectApiName
对于报表
报表 ID 要从中检索数据的 Salesforce 报表的 ID。 目标不支持。 使用报表时存在限制 <报表 ID> reportId
对于 SOQL 查询
SOQL 查询 使用自定义查询读取数据。 可以只使用 Salesforce 对象查询语言 (SOQL) 查询,但存在了解 Bulk API 2.0 查询限制。 如果未指定“SOQL 查询”,将检索在“对象 API”或“报表 ID”中指定的 Salesforce 对象的所有数据。 <SOQL 查询> 查询
包括已删除对象 指示是查询现有记录,还是查询包括已删除记录在内的所有记录。 选中或未选中(默认) includeDeletedObjects:
true 或 false(默认)
其他列 添加其他数据列以存储源文件的相对路径或静态值。 后者支持表达式。 • 姓名
• 值
additionalColumns:
• 名称
• 值

目标信息

名称 描述 必选 JSON 脚本属性
Connection 与目标数据存储的连接。 <Salesforce 连接> 连接
对象 API 指定向其写入数据的 Salesforce 对象名称。 <对象名称> objectApiName
写入行为 操作写入行为。 允许的值为 InsertUpsert。 可以从下拉列表中选择行为。 • 插入
• 更新插入
否(默认值为 Insert) writeBehavior:
insert
更新插入
外部 ID 字段 更新插入操作的外部的 ID 字段名称。 指定的字段必须在 Salesforce 对象中定义为“外部 ID 字段”。 它相应的输入数据中不能有 NULL 值。 <外部 ID 字段> 对于“Upsert”是必需的 externalIdFieldName
忽略 null 值 指示是否忽略 NULL 值从输入数据期间写入操作。 选中或未选中(默认) ignoreNullValues:
true 或 false(默认)
写入批大小 每批中写入到 Salesforce 的数据行计数。 建议将此值设置为介于 10,000 和 200,000 之间的值。 每批中的行太少会降低复制性能。 每批中的行过多可能会导致 API 超时。 <行数>
(整数)
否(默认值为 100,000) writeBatchSize
最大并发连接数 活动运行期间与数据存储建立的并发连接的上限。 仅在要限制并发连接时指定一个值。 <最大并发连接数> maxConcurrentConnections

Salesforce Bulk API 2.0 限制

我们使用 Salesforce Bulk API 2.0 来查询和引入数据。 在 Bulk API 2.0 中,会自动为你创建批处理。 每个滚动 24 小时周期最多可提交 15,000 个批处理。 如果批处理超出限制,则会失败。

在 Bulk API 2.0 中,只有引入作业使用批处理。 查询作业不使用它。 有关详细信息,请参阅如何在 Bulk API 2.0 中处理请求 - 开发人员指南

有关详细信息,请参阅 Salesforce 开发人员限制中的常规限制部分。