在复制活动中配置 Salesforce
本文概述了如何使用数据管道中的复制活动从/向 Salesforce 复制数据。
支持的配置
有关复制活动下每个选项卡的配置,请分别转到以下各部分。
常规
若要配置“常规”设置选项卡,请参阅“常规”设置指导。
Source
Salesforce 支持复制活动的“源”选项卡下的以下属性。
需要以下属性:
- 连接:从连接列表中选择 Salesforce 连接。 如果不存在连接,请选择“新建”来创建新的 Salesforce 连接。
- 使用查询:从“对象 API”、“报表”或“SOQL 查询”中进行选择。
如果选择“对象 API”:
- 对象 API:指定要从中检索数据的 Salesforce 对象名称。 从下拉列表中选择名称。
如果选择“报表”:
报表 ID:指定要从中检索数据的 Salesforce 报表的 ID。 目标不支持。 使用报表时存在限制。
如果选择“SOQL 查询”:
SOQL 查询:使用自定义查询读取数据。 可以只使用 Salesforce 对象查询语言 (SOQL) 查询,但存在了解 Bulk API 2.0 查询限制。 如果未指定“SOQL 查询”,将检索在“对象 API”或“报表 ID”中指定的 Salesforce 对象的所有数据。
在“高级”下,可以指定以下字段:
- 包括已删除对象:指定是否查询现有记录(未选择),还是查询已删除记录在内的所有记录(已选择)。
- 其他列:添加其他数据列以存储源文件的相对路径或静态值。 后者支持表达式。
目标
Salesforce 在复制活动的“目的地”选项卡下支持以下属性。
需要以下属性:
- 连接:从连接列表中选择 Salesforce 连接。 如果不存在连接,请选择“新建”来创建新的 Salesforce 连接。
- 对象 API:指定要向其写入数据的 Salesforce 对象名称。 从下拉列表中选择名称。
在“高级”下,可以指定以下字段:
写入行为:指定操作的写入行为。 允许的值为 Insert 和 Upsert。 可以从下拉列表中选择行为。
如果选择“更新插入”:
外部 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 |
写入行为 | 操作写入行为。 允许的值为 Insert 和 Upsert。 可以从下拉列表中选择行为。 | • 插入 • 更新插入 |
否(默认值为 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 开发人员限制中的常规限制部分。