Openflow Connector for Salesforce Bulk API:选择使用 时默认使用的角色和仓库。配置连接器

备注

此连接器受 Snowflake 连接器条款 的约束。

本主题介绍了配置 Openflow Connector for Salesforce Bulk API 的步骤。

安装连接器

按照以下步骤在 Openflow 运行时中安装 Openflow Connector for Salesforce Bulk API:

  1. 导航到 Openflow Overview 页面。在 Featured connectors 部分中,选择 View more connectors

  2. 在 Openflow 连接器页面上,找到 Openflow connector for Salesforce Bulk API 并选择 Add to runtime

  3. Select runtime 对话框中,从 Available runtimes 下拉列表中选择您的运行时。

此时将显示 Openflow 画布,其中添加了连接器进程组。

配置连接器

要配置连接器,请执行以下步骤:

  1. 右键点击导入的进程组并选择 Parameters

  2. 按照下表所述填充所需的参数值。

参数

描述

Column Removal Strategy

定义在基于最新接收的架构从目标表中移除列时要采用的策略。三个可能的值:Drop ColumnRename ColumnIgnore Column

  • Drop Column:选择使用 时默认使用的角色和仓库。从 Snowflake 表中移除该列。

  • Rename Column:选择使用 时默认使用的角色和仓库。重命名 Snowflake 表中的列。

  • Ignore Column:选择使用 时默认使用的角色和仓库。忽略该列,使其在 Snowflake 表中保持原样。

连接的应用程序密钥

复制粘贴在 Salesforce 设置过程中生成的 private.key 文件内容。如果您想将私钥上传到 Openflow 运行时,也可以使用下一个参数。

连接的应用程序密钥文件

您可以直接上传 private.key 文件:勾选 Reference asset 复选框,然后将文件作为资产上传,并选择该资产作为参数值。

连接的应用程序密钥密码

在 Salesforce 设置步骤中对私钥文件设置的密码。

目标数据库

Snowflake 中将复制 Salesforce 数据的数据库的名称。在启动连接器之前,数据库必须存在。

目标架构

连接器将在此上文的指定数据库中,为待添加的 Salesforce 数据创建表的架构名称。在启动连接器之前,架构必须存在。

筛选器

要从 Salesforce 复制的对象列表(以逗号分隔),或应用于所有现有对象的正则表达式。示例:Account, Opportunity, Contact

备注

如果留空,则将复制所有对象。不建议这样做,因为 Salesforce 实例中通常包含数千个对象。

增量卸载

处理器是否应执行增量卸载。如果为 true,处理器将通过在适当的 timestamp 字段上使用 WHERE 子句,仅提取自上次查询任务提交后修改过的记录。如果为 false,将在每次执行连接器时提取所有记录。

初始加载分块

如果设置为非 NONE 的值,系统将根据此时间间隔将初始数据加载拆分为多个任务。首次运行对象时,连接器将查询 Salesforce 以查找最旧的记录,并将其用作起点。每个后续作业将查询下一个时间块,直到赶上当前时间。应使用以下其中一项进行设置:NONEMONTHLYQUARTERLYYEARLY

对于大型数据集,在单个查询中加载所有历史数据可能会导致超时、超出 API 限制或超过运行时内容存储库的存储容量,此时该设置非常有用。一旦数据追平,处理器将恢复正常增量卸载行为。

OAuth2 受众

在 JWT 令牌中设置的受众。这通常设置为 https://login.salesforce.com

OAuth2 客户端 ID

应设置为在 Salesforce 设置步骤中检索到的 Consumer Key 值。

OAuth2 主题

应设置为已管理员批准的用户名,以便应用程序代表此用户与 Salesforce APIs 进行交互。

OAuth2 令牌端点 URL

通过 JWT Bearer Flow 协商令牌的端点。示例:https://myCompany.my.salesforce.com/services/oauth2/token

对象字段筛选器 JSON

一个 JSON 文件,用于指定每个 Salesforce 对象应包含或排除哪些字段及字段模式。采用数组的形式,每个对象包含一个项目。

示例 1:在以下 和 命令中,服务名称不会显式指定数据库和架构名称。这将包括“Account”Salesforce 对象中以“name”结尾的所有字段:

[ {"objectType":"Account", "includedPattern":".*name"} ]

示例 2:在以下 和 命令中,服务名称包括数据库和架构名称。这将包括“Account”Salesforce 对象中的字段 ID、Name 和 Revenue:

[ {"objectType":"Account", "included": ["Id", "Name", "Revenue"]} ]

excludedexcludedPattern 也可用于配置筛选器。

对象标识符解析

确定架构/表/列名称是区分大小写还是不区分大小写。其中之一:CASE_INSENSITIVE/CASE_SENSITIVE

