Я хотел бы знать, как узнать/записать общее время выполнения для любого потока в Apache Nifi. Есть ли способ сделать это и добавить его в список атрибутов, чтобы одно и то же было передано через PutEmail?apache nifi полное время выполнения
ответ
Я считаю, что вам нужно добавить собственное свойство timestamp при получении потока файла, выполнить основную часть вашей обработки, а затем рассчитать атрибут прошедшего времени для включения в письмо. Вы можете сделать это с помощью двух процессоров UpdateAttribute.
UpdateAttribute, получил =
${now():toNumber()}
(сделать обработку)
UpdateAttribute, истекшее =
${now():toNumber():minus(${received}):format("HH:mm:ss")}
Это формат истекшее время как " 00: 04: 1 6 "(4 минуты, 16 секунд). Вы можете использовать это как ${elapsed}
в своем сообщении сообщения PutEmail.
Но это немного уродливое и дает приблизительное время обработки. Профинансирующая система NiFi поддерживает «Продолжительность Lineage», которая описывает истекшее время с момента ввода файла NiFi. Это гораздо более авторитетный номер. Но я не верю, что вы можете запросить длину линии из языка выражения. Вам придется отдельно запрашивать и анализировать данные о происхождении.
Джеймс предоставил превосходное объяснение выше. Еще одно замечание, однако, является то, что вместо того, чтобы добавить атрибут для временной метки, когда было получено данных, вы можете просто ссылаться на lineageStartDate
атрибут:
${now():toNumber():minus(${lineageStartDate}):format("HH:mm:ss")}
Это то же самое значение, которое используется для определения Lineage Продолжительность в Происхождения.
Чтобы быть понятным, вы хотите сказать, что вместо того, чтобы делать: (текущее время - время начала), как было предложено @James выше, я мог бы напрямую использовать атрибут LineageStartDate, который дал бы мне продолжительность процесса? –
Должно ли это быть '$ {now(): toNumber(): минус ($ {lineageStartDate}): format (" HH: mm: ss ")}'? Удивительно, я не знал, что было доступно, +1! – James
Wow sorry - да, это должно быть '$ {now(): toNumber(): минус ($ {lineageStartDate}): format (" HH: mm: ss ")}'. Хороший улов на моей опечатке :) –
- 1. Apache Nifi GetTwitter
- 2. Проблемы настройки Apache NiFi
- 3. Apache Nifi ExecuteSQL Processor
- 4. Apache NIFI «Выполнять процессор»
- 5. Использование ReplaceText в Apache NiFi
- 6. apache nifi, формат паркета hdfs
- 7. Путь обновления для Apache Nifi
- 8. Многопользовательский режим в Apache Nifi
- 9. Процессор ExecuteSQL в Apache Nifi
- 10. Apache NiFi - веб-служба данных
- 11. Условная маршрутизация в Apache NiFi
- 12. org.apache.nifi.bootstrap.Command Apache NiFi не работает
- 13. Apache NiFi: механизм горячих папок
- 14. Apache Nifi с датчиками IOT
- 15. Apache Nifi Twitter Connection Issue
- 16. Агрегирование данных в Apache Nifi
- 17. Ошибка конфигурации LDAPS Apache NiFi
- 18. connect SQL to apache nifi
- 19. Возможны сценарии в apache nifi
- 20. apache-nifi: distributionMapCacheServer как начать
- 21. Apache NiFi не удается подключиться к «localhost: 8080/nifi»
- 22. GetKafka не получает сообщения в Apache Nifi
- 23. ListenHttp Apache NIfi общий базовый путь
- 24. Apache Nifi, как получить JSON из API
- 25. Apache Nifi - хранить строки в 1 файл
- 26. Apache Nifi: конвертировать SOAP-файл в JSON
- 27. apache nifi: перебрать список или использовать счетчики
- 28. Поддерживает ли версия управления версиями Apache NiFi
- 29. Проблемы в apache-nifi о unescapeJson
- 30. Apache NiFi: Вывод на несколько потоков одновременно?
Спасибо. Я пробовал этот подход, и это сработало. Мне удалось захватить время выполнения. –