DatabaseLookup зависает от определенных значений
Я использовал Kettle для некоторых преобразований и столкнулся с проблемой: для одной конкретной строки мой шаг DatabaseLookup зависает. Это просто не дает результата. Попытка остановить преобразование приводит к бесконечной остановке для шага поиска.
Приведенное значение совсем не сложно, и не отличается от всех других строк / значений. Это просто не будет продолжаться.
Делая один и тот же запрос в базе данных напрямую или в другом инструменте базы данных (например, SQuirreL), он работает.
Я использую Kettle/Spoon 4.1, база данных MySQL 5.5.10. Это случается с Connector/J 5.1.14 и одним в комплекте с ложкой.
Шаг инициализируется безупречно (он работает даже для других строк), и я понятия не имею, почему он терпит неудачу. Нет сообщений об ошибках в журналах Spoon, ничего на консоли / оболочке.
2 ответа
Я только что нашел виновника: поиск берет в результате поле id и дает ему новое имя, PERSON_ID. Это НЕ СДЕЛАНО в некоторых случаях! Результирующий поиск / подготовленный оператор был чем-то вроде
select id as PERSON_ID FROM table WHERE ...
РЕШЕНИЕ: не используйте подчеркивание в поле "Новое имя" для поля! С новым именем PERSONID все работает безупречно для ВСЕХ рядов!
Глупая ошибка...
Странно. Какой тип таблицы? это миисам? Ваше преобразование также выполняет обновления к той же самой таблице? может быть вы как-то случайно заблокируете стол одновременно?
Или, может быть, это mysql 5.5... Но я широко использовал этот шаг с mysql 5.0 и pdi 4.everything, и это всегда было хорошо... может быть, опубликовать преобразование?