【问题标题】:SSIS Aggregate transformationSSIS 聚合转换
【发布时间】:2017-07-19 22:47:32
【问题描述】:

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

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

我遇到的问题是聚合来自多播。我尝试从 MULTICAST 然后 AGGREGATE 进行排序,但我丢失了所有其他列,我需要它们。

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

MULTICAST 也被路由到一个 CONDITIONAL SPLIT 中,其中一个拆分将具有一个 AGGREGATE,该 AGGREGATE 对一个字段进行分组并计算该字段并将进入上述 MERGE。

SORT 1 按客户 ID 排序,SORT 2 按客户 ID_SYSTEM 排序。

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

基本上,我试图通过执行 AGGREGATE 来完成的是,如果来自第一个 AGGREGATE 的 COUNTS 等于来自第二个 AGGREGATE 的 COUNTS,那么这些行将沿着与 COUNTS 不匹配的那些行不同的路径进入。

关于在不花费很长时间处理包的情况下执行此操作的最佳方法的任何建议,目前包无法通过 SORTS。

【问题讨论】:

    标签: ssis


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,您是否知道 SSIS 函数可以对分组字段进行计数,如果两个字段的计数不相等,则所有这些行将被路由到单独的目的地。?
    • 不,SSIS 中没有类似的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 2022-01-22
    相关资源
    最近更新 更多