使用 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 的运行时间的主要内容,如果未能解决你的问题,请参考以下文章
如何检查 cassandra 与 pentaho 数据集成器的连接