У меня есть интересная задача создать преобразование Kettle для загрузки таблицы, которая представляет собой размерность Pure Type 6 а>. Это сводит меня с ума
Предположим, что структура таблицы ниже
|CustomerId|Name|Value|startdate|enddate|
|1|A|value1|01-01-2001|31-12-2199|
|2|B|value2|01-01-2001|31-12-2199|
Затем идет мой входной файл
Name,Value,startdate
A,value4,01-01-2010
C,value3,01-01-2010
После преобразования чайника данные должны выглядеть так
|CustomerId|Name|Value|startdate|enddate|
|1|A|value1|01-01-2001|31-12-2009|
|1|A|value4|01-01-2010|31-12-2199|
|2|B|value2|01-01-2001|31-12-2199|
|3|C|value3|01-01-2010|31-12-2199|
- Проверьте существующие данные и найдите, является ли входящая запись вставкой/обновлением
- Затем сгенерируйте суррогатные ключи только для записей вставки и выполните вставки.
- Сохраните суррогатные ключи для записей обновления и вставьте их как новые записи, назначьте открытую дату окончания для новой записи (очень высокое значение) и закройте предыдущую соответствующую запись в качестве даты начала новой записи - 1
Может ли кто-нибудь предложить лучший способ сделать это? Я мог видеть только тип 1 и 2, используя параметр «Поиск-обновление измерения».