Kettle - Ошибка дублирующегося ключа при использовании Insert / Update - PullRequest
0 голосов
/ 16 января 2019

У меня есть база данных postgres, которую я ETL с интеграцией данных Pentaho (чайник).

Загрузка данных была настроена с помощью поля Вставка / обновление со следующей конфигурацией.

Insert/Update Configuration

Однако я получаю это сообщение об ошибке из базы данных.

org.pentaho.di.core.exception.KettleDatabaseException: 
Error inserting/updating row
ERROR: duplicate key value violates unique constraint "uk_cardid_cards"
Detail: Key (cardid)=(91c2eb15-75f4-4081-8b51-aebcc2fc0116) already exists.

Я прочитал в другом вопросе, что дубликат ключа должен быть составлен для правильной работы коробки вставки / обновления чайника.

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 17 января 2019

вы используете <= в своем поиске уникального ключа, который позволяет получить более одного обновления cardid +, и это противоречиво. </p>

используйте UNIQUE ключи всегда для вставки / обновления. Фактически, вы уже используете это ограничение, но только на стороне postgres, вы должны следовать тому же ограничению на стороне pdi. Загляните в таблицу DDL, чтобы увидеть объявление ограничения уникальности

вероятно, он может добиться цели, используя = вместо <= во втором столбце поиска. </p>

...