Создать универсальный поток Nifi для повторного использования - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть поток nifi, который извлекает записи из таблицы RDBMS (SQL Server) и помещает их в HDFS в формате паркета.Этот поток будет выполняться несколько раз в день для получения дельта-записей из исходной таблицы.Теперь мне нужно повторить этот процесс для более 100 различных исходных таблиц.Поэтому вместо того, чтобы создавать более 100 потоков nifi для каждой отдельной таблицы, я могу создать основной поток (скажем, шаблон) и передать такой параметр, как sql исходного кода, имя целевого файла и т. Д., В основной поток и повторить эти шаги для каждой исходной таблицы.Я использую Nifi Nifi 1.7.Я довольно близок к параметризации самого потока.

Пример - параметризация параметров компонентов, используемых в потоке.Пример - имя файла = $ {путь} / $ {имя файла}

Не знаете, как передать значения в этот поток из командной строки?

Спасибо, Сид

1 Ответ

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

Вы не можете передавать параметры с помощью командной строки. Но вы можете использовать слушатель (например: ListenHTTP ), а затем использовать атрибуты FlowFile в качестве параметров.

Другой вариант - использовать реестр переменных для регистрации этих параметров, а затем использовать его в качестве шаблона NiFi.Затем вы можете использовать NiFi Rest API для многократного развертывания этого шаблона с использованием различных параметров.

...