Nifi: как переместить контент CSV и его метаданные в одну таблицу в Postgresdatabase с помощью NiFi - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть csv-файлы, и я хочу переместить содержимое файлов вместе с его метаданными (имя файла, источник (быть жестко запрограммированным), контрольный номер (часть имени файла - для извлечения из самого имени файла), используя NiFi. Вот пример имени файла и макета -

Имя файла - 12345_user_data.csv (control_number_user_data.csv)

источник - Нью-Йорк

Содержимое файла CSV / столбцы -

Поля - abc1, abc2, abc3, abc4

значения - 1,2,3,4

Postgres Структура таблицы базы данных

Имя таблицы - User_Education

имя поля -

control_number, имя_файла, источник, abc1, abc2, abc3, abc4

Значения -

12345, 12345_user_data.csv, Newyork, 1,2,3,4

Я планирую использовать следующие процессоры -

ListFile

FetchFile

UpdateAttributes

PutDatabaseRecords

Журнал Атрибуты

Но я не уверен, как объединить фактический контент с метаданными для загрузки в одну таблицу. Пожалуйста, помогите

1 Ответ

1 голос
/ 13 февраля 2020

Вы можете использовать UpdateRecord перед PutDatabaseRecord, чтобы добавить поля control_number, file_name и source к каждой записи, установив для свойства "Стратегия замены значения" значение "Литеральное значение" и используйте Язык выражений для установки значений для соответствующих атрибутов.

Например, у вас может быть пользовательское свойство /file_name, установленное на ${filename}, которое будет добавлять поле file_name к каждой записи и устанавливать значение в любом атрибуте «filename» FlowFile.

...