并行化控制
Control of parallelization
我正在 运行 在行集上设置自定义处理器,似乎 运行 不能并行。底层的 ~1GB 文本文件首先被读入一个 table 中,该文件通过循环法进行分区。 'Extract' 运行 在 200 个顶点上,但随后(在 'Aggregate' 节点下)处理 [执行各种复杂计算] 仅发生在 2 个顶点上,即使并行度参数远高于此.是否需要使用特殊提示来指示编译器使用更多顶点?是否有函数或 属性 需要被覆盖以在此阶段设置并行度?
抱歉回复晚了。但现在是假期:).
很高兴看到提取阶段已完全横向扩展。
没有看到脚本或生成的计划,很难说为什么在某些地方只看到 2 个顶点。造成这种情况的原因有几个:
- 您没有足够的数据来扩展到更多。
- 您的聚合需要更多数据,因此计划的并行度较低。
- 你的操作本质上是不那么并行的。
- 优化器的数据基数估计已关闭,选择的并行度不足。我们有一些暗示的能力,但我宁愿先看工作。
请注意,自定义处理器通常会阻止优化器在脚本中推进优化(例如,使用 READ ONLY 选项会有所帮助)并且可能会影响基数估计。
如果您将脚本、工作图表和 link 发给我,我和团队将在假期结束后的下周进行调查。
我正在 运行 在行集上设置自定义处理器,似乎 运行 不能并行。底层的 ~1GB 文本文件首先被读入一个 table 中,该文件通过循环法进行分区。 'Extract' 运行 在 200 个顶点上,但随后(在 'Aggregate' 节点下)处理 [执行各种复杂计算] 仅发生在 2 个顶点上,即使并行度参数远高于此.是否需要使用特殊提示来指示编译器使用更多顶点?是否有函数或 属性 需要被覆盖以在此阶段设置并行度?
抱歉回复晚了。但现在是假期:).
很高兴看到提取阶段已完全横向扩展。
没有看到脚本或生成的计划,很难说为什么在某些地方只看到 2 个顶点。造成这种情况的原因有几个:
- 您没有足够的数据来扩展到更多。
- 您的聚合需要更多数据,因此计划的并行度较低。
- 你的操作本质上是不那么并行的。
- 优化器的数据基数估计已关闭,选择的并行度不足。我们有一些暗示的能力,但我宁愿先看工作。
请注意,自定义处理器通常会阻止优化器在脚本中推进优化(例如,使用 READ ONLY 选项会有所帮助)并且可能会影响基数估计。
如果您将脚本、工作图表和 link 发给我,我和团队将在假期结束后的下周进行调查。