使用pentaho数据集成加载事实表

时间:2013-09-18 17:52:39

标签: pentaho kettle data-integration

我使用pentaho DI将数据插入事实表。事情是我填充我的事实表的表包含10000个记录并经常更改。使用数据库查找和插入更新,我能够正确加载我的事实表一次。但是当新的记录被添加到我的源表(比如它变成15000)并且我再次将记录插入事实表时,这些15000个记录再次被添加到我的事实表中。我想要的是添加事实表中不存在的新5000条记录。请告诉我需要执行哪些转换才能实现此目的。

2 个答案:

答案 0 :(得分:2)

尝试进行upsertion而不是插入(如果该行存在则更新,如果不插入)

答案 1 :(得分:0)

您可以使用某些数据库功能。

在SQL Server 2008中,有一个 merge sql可以解决此类问题。

SQL Server 2008中的示例如下:

MERGE Production.UnitMeasure AS target USING (SELECT @UnitMeasureCode, @Name) AS source (UnitMeasureCode, Name) ON (target.UnitMeasureCode = source.UnitMeasureCode) WHEN MATCHED THEN UPDATE SET Name = source.Name WHEN NOT MATCHED THEN
INSERT (UnitMeasureCode, Name) VALUES (source.UnitMeasureCode, source.Name) OUTPUT deleted., $action, inserted. INTO #MyTempTable;