我想了解pentaho环境中的以下差异
1)什么是行集。就像从输入步骤收集记录或者确切含义是什么? 我在转换设置部分看到行集中没有行的默认值 10000.什么是最佳值。例如,如果我的输入步骤提供了100行,那么这里应该是什么值,或者输入数据集 表现将超过10000。
2)管理线程优先级选项:这对于上述场景如何工作。
答案 0 :(得分:2)
首先,在设计转换时要记住的最重要的事情是(大多数情况下)所有步骤都将并行运行。那么在那种情况下你如何控制流动的行以确保它们在最短的时间内被处理?你指出的两个选项是解决这个问题的关键。
行集大小 每一步都有自己的行集。这就像一个标志,上面写着“ Max。允许里面的人是10'000 ”,而不是人有行。因此,当一个步骤中有最大允许行时,它会锁定门,不要让行进入,直到某一行在另一侧出来。
这是主要概念,但您可能会发现步骤以不同的方式工作,如阻塞步骤,排序行,内存组等等。由于它们的功能,它们必须工作不同(排序行需要读取所有输入才能生成确定它的订购正确。)
管理线程优先级 请记住,所有pentaho变形步骤都是并行运行的?并且行集可能会导致一个步骤锁定它的门,让任何人进入,直到它让某人出来?好吧,如果所有步骤都具有相同的优先级,那么可能导致转换一直锁定并且运行时间太长,因此这就是线程优先级所在的位置。如果启用了该标志,您将让pentaho说出一个特定步骤应该使用更多的CPU和/或内存来快速完成它的工作并让其他行进入。
好的,说的是,最好的行集是什么? 确实是一个棘手的问题。它取决于您将处理多少行以及您如何设计转换(某些设计可能比其他设计更多地锁定行)。通常我会测试很多配置,以确保我以最佳性能运行我的转换。
在某些情况下,我使用300'000行,5'000'000行甚至500行。有些人(以及official wiki)不鼓励使用高行集:
在很多情况下,较小的行集大小实际上提高了性能,因为它强制行遍历(并行执行)转换的所有步骤。
但最后,你应该进行测试,直到找到一个好的设置。 =)
我希望这个帮助