Pentaho DI
November 28, 2022

Запуск Pentaho DI джобов из командной строки (Launching Pentaho DI Jobs from the Command Line).

Трансформации тоже можно запускать из командной строки, но в данной заметке речь только о запуске джобов.

Для запуска в Windows используется Kitchen.bat, в Linux - Kitchen.sh. Оба файла находятся в домашней папке Pentaho. У меня на домашнем ноутбуке это c:\Progs\Pentaho CE

Для учебных целей создал элементарный джоб, который просто инсертит в специально созданную таблицу 2 значения, которые являются параметрами джоба.

Скрипт создания таблицы (PostgreSQL).

CREATE TABLE ods.table_2_test_rundeck (
	num_field int4 NULL,
	txt_field text NULL,
	cr_date timestamp NULL DEFAULT CURRENT_TIMESTAMP
);
COMMENT ON TABLE ods.table_2_test_rundeck IS 'таблица для тестирования запуска джоба пентахи из rundeck';

Сам джоб

Запуск джоба из командной строки Windows
Запуск джоба завершился с успехом

Проверяем, что джоб отработал и данные в табличку встали.

select * from ods.table_2_test_rundeck
--num_field	txt_field	cr_date
--28	twenty eight	2022-11-29 01:59:45.491

Красота! С запуском джоба с передачей параметров в Linux примерно так же. На скрине пример вызова этого же джоба в Linux из Rundeck.

Вызов в Linux

P.S. Насчёт скрина выше.

Из Rundeck можно передавать переменные, так что вместо того, чтобы менять каждый раз параметры джоба в строке команды при запуске, можно менять значения переменных. Например, вместо con_prop_path=/opt/pdi-data можно написать con_prop_path=${option.con_prop_path}

Определение переменных в джобе Rundeck

P.P.S. Это были примеры запуска джобов из командной строки, используя абсолютный путь к файлу джоба, который является точкой входа в etl-процесс.

В реальности проект Pentaho DI, скорее всего, находится в репозитории. Для этого случая нужны кое-какие дополнительные манипуляции, и сам вызов из командной строки немножко изменится.