使用 pentaho 数据集成加载事实表 - 减少 ktr 的运行时间

Posted

技术标签:

【中文标题】使用 pentaho 数据集成加载事实表 - 减少 ktr 的运行时间【英文标题】:Loading fact table using pentaho data integation - Reduce Runtime of ktr 【发布时间】:2013-11-26 07:48:30 【问题描述】:

我正在使用 pentaho DI 将数据插入事实表。但问题是我从中填充的表格包含 10000 条记录并且每天都在增加。

在我的填充表中包含 10,000 条记录并添加了新的 200 条记录,然后我需要运行 ktr,如果我正在运行 ktr 文件,那么它会再次截断事实表中的所有 10,000 条数据并开始插入新的 10,200 条记录。

为避免这种情况,我取消选中表输出步骤中的截断选项,并将一个键设置为事实表中的唯一键,并选中忽略输入错误选项。现在它工作正常,只插入 200 条记录,但执行时间相同。

我也在 ktr 中尝试了流查找步骤,但我的执行时间没有变化。

请谁能帮我解决这个问题。

提前致谢。

【问题讨论】:

我们讨论了多少时间? 10K 行听起来并不多。您是否尝试过Merge Rows Diff 步骤? 我有 2,50,000 条记录,表中有 24 个字段,完成任务最多需要 8 小时。以前我尝试过建立索引并减少了一些时间,但还没有尝试过 Merge Rows Diff Step。 每秒 8 行对我来说听起来慢得离谱。你对这些行做了什么样的处理?或者他们只是疯狂地宽?同时,如果您需要捕获所有插入、更新和删除,我会查看Combination Lookup Update 步骤和Merge Rows Diff 步骤。看看这些是否适合你。 Brian.D.Myers 非常感谢您,Merge Rows Step 确实帮助我解决了这个问题。在我的情况下,不仅是插入,包括我使用了 8 个查找过程。现在,我在查找步骤之前包含了合并行步骤和 switch case 步骤,令人惊讶的是,工作在 6 分钟内完成。 看来这就是答案... 【参考方案1】:

如果您需要捕获所有插入、更新和删除,Merge Rows Diff 步骤后跟 Synchronize after Merge 步骤将执行此操作,并且通常会很快完成。

【讨论】:

以上是关于使用 pentaho 数据集成加载事实表 - 减少 ktr 的运行时间的主要内容,如果未能解决你的问题,请参考以下文章

如何用 Pentaho Kettle 填充我的事实表

如何检查 cassandra 与 pentaho 数据集成器的连接

Pentaho Kettle 是不是创建维度表和事实表

Pentaho 数据集成转换,从 csv 文件加载字段(Java API)

使用 pentaho 数据集成的 SQL 标识列插入

Pentaho 数据集成 Google BigQuery Loader 异常