备注

更改此参数值将需要清除状态并完全重新加载所有对象。

Removed Column Name Suffix

当参数 Column Removal Strategy 设置为 Rename Column 时,将添加到列名的后缀。默认:__deleted

运行计划

连接器通过 Filter 参数检查 Salesforce 中配置对象更新的频率。默认:15 minutes

Salesforce 实例

Salesforce 实例的主机名,包括域名。请勿包含协议前缀 (https://)。例如,请使用 myCompany.my.salesforce.com

Snowflake 账户标识符

Snowflake 账户名称的格式为 [organization-name]-[account-name],数据将持久存储在此账户中。示例:PM-CONNECTORS

Snowflake 用户名

连接器用于连接 Snowflake 的服务用户名称。仅在使用 KEY_PAIR 身份验证策略时才需要服务用户(仅限 Openflow BYOC)。

Snowflake 私钥

连接器用于向 Snowflake 进行身份验证的 RSA 私钥,需按 PKCS8 标准格式化,并包含标准的 PEM 页眉和页脚。头标记行以 -----BEGIN PRIVATE 开头。仅在使用 KEY_PAIR 身份验证策略时才需要(仅限 Openflow BYOC)。

您也可以使用下一个参数将私钥上传到 Openflow 运行时。

Snowflake 私钥文件

文件包含连接器用于向 Snowflake 进行身份验证的 RSA 私钥,需按 PKCS8 标准格式化,并包含标准的 PEM 页眉和页脚。头标记行以 -----BEGIN PRIVATE 开头。仅在使用 KEY_PAIR 身份验证策略时才需要(仅限 Openflow BYOC)。

选择 Reference asset 复选框,上传私钥文件并将其安全地存储在 Openflow 运行时中。

Snowflake 私钥密码

与 Snowflake 私钥文件关联的密码(如果已加密)。仅在使用 KEY_PAIR 身份验证策略时才需要(仅限 Openflow BYOC)。

Snowflake 角色

查询执行期间使用的 Snowflake 角色名称使用 SNOWFLAKE_MANAGED 时,这是 Openflow 运行时的 Snowflake 角色。使用 KEY_PAIR 时(仅限 Openflow BYOC),这是分配给指定 Snowflake 用户名的角色。

Snowflake 身份验证策略

连接器连接到 Snowflake 的身份验证策略。

使用 SNOWFLAKE_MANAGED``(默认)将使用与指定的 Snowflake 运行时角色关联的 Snowflake 托管令牌。如果使用 Openflow BYOC,也可以通过 ``KEY_PAIR 来指定特定用户和角色,以便通过自定义密钥对进行配置。

Snowflake 仓库

用于运行查询的 Snowflake 仓库。

特殊对象筛选器

从 Salesforce 卸载的对象列表(以逗号分隔,使用直接 API 访问),或应用于所有现有对象的正则表达式。

此筛选器应仅用于 Salesforce Bulk API 支持的对象,例如知识数据。此参数不应与参数 Filter 重叠。

示例:Knowledge.*

运行连接器

按照以下步骤启动连接器并开始将数据从 Salesforce 复制到 Snowflake:

  1. 右键点击画布中的空白区域,然后选择 Enable all Controller Services

  2. 右键点击连接器进程组,然后选择 Start

管理对象复制

启动连接器并完成对象复制后,您可以向复制中添加新对象或从复制中移除现有对象。

将新对象添加到复制

要将新对象添加到复制,请用新对象名称更新 Filter 参数(或 Special Objects Filter 参数,如果适用)。您无需停止连接器。新对象将在下一次计划执行时复制。

例如,如果当前 Filter 值为 Account, Opportunity 并且您想添加 Contact 对象,请将值更改为 Account, Opportunity, Contact

从复制中移除对象

从复制中移除对象需要停止连接器,并清理 Snowflake 中的连接器状态和目标表:

  1. 通过右键单击连接器进程组并选择 Stop,停止流中的所有处理器。

  2. 确保未在处理传输中的 FlowFiles。

  3. 右键点击画布并选择 Parameters,然后从 Filter 参数(或 Special Objects Filter 参数,如果适用)中移除对象名称。

  4. 右键点击画布并选择 Disable all controller services

  5. 转到 Controller services 并打开名为 Salesforce Bulk Jobs State 的控制器服务的状态。

  6. 选择已移除对象类型旁的垃圾桶图标,以删除其状态条目。

  7. 右键点击画布并选择 Enable all controller services,然后启动所有处理器以恢复连接器。

  8. 如果适用,请从 Snowflake 目标数据库中删除相应的表,以清理先前复制的数据。例如:

    DROP TABLE <database_name>.<schema_name>.<object_name>;
    
    Copy

后续步骤