2013-09-18 2 views
1

Я использую pentaho DI для вставки данных в таблицу фактов. Вещь - это таблица, из которой я заполняю свою таблицу фактов, которая содержит 10000 повторений и изменений. Используя поиск базы данных и вставку обновления, я могу загрузить таблицу фактов правильно один раз. Но когда новые записи добавляются в мою таблицу соседей (скажем, она становится 15000), и я снова вставляю записи в таблицу фактов, то эти 15000 recods снова добавляются в мою таблицу фактов. Я хочу добавить новые 5000 записей, которые не существуют на самом деле. Пожалуйста, предложите мне, какие преобразования мне нужно выполнить, чтобы добиться этого.загрузка таблицы фактов с использованием интеграции данных пентахо

ответ

2

пытаются делать в upsertion вместо вставки (если строка существует, то обновить, если не вставить)

0

Вы можете использовать некоторые функции DB.

В SQL Server 2008 существует слияние 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;