【问题标题】:SSIS Percentage sampling of 50% split isn't even50%拆分的SSIS百分比抽样甚至不是
【发布时间】:2020-02-24 16:07:59
【问题描述】:

我有一个存储过程作为通过 RESULTS SET 运行的数据源。

第二步是使用百分比抽样将收集到的数据按 50/50 进行拆分。一半往下一个输出,剩下的往下第二个输出。其他一些任务之后的最终结果是两个文件被上传到两个不同的目标。

源查询获取 11 行数据,用于相关天的活动,但百分比抽样将其拆分为 Trustpilot 输出的 10 行和 Feefo 输出的 1 行。

50%的概念怎么会不懂呢?我有什么遗漏吗?

【问题讨论】:

  • Microsoft 非常清楚地声明这不是此转换文档页面上的错误。 “除了指定的百分比,百分比采样转换使用一种算法来确定是否应将一行包含在样本输出中。这意味着样本输出中的行数可能无法准确反映指定的百分比。例如,为具有 25,000 行的输入数据集指定 10% 可能不会生成具有 2,500 行的样本;该样本可能有更多或更少的行。”

标签: sql-server ssis sql-server-2012 etl ssis-2012


【解决方案1】:

根据 Microsoft 在 documentation page for this task 上的说法,指定的百分比并不总是选择将哪些行发送到输出的唯一因素。

除指定百分比外,百分比抽样 转换使用一种算法来确定一行是否应该 包含在样本输出中。这意味着中的行数 样本输出可能无法准确反映指定的百分比。 例如,为输入数据集指定 10% 25,000 行可能无法生成 2,500 行的样本;样品可能 多或少几行。

如果您需要特定数量的行,您可以使用Row Sampling Transformation。在这种情况下,您需要获取数据集的行数,然后使用表达式将 Row Sampling Transformation 任务的行数属性设置为行数的一半。

【讨论】:

    猜你喜欢
    • 2011-03-19
    • 2019-08-07
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    相关资源
    最近更新 更多