Есть ли способ сделать математические операции для некоторых значений в файлах с apache nifi? - PullRequest
0 голосов
/ 09 июля 2019

Я получаю некоторые числовые данные с помощью API из URL, и я ищу способ выполнить некоторые математические операции в apache nifi, прежде чем помещать данные в каталог файлов. Спасибо уже сейчас.

Кстати, я использую процессор InvokeHTTP для получения данных и для помещения файла в то место, где я использую процессор PutFile. Я искал некоторые похожие веб-сайты, но я не мог найти способ работы.

Ответы [ 3 ]

0 голосов
/ 10 июля 2019

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

В документации по Apache есть раздел математических операций [1]. Операции варьируются от простого операнда типа плюс / минус до предоставления статических методов java.lang.Math.

[1] https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#numbers [2] https://nifi.apache.org/docs.html

0 голосов
/ 10 июля 2019

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

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

0 голосов
/ 09 июля 2019

Попробуйте использовать QueryRecord процессор и Определите Record Reader/Writer служб контроллера для чтения / записи файла потока.

  • Добавьте новое свойство вQueryRecord обработчик с использованием SQL-запрос Apache calcite с вашими математическими операциями над потоковым файлом.

  • Результаты запроса SQL будут добавлены вoutgoing flowfile в нужном формате.

...