Подтвердить что ты не робот

Pentaho kettle: как настроить тесты для трансформаций/заданий?

Я использую Pentaho Kettle довольно долгое время, и ранее преобразования и задания, которые я сделал (используя ложку), были довольно простой загрузкой из db, переименования и т.д., ввода данных в другой db. Но теперь я делаю преобразования, которые делают несколько более сложные вычисления, которые я сейчас хотел бы как-то проверить.

Так что я хотел бы сделать:

  • Настройка некоторых тестовых данных
  • Запустите преобразование
  • Проверить данные результата

Один из вариантов, вероятно, заключается в том, чтобы выполнить тестовое задание на Kettle, которое проверит трансформацию. Но поскольку мои преобразования связаны с проектом java, я бы предпочел запустить тесты из jUnit. Поэтому я рассмотрел возможность создания теста jUnit, который:

  • Настройка тестовых данных (с использованием dbunit)
  • Запустите преобразование (используя команду kitchen.sh из командной строки)
  • Проверить данные результата (используя dbunit)

Однако этот подход потребует наличия тестовых баз данных, которые не всегда доступны (оракул и т.д., дорогие/устаревшие db). Я бы предпочел, чтобы, если бы я мог издеваться или передавать некоторые данные проверки заглушки на мои шаги ввода каким-то образом.

Любые другие идеи о том, как проверить трансформации чайника Pentaho?

4b9b3361

Ответ 1

есть jira где-то на jira.pentaho.com(у меня нет его руки), который запрашивает именно это, но, увы, он еще не реализован.

Итак, у вас есть правильное решение - я также добавлю дженкинсов и ant script, чтобы связать все это вместе. Я сделал аналогичную вещь с тестированием отчетов - на самом деле у меня было задание pentaho, данные были выполнены, затем он выполнил отчет, а затем сравнил вывод с известным выходом и сообщил об ошибке/ошибке.

Ответ 2

Если вы отделите свои задания на чайник на две фазы:

  • загрузить данные в поток
  • данные процесса и обновления

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

Если вы сделаете это, вы можете использовать любые средства для загрузки данных (преобразование kettle, dbunit, вызванное из ant script), и можете макетировать любые нужные вам таблицы базы данных.

Я использую это для тестирования некоторых сценариев ETL, которые я написал, и он работает нормально.

Ответ 3

Вы можете использовать шаг проверки достоверности данных. Конечно, это не полный пакет unit test, но я думаю, что иногда будет полезно быстро проверить целостность данных. Вы можете запустить сразу несколько тестов.

Для более "серьезного" теста я порекомендую @codek answer и выполнит ваши чайники под Jenkins.

data validator step screenshot