在SSIS中导入具有多种格式文件的平面文件



我目前正在尝试创建一个SSIS包,该包将平面文件导入SQL数据库表。

大约有30个不同的平面文件,每个文件都有自己的格式文件,我必须制作一个包含所有相关数据的表。平面文件的第一行不包含列标题。例如,一个文件可以有PostalAddress1和另一个PostalAddressLine1,这两个文件在数据库中是2列,并且可以为null。一些平面文件可能包含更多的数据,在这种情况下,那些包含较少数据的文件将具有null值。

由于我对SSIS缺乏经验,我想我应该使用脚本来解析平面文件,以获取行和列分隔符以及所有列名。然后,我会设置平面文件源(变量),并将其设置为只有一列,每条记录都是文本文件中的一行,然后使用脚本转换来解析每一行,并将它设置为相关列。I.E.值5为FirstName我会将其设置为Row.FirstName = Value[4];

在处理完整个文件后,可以运行一个sql任务,该任务可以将通用暂存表中的所有数据推送到另一个表中,该表表示只有PostalAddress字段,而不是3,以适应提供的每个格式文件。

其中一些文件的大小可能高达2.5gb。

我的问题是:

这样做正确吗
有没有更快/更好/更简单的方法?

这是BiML的一个很好的候选者,它基于元数据动态构建包。

来自BiMLScript简介:

更好的是,自动化逻辑可以直接嵌入到Biml中使用BimlScript代码块的代码。这些C#或VB代码片段使您能够访问外部元数据以自动生成大型Biml代码的数量。例如,您可以自动创建暂存环境或应用基于列元数据的SCD模式。

最新更新