使用pentaho数据积分加载事实表

使用pentaho数据积分加载事实表,pentaho,kettle,data-integration,Pentaho,Kettle,Data Integration,我使用pentaho DI将数据插入事实表。事实是,我正在填充的事实表包含10000条记录,并且经常更改。使用数据库查找和插入更新,我能够正确加载事实表一次。但当新记录被添加到我的资源表中时(假设它变成15000条),我再次将记录插入事实表,那么这15000条记录将再次添加到我的事实表中。我想要的是添加事实表中不存在的新5000条记录。请建议我需要执行哪些转换来实现这一点。尝试执行升级而不是插入(如果行存在,则更新,如果不插入)您可以使用一些DB函数 在SQLServer2008中,有一个mer

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

尝试执行升级而不是插入(如果行存在,则更新,如果不插入)

您可以使用一些DB函数

在SQLServer2008中,有一个mergeSQL解决了这类问题

SQL Server 2008中的示例如下:


将Production.UnitMeasure合并为目标
使用(选择@UnitMeasureCode,@Name)作为源(UnitMeasureCode,Name)
打开(target.UnitMeasureCode=source.UnitMeasureCode)
当匹配时
更新集名称=source.Name
如果不匹配,则
插入(UnitMeasureCode,名称) 值(source.UnitMeasureCode,source.Name) 已删除输出。,$action,已插入。进入#我的诱惑