多列的SSIS合并转换排序

时间:2017-11-23 04:29:27

标签: sql-server sorting merge ssis etl

我已经阅读了Merge Transformation上的各种文档,他们都说必须对数据进行排序,但是没有人讨论哪些列以及如何确定要排序的列。例如,如果我的合并连接条件在多个列上,那么是否需要对它们进行排序?

我的生产数据有3亿多行并且合并有效但我无法验证是否准确确定是否需要对更多列进行排序。我尝试创建测试/虚拟数据但输出是预期的,如果我做一种或多种,​​所以我不确定我应该做什么。

1 个答案:

答案 0 :(得分:2)

要进行合并连接,必须对将用于连接两个表的所有列进行排序,并且排序必须采用相同的顺序。

示例:如果您有两个表:

  • 表1(姓名,年龄,地址)
  • 表2(FullName,Age,Contact)

您需要加入Name = Fullname AND Age = Age,因此您必须对两个表中的两列进行排序,并且每两个相关列必须具有相同的顺序:

  • 表1:名称(订单1),年龄(订单2)(类似于ORDER BY Name,Age
  • 表2:全名(订单1),年龄(订单2)(类似于ORDER BY FullName,Age

@PlaidDK在评论中提供了非常有用的link,您可以在其中获得更多详细信息

方注意:您可以使用SORT组件对列进行排序,或者如果使用OLEDB命令作为源,则可以在命令中使用ORDER BY子句并将列标记为已排序(在高级编辑器