Pentaho 变换设置

问题描述 投票:0回答:2

我想了解pentaho环境中的以下差异

1)什么是行集。就像输入步骤中记录的收集一样,或者确切的含义是什么? 我在转换设置部分看到默认为的行集中的行数 10000。最佳值是多少。例如,如果我的输入步骤提供 100 行,那么此处的值应该是多少,或者如果输入数据集 大于10000 性能如何。

2)管理线程优先级选项:对于上述场景,它是如何工作的。

pentaho etl
2个回答
2
投票

你好吗?我会尽力提供一些解释,但也许以后有人可以改进它们。

首先,设计转换时要记住的最重要的事情是(大多数时候)所有步骤都将并行运行。那么在这种情况下,如何控制流动的行以确保它们在最短的时间内得到处理?您指出的两个相同选项是解决该问题的关键。

行集大小 每个步骤都有自己的行集。这就像一个标牌,上面写着“最多允许入内人数为 10'000”,但不是人,而是排。因此,当一个步骤内有最大允许的行数时,它会锁上门,并且不允许行进入,直到另一侧有一些行出来。

这是主要概念,但您可能会发现步骤以不同的方式工作,例如阻塞步骤、排序行、内存分组依据等。它们必须以不同的方式工作,因为它们的功能(排序行需要读取所有输入以确保它是订购正确)。

管理线程优先级 还记得所有 pentaho 转换步骤都是并行运行的吗?并且行集可能会导致一个步骤锁上门并且不让任何人进入,直到它把某人救出来?好吧,如果所有步骤都具有相同的优先级,则可能会导致转换始终锁定并运行太长时间,因此这就是线程优先级的用武之地。如果启用了该标志,您将让 pentaho 说特定步骤应该使用更多的 CPU 和/或内存来快速完成其工作并让其他行进来。


好吧,话虽如此,最好使用的行集是什么? 确实是一个棘手的问题。这取决于您将处理多少行以及您如何设计转换(某些设计可能会比其他设计锁定更多行)。通常我会测试大量配置,以确保我以尽可能最佳的性能运行转换。

在某些情况下,我使用 300'000 行、5'000'000 行甚至 500 行。有些人(以及官方维基)不鼓励使用高行组:

在很多情况下,较小的行集大小实际上可以提高性能,因为它强制行执行(并行执行)转换的所有步骤。

但最后,您应该进行测试,直到找到一个好的设置。 =)

我希望这有帮助


0
投票

谢谢您,https://stackoverflow.com/users/1914542/mrmauricioleite,非常感谢您为我已经奋斗了几周的 Pentaho 问题提供了解决方案!我在这里也找到了一个重要提示:https://community.hitachivantara.com/communities/community-home/digestviewer/view-question?ContributedContentKey=43c9cc55-7565-4965-b68d-c6c2f69fa97e&CommunityKey=e0eaa1d8-5ecc-4721- a6a7-75d4e890ee0d&tab=digestviewer

我的主要问题是通过 pan.sh 运行 ktr 文件导致 shell 冻结数据,并且我的 pdi.log 中根本没有收到任何错误消息。它会在完成“选择值”步骤后停止。我怀疑下一步(“合并行(差异)”)是问题所在,但我无法弄清楚问题是什么,也不知道如何解决它。

要更具体地说明解决方案:右键单击 Spoon GUI 进行转换(ktr 文件),选择“属性”,单击“杂项”选项卡,然后增加第一个字段中的数字,该字段标记为“行集中的行数” “从 10,000 到更大的数字。我每天处理大约 33,000 条记录,因此我使用了 50,000 条记录来解决我的“隐形挂起”问题。

© www.soinside.com 2019 - 2024. All rights reserved.