我目前正在尝试创建一个将平面文件导入SQL数据库表的SSIS包。
大约有30个不同的平面文件,每个文件都有自己的格式文件,我必须制作一个包含所有相关数据的表格。 平面文件的第一行不包含列标题。 I.E.一个文件可以具有PostalAddress1和另一个PostalAddressLine1,并且这些文件在数据库中是2列,并且它们是无效的。 某些平面文件可能包含更多数据,在这种情况下,具有较少数据的文件将具有空值。
由于我对SSIS缺乏经验,我以为我会使用脚本来解析平面文件以获取行和列分隔符以及所有列名称。
然后我设置平面文件源(变量)并将其设置为只有一列,每个记录都是文本文件中的一行,然后使用脚本转换来解析每一行并将其设置为相关列。 I.E.值5是FirstName
我将其设置为Row.FirstName = Value[4];
在处理整个文件之后,可以运行一个sql任务,然后可以将通用登台表中的所有数据推送到另一个表中,该表只有PostalAddress字段而不是3表示适用于提供的每个格式文件。 / p>
其中一些文件的大小可达2.5GB。
我的问题是:
这样做是否正确?
是否有更快/更好/更简单的方法呢?
答案 0 :(得分:0)
这是BiML的一个很好的候选者,它可以根据元数据动态构建包。
来自BiMLScript介绍:
更好的是,自动化逻辑可以直接嵌入到Biml中 使用BimlScript代码块的代码。这些C#或VB代码片段 使您能够访问外部元数据以自动构建大型元数据 Biml代码的数量。例如,您可以自动创建 暂存环境或根据列元数据应用SCD模式。