gpt4 book ai didi

mysql - Pentaho 表输入到表批量输出

转载 作者:行者123 更新时间:2023-11-29 01:19:52 25 4
gpt4 key购买 nike

我在 MySQL 中的输入表有 2000 万条记录,而在 Oracle 中的目标表是空的。我需要将整个表从 MySQL 加载到 Oracle 中。我只是使用表输入和表输出步骤。

PentahoProcessing

我的意图是在读取时不要长时间锁定源表。我试图达到的负载(记录数)有问题吗?我可以在表输出中看到 Use batch update for inserts 选项。我在表输入中看不到类似的东西。有没有办法在 Pentaho 中执行批处理?

最佳答案

别担心,2000 万条记录对于 PDI 来说是一个小数字,如果它是开放输入的,您不会锁定表。这就是为什么 Bulk load 是针对输出表而不是输入表的原因。

然而,一个常见的初学者陷阱是输出表上的 Truncate table 选项。如果您运行(不经意地或为了并行处理)两次输出步骤,每一个都会锁定另一个。永远。

要加快速度:您可以在输入时使用惰性转换 复选框,以便数据在使用之前保持字节格式。但我不确定您是否在简单的输入/输出表上赢得了一些东西。如果在写入输出文件时 Dates 或 Blob 出现问题,错误消息将非常含糊。

您还可以通过增加提交大小(在 Oracle 中最差的几次试验)和增加 行集中的行数 来提高输出速度,这将增加行数由表输入读取。为此,请右键单击任意位置,然后单击 Properties/Miscelanous

我真正建议做的事情是增加 JVM 内存大小。使用编辑器(记事本或更好的工具)编辑名为 spoon.bat 的文件。您会在第 94-96 行附近找到一行,其中包含类似“-Xmx256K”的内容。将其更改为“-Xmx4096M”(其中 4096 是您机器 RAM 大小的一半)。

执行“批处理”有很多意义。其中之一是 使转换数据库事务化。您可以使用上面提到的 Number of row in rowset 正下方的复选框(在 PDI 最新版本中错误地拼写为 Make the transformation database)。选中该框后,如果出现问题,数据库的状态将回滚,就好像从未执行过转换一样。但我不建议您这样做。

关于mysql - Pentaho 表输入到表批量输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45328274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com