Как отследить конечный поток данных от начала до конца? - PullRequest
0 голосов
/ 15 июня 2019

Мы создаем механизм веб-сканирования и хотели бы, чтобы конечный пользователь видел собранные результаты как можно быстрее, а также получал уведомление, когда все данные находятся в базе данных. Результаты сбора проходят минимальную обработку ETL. Мы ищем ETL, который уведомит, когда будет обработан весь конечный поток (а также, если возможно, о некотором прогрессе). Поток разделяется на набор Zip-файлов + файл, содержащий список Zip-файлов (который поступит асинхронно в ETL, когда поток будет полностью просканирован).

Мы смотрели на Apache Flink и Apache NIFI. Apache flink поддерживает пакетную обработку, и клиент может ждать, пока пакет не будет выполнен, но здесь данные больше похожи на конечный поток, что означает, что обработка должна начаться до того, как все данные станут доступны, и закончиться на основе другого файла, в котором перечислены все zip-файлы. Apache nifi кажется более подходящим для этой работы с использованием уведомлений и ожидания. это будет работать с нифи? nifi предназначен для таких случаев? Можно ли уведомлять о прогрессе и финише конечного потока? Какие недостатки, если таковые имеются? любой другой вариант?

1 Ответ

0 голосов
/ 16 июня 2019

Вы можете иметь ограниченный поток Flink.Я бы создал пользовательский SourceFunction, который использует «список файлов zip», чтобы решить, когда прекратить.

...