提问人:ahmed 提问时间:8/23/2023 最后编辑:James Zahmed 更新时间:9/6/2023 访问量:91
如何在pentaho(勺子)中实现增量负载
How to implement increment load in pentaho (spoon)
问:
我想在 pentaho 中实现增量加载。我的 OLTP 中有两个表,我想应用左连接它们并将它们作为 OLAP 中的单个表删除。OlTP 和 OLAP 在 mysql 中处于不同的数据库连接中,这意味着 pentaho 中有两个不同的数据库连接。
我想在pentaho中实现这个etl,并且还包括增量加载用例,一旦所有数据都转储到olap中,那么在将来的作业中,它只会插入在olap中找到的新条目。 oltp 中的第一个表是具有 id 字段、orderdate 和 amount 的订单。oltp 中的第二个表是 orderdet,它有 id、orderid、prodname 字段,其中 orderid 是第一个表的外键。需要将它们作为单个表加入并放入 olap。
如何在 pentaho 中完成这项任务?
对增量加载部分感到困惑,例如如何为此设计 etl?
答:
0赞
Bert-Jan Stroop
9/6/2023
#1
要进行增量加载,您必须了解 Pentaho 在读取数据方面非常快,但在存储数据方面(相对)慢。因此,对于增量加载,功能思路是从系统 A(源)和系统 B(目标)加载数据,并确定应对每条记录采取什么操作。所以很多东西需要读,但只需要写一点点。
我们可以做
- 什么都没有(来自系统 A 的记录在系统 B 中已经“按原样”)
- 插入(系统 B 中缺少来自系统 A 的记录)
- 更新(来自系统 A 的记录已经在系统 B 中,但有一些不同的数据)
- delete(系统 B 中的记录在系统 A 中没有相应的记录)
pentaho 中有一些步骤可以很容易地设置它。但总的来说,大多数人的开始都是一样的。
- 为系统 A 和系统 B 设置表输入步骤。
- 将数据馈送到“合并行 (diff)”步骤中。这将比较 A 和 B 的集合,并向其添加一个标志字段,告诉您必须采取四个操作中的哪一个。
- 如果您想完全控制以优化性能,或者让系统通过单个“合并后同步”步骤处理基于标志字段的行,则通过单独的步骤处理行
更多信息在这里
评论