SSIS聚合转换

时间:2017-07-19 00:31:58

标签: ssis

我正在开发一个包含许多转换的非常大的SSIS包。

我需要做一个AGGREGATE,它对字段进行分组并对字段进行计数,

我遇到的问题是AGGREGATE来自MULTICAST。我尝试从MULTICAST做一个SORT然后一个AGGREGATE,但我丢失了所有其他列,我需要它们。

我尝试添加来自MULTICAST的另一个SORT,以便我可以拥有所有列并将所有转换转换为MERGE,但是包裹会挂在来自MULTICAST的SORT上。

MULTICAST也被路由到一个CONDITIONAL SPLIT,其中一个分裂将有一个AGGREGATE,它对一个字段进行分组并对该字段进行计数,并将进入上面的MERGE。

img

SORT 1按CUSTOMER ID排序,SORT 2按CUSTOMER ID_SYSTEM排序。

Aggregate 1分组CUSTOMER_ID并计算不同的CUSTOMER_ID和Aggregate 2组CUSTOMER ID_SYSTEM并计算不同的CUSTOMER_ID SYSTEM。

基本上我通过AGGREGATE尝试完成的是,如果来自第一个AGGREGATE的COUNTS等于来自第二个AGGREGATE的COUNTS,则那些行将沿着与COUNTS不匹配的那些行分开的路径。

如果没有包花费很长时间来处理这个包的最佳方法的任何建议,现在包没有通过SORTS。

1 个答案:

答案 0 :(得分:0)

处理此问题的最快方法是将其发送到目标表,并在多播点处覆盖索引,然后在存储过程中执行聚合和比较逻辑。然后,如果需要更多数据流处理,请以该表作为源启动新数据流。

SSIS数据流中的排序和聚合总是很慢,不建议用于大量行。你无能为力,但要避免它。