【问题标题】:how to handle middle of data failure case in ssis如何处理 ssis 中的数据失败案例
【发布时间】:2018-03-06 16:13:35
【问题描述】:

嗨,我对 ssis 有一个疑问 我想将源 excel 文件数据加载到 sql server 数据库表中。 源excel文件有数十亿的数据(海量数据)。 在加载时间halfoffrecords加载到目标表之后,由于某些数据格式不正确而失败。 在这个 sistuvation 中,将如何处理使用 ssis 将所有数据加载到目的地的包。

来源:excel(Emp信息数据) 目的地:表:emp 我尝试使用检查点配置在故障点重新运行.. 但它对处理数据行级别和加载重复数据没有用处。 我尝试了另一种截断目标表中的数据的方法。 之后我使用重定向行进行错误处理。但由于它的实现不好 截断目标表。 请告诉我在 ssis 包级别有多少种方法可以完成此任务(完全加载)。

【问题讨论】:

  • 使用查找转换,这样当你重新运行时,目的地不会插入重复项
  • 不使用查找转换任何其他解决方案。因为它唯一的初始加载不需要比较源数据和目标数据(如果我再次使用查找,由于比较数据将花费更多时间)。任何其他解决方案可以实现ssis中的这种情况
  • 我只能想到 SSIS 中的 look up 或者它必须在暂存数据库级别处理,如果您使用正确的列并且不更改缓存,您的查找将得到优化
  • 数据加载概念总是建议使用暂存表,如果源文件中的数据格式不正确,如何更正重新运行。这听起来不像是一个可行的解决方案,尽管启用了检查点,但您最终会在 SSIS 中遇到性能问题
  • 您可以捕获并重定向错误吗?甚至更好地根据规则转换格式错误的数据。一些可接受的转换通常需要修剪、空处理或其他基本修复。

标签: ssis ssis-2008


【解决方案1】:

将您的数据从 Excel 加载到临时表中,您在每次加载前截断该表。

将暂存表的所有列设为nvarchar(max) 类型,以便它们可以处理任何格式的传入字符数据。

然后运行一个存储过程,对数据进行重复数据删除、格式化并将数据传输到最终目标表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    相关资源
    最近更新 更多