控制并行化

时间:2015-12-24 23:15:56

标签: azure-data-lake u-sql

我在行集上运行自定义处理器,似乎并行运行。底层的~1GB文本文件首先被读入通过循环分区的表中。 '提取物'在200个顶点上运行但是然后(在聚合'节点下)处理[进行各种复杂计算]仅在2个顶点上发生,即使并行性参数远高于此。是否需要使用特殊提示来指示编译器使用更多顶点?是否有一个函数或属性需要被覆盖以在此阶段设置并行性?

1 个答案:

答案 0 :(得分:1)

很抱歉迟到的回复。但这是休假时间:)。

很高兴看到萃取相完全按比例缩小。

如果没有看到脚本或生成的计划,有点难以说明为什么在某些地方只能看到2个顶点。有几个原因可能是这种情况:

  1. 您没有足够的数据可以扩展到更多。
  2. 您的聚合需要更多数据,因此计划的并行性较低。
  3. 你的操作本质上不太平行。
  4. 优化程序的数据基数估算已关闭,并且选择的并行度不够。我们有一些暗示的能力,但我宁愿第一次看到这份工作。
  5. 请注意,自定义处理器通常会阻止优化器在脚本中推送优化(使用READ ONLY选项,例如帮助)并且可以抛弃基数估计。

    如果您向我发送脚本,工作图以及Microsoft的mrys工作链接,我和团队将在假期结束后的下周对其进行调查。