为 Salesforce 动态决定 SSIS 连接器中的列

Posted

技术标签:

【中文标题】为 Salesforce 动态决定 SSIS 连接器中的列【英文标题】:Dynamically decide columns in SSIS connectors for salesforce 【发布时间】:2018-06-19 09:16:41 【问题描述】:

我想将数据从 salesforce 迁移到 SQL Server,并且我正在为 salesforce 使用 SSIS 连接器。我正在创建单个 SSIS 包,它为所有对象获取数据并插入 SQL 服务器。我尝试将以下连接器用于 salesforce。

连接器 1:Kingswaysoft https://www.kingswaysoft.com/

连接器 2:CData https://www.cdata.com/kb/articles/ado-ssistask-sf.rst

连接器 3:SSIS PowerPack - https://zappysys.com/onlinehelp/ssis-powerpack/index.htm https://zappysys.com/products/ssis-powerpack/ssis-salesforce-source-connector/

在所有连接器中,我无法使用 SSIS 变量在 SOQL 查询中动态提供不同的列(salesforce 字段)。

【问题讨论】:

SSIS 是为静态元数据 ETL 构建的。如果您想为所有对象(具有动态对象和 SQL 表)提供一种解决方案,您可能需要在 C# 或 VB 中实现使用 Salesforce 的 BulkApi 的自定义流程。 能否请您提供参考链接。我是 C# 初学者。 【参考方案1】:

我同意 CMET 的观点,即 SSIS 用于静态 ETL,您可以使用 C# 脚本任务来处理动态元数据。

作为替代方案,您可以尝试条件分支并根据表达式运行两个不同的任务。阅读Add expressions to precedence constraints。

不确定我们在这里讨论了多少动态列,但为了讨论,我们需要根据源列在 salesforce 目标中填写 2 个不同的列,然后有 2 个分支。

【讨论】:

以上是关于为 Salesforce 动态决定 SSIS 连接器中的列的主要内容,如果未能解决你的问题,请参考以下文章

将动态表传递给 SSIS 中的 ADO.NET 目标

SSIS如何从配置文件动态设置连接字符串

SSIS动态删除分区

SSIS动态excel阅读

SSIS:动态查找查询

动态 SSIS 包将 N 个表从 Oracle 加载到 SQL