NiFi: как получить максимальную метку времени из первого столбца? - PullRequest
0 голосов
/ 04 апреля 2019

NiFi версия 1.5

У меня есть CSV-файл прибывает в первый раз, как:

datetime,a.DLG,b.DLG,c.DLG
2019/02/04 00:00,86667,98.5,0
2019/02/04 01:00,86567,96.5,0

использовал listfile -> fetchfile для получения файла csv.

следующие 10 минут, я получаю добавленный CSV-файл:

datetime,a.DLG,b.DLG,c.DLG
2019/02/04 00:00,86667,98.5,0
2019/02/04 01:00,86567,96.5,0
2019/02/04 02:00,86787,99.5,0
2019/02/04 03:00,86117,91.5,0

здесь, как нам нужно получать только новые записи (последние две записи). я не хочу обрабатывать первые две записи, которые уже были обработаны.

Мой мыслительный процесс таков: нам нужно получить максимальное время и дату для хранения в атрибуте и использовать QueryRecord. но я не знаю, как получить максимальную дату и время, используя какой процессор.

есть ли лучшее решение.

Ответы [ 3 ]

1 голос
/ 09 апреля 2019

В настоящее время это открытый вопрос ( NIFI-6047 ), но сообщество внесло свой вклад в его решение, поэтому вы можете увидеть процессор DetectDuplicateRecord в следующем выпуске NiFi.

Может существовать обходной путь для разделения строк CSV и создания составного ключа с использованием ExtractText, а затем с использованием DetectDuplicate.

0 голосов
/ 04 апреля 2019

здесь, как нам нужно получить только новые записи (последние две записи).Я не хочу обрабатывать первые две записи, которые уже были обработаны.

Насколько я понимаю, реальный вопрос заключается в том, «как обрабатывать / принимать строки CSV, как они записаны в файл?».

Описание процессора 'TailFile' из Документация NiFi :

"Хвост" файла или списка файлов, принимая данные из файла в виде егозаписывается в файл.Предполагается, что файл будет текстовым.Данные принимаются только при обнаружении новой строки (возврат каретки или символ новой строки или комбинация)

Это решение подходит для случаев, когда вы не хотите перемещать / удалять фактический файл.

0 голосов
/ 04 апреля 2019

Похоже, это не лучшая работа для Nifi, так как вам нужно сохранять состояние того, что вы обработали.Альтернативой может быть удаление того, что вы уже обработали.Тогда вы можете предположить, что в файле всегда не обрабатывается.

...