有哪些指导原则,或者我们在哪里可以找到设计系统以获得最佳并行度的指南。据我所知,数据在各个节点之间被拆分并进行了优化。
我在文件中拥有的数据目前有多个客户,网站,产品和用户。我需要按客户,站点,产品进行聚合,这意味着可以在单个节点中轻松计算该数据的子集,并在处理结束时将其返回到单个节点进行输出。
但是我没有在工作图中看到这种并行度。它显示的是MDOP,但不是一种看似最佳的方式。我有4个不同的计算,这些计算是在客户,网站,产品上独立完成的。它与4个计算并行,但在整个数据集上进行。实际上,它应该能够将它展开,其中10个节点分别获得1个客户,然后每个节点可以将其计算扇形化为4个以上的节点。 (注意这里的数字只是例如,数据的规模要大得多)。
如何优化文件布局或U-SQL逻辑以鼓励更多MDOP?
答案 0 :(得分:1)
您的数据是来自非结构化文件还是U-SQL表?您处理了多少数据(在非分区文件中需要超过250MB才能获得并行性)。
如果数据来自文件,您可以对文件进行分区,并使用文件集和ROWCOUNT提示来获得更好的并行性。
如果数据存储在U-SQL表中,则可以使用表分区和列聚类来影响并行化。
另外,您在什么级别看并行化?请注意,作业图将显示超级顶点(SV),它只显示执行相同作业的顶点组。内部的每个顶点(如果有足够的数据)将在一片数据上并行执行。并且 - 如果可能的话 - 将以最小的改组传递给其他顶点。