并行化控制

Control of parallelization

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

抱歉回复晚了。但现在是假期:).

很高兴看到提取阶段已完全横向扩展。

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

  1. 您没有足够的数据来扩展到更多。
  2. 您的聚合需要更多数据,因此计划的并行度较低。
  3. 你的操作本质上是不那么并行的。
  4. 优化器的数据基数估计已关闭,选择的并行度不足。我们有一些暗示的能力,但我宁愿先看工作。

请注意,自定义处理器通常会阻止优化器在脚本中推进优化(例如,使用 READ ONLY 选项会有所帮助)并且可能会影响基数估计。

如果您将脚本、工作图表和 link 发给我,我和团队将在假期结束后的下周进行调查。