Как использовать UDF в NiFi? - PullRequest
       39

Как использовать UDF в NiFi?

0 голосов
/ 05 ноября 2018

Я пытаюсь зашифровать данные так, чтобы шифровались только некоторые столбцы. Пример: {col1, col2, col3, col4} => {col1, зашифрованный (col2), col3, зашифрованный (col4)}

Если мой процесс шифрования может быть выполнен с использованием udf, как я могу зарегистрировать и / или использовать udf в NiFi?

В Hive это можно сделать, предварительно зарегистрировав udf, например: создайте временную функцию udf_name как 'abc.efg.udf_class_name', используя jar 'hdfs / path / to / jar / abc.jar'; И затем выполнить: выберите col1, udf_name (col2), col3, udf_name (col4) из таблицы;

В NiFi есть QueryRecord, который позволяет мне выполнить запрос на выборку содержимого потокового файла. Однако я не уверен, как зарегистрировать udf в NiFi.

Можно ли выполнить несколько команд sql в NiFi для одного и того же потокового файла в аналогичной точке?

1 Ответ

0 голосов
/ 07 ноября 2018

UDF не поддерживаются в Apache NiFi, насколько я знаю. Однако, если ваши исходные данные относятся к типу данных, поддерживаемых API-интерфейсами для чтения-записи NiFi, то есть CSV, Avro, JSON и т. Д., Вы можете использовать процессор ConvertRecord.

  • Сконфигурируйте ConvertRecord процессор с Record Reader, для которого задан тип данных источника, например CSVReader и для Record Writer значение ScriptedRecordSetWriter.
  • Затем ScriptedRecordSetWriter должен быть настроен на выбранный вами язык сценариев: я думаю, что Clojure & Groovy сработает в вашем случае.
  • Затем укажите сценарий для шифрования в поле Script File или Script Body.

enter image description here

enter image description here

enter image description here

...