SSIS中的公用表,不同文件和不同文件结构

时间:2016-04-18 10:39:55

标签: sql-server ssis

我有多个平面文件作为我的来源。每个文件都有一些共同的列。但其中一个还有一些额外的列。我需要将所有数据从平面文件移动到具有仅具有公共列的结构的表,并跳过其中一个文件中的额外列。结构示例如下:

文件1的结构:

id, name, age

文件2的结构:

id, name, age, address, country

文件3的结构:

id, name, age, address

表格结构:

id, name, age

我想在表格中仅填充文件之间的三个公共列。休息我需要忽略。如何使用SSIS实现这一目标?

3 个答案:

答案 0 :(得分:2)

您需要在不同的文件夹中分隔不同类型的文件(您可以在SSIS中使用文件系统任务匹配文件名等,或在PowerShell中)。每个文件夹中的文件必须具有相同的列数和名称/类型。然后为每个文件夹的每个循环创建并迭代以从所需列中获取数据并将它们加载到目标表中。您可能需要最后一步(执行sql)来删除目标表中的重复。

答案 1 :(得分:0)

易。设置3个DataFlow任务,每个任务连接到不同的文件。每个人写入同一个表(例如通过OLEDB目的地)。对于除File1(与表结构匹配)之外的所有内容,只需在OLEDB目标中映射额外的不需要的列(即地址,国家/地区)。这些列中的值将被丢弃,而不是进入表中。

答案 2 :(得分:0)

每个循环都需要一个循环遍历平面文件所在的文件夹。

只要你想要的列在每个文件中的位置相同,那么一切都应该是好的。

看看here