如何在 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 中使用不同的键合并/联合表?的主要内容,如果未能解决你的问题,请参考以下文章