Nifi и Avro: преобразовать данные и метаданные в файл avro, используя указанную схему avro? - PullRequest
0 голосов
/ 28 февраля 2019

Это относится к Apache Nifi.

У меня есть фиксированная схема, которую мне нужно использовать.

Файл AVSC (схема) (только образец):

{"name": "person","type": "record","fields": [{"name": "address","type": {"type" : "record","name" : "AddressUSRecord","fields" : [{"name": "streetaddress", "type": "string"},{"name": "city", "type":"string"}]}}]}

В основном эта химия состоит из 2 частей, то есть одна в метаданных, а другая - фактические данные.

У меня есть метаданные, созданные в формате CSV, и фактические данные в другом CSV.

Я могу использовать,

GetFile -> InferAvroSchema -> ConvertCSVtoAvro

поток, чтобы конвертировать их отдельно в avro.

Но это не будет вФормат определен в схеме.

Я ищу какой-нибудь поток или процессор, где я могу передать или использовать 2 разных CSV в качестве входных данных и преобразовать их в avro согласно предоставленной схеме?

1 Ответ

0 голосов
/ 28 февраля 2019

Не уверен, что я достаточно хорошо понимаю ваш вариант использования, но вы должны быть в состоянии использовать LookupRecord с CSVRecordLookupService, чтобы получить данные из CSV "фактических данных" в запись, в которой уже есть поля метаданных.Вам просто нужно указать, какое поле (с помощью выражения RecordPath) в метаданных соответствует какому полю в файле CSV данных.

...