【问题标题】:SSIS read text file to temp table before reaching ADO NET Destination?SSIS 在到达 ADO NET 目标之前将文本文件读取到临时表?
【发布时间】:2015-08-24 21:07:38
【问题描述】:

我有一个上传到 tsql 表的文本文件。这很简单,但是由于一些不一致,我需要将此文件上传到#tempTable@tableVariable,在那里清理它,然后将其上传到物理表。

所以本质上,我有一个Flat File Source,它读取有不一致的txt 文件,并将其上传到ADO NET Destination 的表中。如果目标表中的所有列都是 varchar,那么我可以将其保存在物理表中,并运行一些 tsql 脚本进行清理。但我不想那样做。

我还可以在创建/删除临时表之前和之后运行 tsql 脚本,但如果有办法使用 #temp 或 @table 来实现,那就太好了。

【问题讨论】:

  • 为什么不想将它持久化到 varchar 表中?这是很常见的做法。

标签: ssis bids


【解决方案1】:

如果这是您多次执行的操作,标准的 ETL 做法是拥有一个持久的全 VARCHAR 临时表,作为第一步加载文件。

然后检查数据是否适合添加到生产表中。

执行以下操作:

  1. 确保不良数据远离生产表,以免造成破坏。
  2. 允许 ETL 过程标准化和可重复。您不再需要记住他们上次是如何破坏数据的,您只需将其添加到从暂存表提升到生产表的逻辑中就可以了。
  3. 允许轻松将流程转移给其他人,并有机会进行适当的源代码控制。

我想不出使用临时表/表变量有什么好处,除非您无法创建物理表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多