Лучший подход для этого конвейера данных? - PullRequest
0 голосов
/ 14 марта 2019

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

Сценарий заключается вследующее: мне нужно вставить некоторые файлы .csv в мою HDFS, в них нет даты, которую я хочу использовать для разбиения таблиц Hive, которые я буду использовать позже, поэтому я подумал о двух вариантах:

  1. В какой-то момент во время обработки .csv создайте некоторый фрагмент кода, запускаемый из Nifi, чтобы изменить файл .csv, добавив столбец с датой.
  2. Создайте временную (внутреннюю?) Таблицу в кусте,измените таблицу, добавив столбец, и, наконец, добавьте ее в таблицу, в которой я делю по дате.

Я не уверен, какой вариант лучше (с точки зрения памяти, простота, управление ресурсами) или, может быть, даже если его дажевозможно, или даже если есть лучший способ сделать это.Также я не уверен, какие процессоры Nifi использовать.

Так что любая помощь приветствуется, ребята, спасибо.

1 Ответ

2 голосов
/ 14 марта 2019

Вы должны быть в состоянии легко сделать № 1 в NiFi без написания какого-либо кода:)

Шаги будут примерно такими:

  1. Исходный процессор, чтобы получить CSV отгде-то, вероятно, GetFile
  2. UpdateAttribute для добавления атрибута для текущей даты
  3. UpdateRecord с CsvReader и CsvWriter, добавляет новое поле даты со значением из # 2

Я создал пример того, как это сделать, и разместил шаблон здесь:

https://gist.githubusercontent.com/bbende/113f8fa44250c09a5282d04ee600cd09/raw/c6fe8b1b9f31bb106f9c816e4fd5ea90ebe19f80/CsvAddDate.xml

Сохраните этот XML-файл и используйте палитру слева от холста NiFi для загрузкиэто как шаблон.Затем создайте экземпляр шаблона на верхней панели инструментов, перетащив значок шаблона.

...