【发布时间】:2018-03-06 16:13:35
【问题描述】:
嗨,我对 ssis 有一个疑问 我想将源 excel 文件数据加载到 sql server 数据库表中。 源excel文件有数十亿的数据(海量数据)。 在加载时间halfoffrecords加载到目标表之后,由于某些数据格式不正确而失败。 在这个 sistuvation 中,将如何处理使用 ssis 将所有数据加载到目的地的包。
来源:excel(Emp信息数据) 目的地:表:emp 我尝试使用检查点配置在故障点重新运行.. 但它对处理数据行级别和加载重复数据没有用处。 我尝试了另一种截断目标表中的数据的方法。 之后我使用重定向行进行错误处理。但由于它的实现不好 截断目标表。 请告诉我在 ssis 包级别有多少种方法可以完成此任务(完全加载)。
【问题讨论】:
-
使用查找转换,这样当你重新运行时,目的地不会插入重复项
-
不使用查找转换任何其他解决方案。因为它唯一的初始加载不需要比较源数据和目标数据(如果我再次使用查找,由于比较数据将花费更多时间)。任何其他解决方案可以实现ssis中的这种情况
-
我只能想到 SSIS 中的
look up或者它必须在暂存数据库级别处理,如果您使用正确的列并且不更改缓存,您的查找将得到优化 -
数据加载概念总是建议使用暂存表,如果源文件中的数据格式不正确,如何更正重新运行。这听起来不像是一个可行的解决方案,尽管启用了检查点,但您最终会在 SSIS 中遇到性能问题
-
您可以捕获并重定向错误吗?甚至更好地根据规则转换格式错误的数据。一些可接受的转换通常需要修剪、空处理或其他基本修复。