我经常要将Excel或csv文件中的数据(杂乱)导入Microsoft SQL Server;如果有的话,导入工具很少猜测正确的数据类型。即使不需要清理数据,在第一行中通常也有太多的NULL用于标识数据类型。由于我经常收到源文件的定期更新,因此有一种方法可以一次性定义列映射,然后能够在所有后续文件上使用此映射。
E.g。我收到文件'sales_New_York_January'。我手动识别每列的数据类型;我可以在某处保存列/数据类型关联(脚本,单独的文件),这样,当我必须导入具有相同结构的另一个文件(sales_Los_Angeles_February)时,我不必再次手动分配数据类型吗?
我正在运行Microsoft SQL Server 2014,并且还可以访问SQL Server Integration Services和Pentaho。我倾向于使用某种基于脚本的解决方案,而不必在SSIS中进行数百次点击。
谢谢!
答案 0 :(得分:0)
当我必须导入具有相同结构的另一个文件(sales_Los_Angeles_February)时,我不必再次手动分配数据类型吗?
这几乎听起来像是为每个文件创建一个单独的包。如果这是正在发生的事情,并且它们具有相同的物理结构,请考虑将文件名作为参数或配置文件提供。
您可以在SQL Server实例中创建映射表,并在SSIS中使用相当标准的映射/查找操作吗?我们经常这样做,以至于我们正在考虑为特定案例编写自定义组件。您可以保存平面文件或Excel文件,并使用适当的连接器为相同目的加载它们。
我们有一个样板脚本组件,用于清点整个软件包并构建列字典,以便通过在几个客户端的特定软件包中使用的组件来识别数据类型和其他属性,但我从未使用过输出来驱动其他组件