如何在 SSIS 中使用不同的键合并/联合表?

Posted

技术标签:

【中文标题】如何在 SSIS 中使用不同的键合并/联合表?【英文标题】:How to merge / union table in SSIS with different key? 【发布时间】:2019-10-28 03:28:43 【问题描述】:

我已经学习 ssis 1 周了,仍然了解所有可用的工具,现在正在尝试做一些练习。 如果我有 3 个具有不同键的表,但我想加入/合并/联合它们怎么做? 例如:

FirstTable

+----+------+----------+-----+--+ | id | code | Name | qty | | +----+------+----------+-----+--+ | 1 | A001 | Computer | 2 | | | 2 | X001 | Disc | 6 | | | 3 | Z002 | Mouse | 4 | | +----+------+----------+-----+--+

第二个表

+----+------+----------+-----+--+
| id | code |   Name   | qty |  |
+----+------+----------+-----+--+
|  7 | P001 | Computer |   2 |  |
|  9 | O001 | Disc     |   6 |  |
|  4 | S002 | Mouse    |   4 |  |
+----+------+----------+-----+--+

三桌

+----+------+----------+-----+--+
| id | code |   Name   | qty |  |
+----+------+----------+-----+--+
|  5 | K001 | Computer |   2 |  |
|  6 | J001 | Disc     |   6 |  |
|  8 | F002 | Mouse    |   4 |  |
+----+------+----------+-----+--+

所以在这种情况下,它们实际上都是相同的数据,但可能第一张表是 2010 年制作的,第二张表是 2011 年制作的,第三张表是 2014 年制作的。 他们只是在他们的项目代码的第一个字符上有所不同,我想加入/合并/联合这三个。仍然不知道该怎么做。 唯一的想法是也许我使用了一些模糊查找?

【问题讨论】:

UNION 将帮助您处理此类数据。 非常感谢您的回复!所以只是使用 UNION ?数据会被“双插入”吗?因为他们有不同的 id 和 code?​​span> 如果数据基于 Id 和 ItemCode 是唯一的,那么您无需担心数据冗余!所以在 SSIS 中有一个选项可以在 DATA FLOW TASK 中使用Merge Join 然后使用FULL-OUTER 这将创建与 UNION 相同的数据。它仍然可以根据您的数据和确切要求有多种解决方案..请参考:resultdata.com/merging-options-with-ssis 好的,谢谢,我真的很抱歉给大家带来了麻烦。但是非常感谢。我是新手,因为这是我第一次使用 ssis。 没有问题。如果您发现任何其他困难,请发表评论。 【参考方案1】:

作为一种更具可扩展性的解决方案(假设您可能有超过 3 个需要联合的表),您可以将 foreach(基于表名)与一个运行的数据流(源自每个表的变量)一起使用到同一个目的地。

当您拥有包含需要加载到同一个表中的相同列的类似文件时,这是一种类似的方法。

【讨论】:

以上是关于如何在 SSIS 中使用不同的键合并/联合表?的主要内容,如果未能解决你的问题,请参考以下文章

通过SSIS的“查找”组件进行不同数据源之间数据的合并操作

如何在 HIVE 中合并具有不同模式的表?

在 PowerShell 中合并哈希表:如何?

EXCEL两个表如何通过关联合并

如何在 SSIS 或 SQL 中使用不同的数据集向不同的收件人发送电子邮件?

如何在ssis中将多个文件加载到多个目标表中