在pentaho中使用“插入/更新”步骤时,数据加载速度很慢

时间:2014-01-07 10:46:04

标签: pentaho data-integration

使用pentaho 4.4.0中的“插入/更新”步骤时,数据加载速度很慢

我正在使用pentaho 4.4.0。在使用水壶中的“插入/更新”步骤时,与mysql相比,数据加载的速度太慢。此步骤将在插入之前扫描表中的所有记录。如果记录存在,它将进行更新。那么在进行“插入/更新”时应该如何优化性能。并且处理速度为4 r / s,所以我的记录总数将超过1万......这个过程需要2个半小时才能完成整个过程。

4 个答案:

答案 0 :(得分:4)

根据您的评论,您似乎希望Merge rows (diff)步骤后跟Synchronize after merge。查看Pentaho wiki,了解这些步骤的工作原理。

另一个产生重大影响的事情是,有多少行导致upsert与总行数相比。如果导致写入的行数超过大约40%,@ carexcer的最后评论可能是更好的方法。如果不是,请务必尝试Merge rows (diff)步骤。

4 - 每秒25行听起来很慢。确保您标记为键的字段已编入索引,无论您选择哪一步。

如果大多数行导致upsert,那么完全刷新可能会更好。如果是这种情况,请查看MySQL批量加载器。 Pentaho有批量和流量批量加载器,但我不知道它们有多好。

答案 1 :(得分:2)

尝试在字段交易大小(提交)上设置一个大值。

根据您要插入的行数,在该字段上设置更多或更少。

这在我的案例中提高了很多表现。

如果你将upsert,例如100.000行,那么

500将是一个小值,因为它必须被提交200次。

提交次数少,执行速度更快。

enter image description here

答案 2 :(得分:1)

useServerPrepStmts - false

useCursorFetch - true

useCompression - true

您可以尝试编辑Connection并将这些参数放在那里。 这将提高性能。

双击数据库连接 - >选项标签 - >添加以上参数。

答案 3 :(得分:0)

使用mysql时,所有其他选项均无法正常工作 我尝试过一些作弊

Insert into A(a,b) values (1,2);
Insert into A(a,b) values (2,2);
Insert into A(a,b) values (3,2);

更改为

Insert into A(a,b) values (1,2), (2,2), (3,2);

我不是完美的方式