【问题标题】:loading fact table using pentaho data integation使用 pentaho 数据集成加载事实表
【发布时间】:2013-09-18 17:52:38
【问题描述】:

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

【问题讨论】:

    标签: pentaho kettle data-integration


    【解决方案1】:

    尝试使用 upsertion 代替插入(如果行存在则更新,如果不插入)

    【讨论】:

      【解决方案2】:

      你可以使用一些数据库功能。

      在 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;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-11
        • 1970-01-01
        • 2012-07-22
        • 1970-01-01
        相关资源
        最近更新 更多