Nifi - Ingest файлы из локальной системы, используя ListFile, принимать файлы независимо от отметки времени - PullRequest
0 голосов
/ 12 февраля 2020

Мы пытаемся загружать файлы из локальной системы в HDFS. Nifi Flow -

ListFile => FetchFile => UpdateAttribute => PutHDFS

ListFile Стратегия листинга - это отслеживание сущностей. Выполнение Только основной узел.

Сценарий -

В нашей локальной системе у нас есть структура каталогов для данных каждого месяца как -

2019/201901
2019/201902
  .
  .
2019/201911
2019/201912

Метка времени файлов соответствует месяцу. Все эти ежемесячные папки постоянно получают данные.

Когда процессор ListFile загружает файлы из каталога 201911 и новые файлы добавляются в другие папки (папки старше 201911, например, 201903), эти файлы не выбираются процессором ListFile. Я пытался использовать разные значения для свойства Entity Tracking Time Window, но безуспешно. Очевидно, стратегия отслеживания сущностей ведет себя как отслеживание меток времени (кэширование последней метки времени из загруженных файлов и не поглощение каких-либо более старых файлов с метками времени)

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

  1. Почему процессор ListFile не выбирает файлы с моей текущей конфигурацией
  2. Итак, в основном я хочу постоянно загружать новые файлы на основе имени файла (независимо от метки времени) и пропускать уже загруженные файлы - есть ли обходной путь для достижения этой цели.

ListFile Configuration - Part I

ListFile Configuration - Part II

...