Pentaho - Формат данных

У меня два вопроса о чайнике Pentaho Kettle, и мне нужна помощь, пожалуйста! Итак, у меня есть файл CSV с некоторыми данными. В одном столбце файла указаны даты (в годах). Первая проблема в том, что в некоторых строках в этом столбце указано «Нет», а в других строках дата в правильном формате. Это изображение должно помочь «увидеть» проблему:

Проблема первая

Чтобы решить эту проблему, я изменил тип данных во входном файле и в базе данных на String. Это работает, но я считаю, что это неправильный способ. Я также пробовал использовать шаг "Filter Rows", но не сработал .. Пожалуйста, помогите? :)

Вторая проблема связана с нулевым значением в поле даты. База данных ожидает получить значение даты, но некоторые из этих значений равны нулю. Еще раз, это изображение должно помочь «увидеть» проблему:

Проблема вторая

Что я могу сделать, чтобы решить обе проблемы? Каков правильный способ не только решить проблему, но и обеспечить хорошую производительность для запроса данных позже?

Спасибо большое!

С наилучшими пожеланиями!


person Zipador    schedule 25.02.2020    source источник


Ответы (3)


для первого запроса используйте шаг ввода как строку, это нормально, после этого используйте значение выбора шаг, использование может изменить строку на формат даты. для второго шага используйте шаг фильтра строк и отдельные строки, у которых есть none, после этого замените none на null и укажите ссылку на следующий шаг.

person Primit    schedule 25.02.2020

Для строкового значения "None" в столбце Year вы можете сначала прочитать этот столбец как String, затем вы можете использовать шаг под названием "Null if" и указать " None " в качестве значения, которое нужно преобразовать в NULL. Позже вы можете сделать этот столбец «Год» как целочисленный в поле «Выбрать значения».

Что касается второй проблемы, поскольку вы разрабатываете таблицу, ожидая ненулевого значения для столбца даты, вы можете либо изменить ограничение not-null на nullable. Или, если вам нужно значение по умолчанию для таких нулевых значений, вы можете использовать шаг «Если значение поля равно нулю», и вы можете указать там значение по умолчанию. Если вы хотите использовать ненулевое значение даты из предыдущих предыдущих строк, вы можете установить для Повторить значение Г на вкладке Поля шага Текстовый файл. ввод

person vamosRafa    schedule 26.02.2020

В качестве альтернативы в обоих случаях вы можете попробовать использовать «сопоставление значений» от «Нет» до того, что ваша база данных может принять.

person Beppe    schedule 02.03.2020