записать json данные из кафки в s3 в формате паркета - PullRequest
0 голосов
/ 25 февраля 2020

Я пишу потоковое приложение (Flink, Kafka, S3), которое помещает данные в Kafka в формате JSON, и мне нужно записать данные в S3 в формате Parquet.

Я искал много мест и читал вопросы по stackoverflow, но я не получаю однозначного ответа, является ли обязательным считывание данных в формате AVRO в Flink, если я хочу написать паркет в s3?

Мне нужно go от JSON -> AVRO -> Паркет?

Или JSON -> Паркет возможен с использованием kafka, flink, S3

1 Ответ

0 голосов
/ 25 февраля 2020

Должно быть возможно достичь этого, пока схема ввода более или менее постоянна c. Идея состоит в том, чтобы сначала конвертировать JSON в avro, например, вы можете использовать этот конвертер: https://github.com/allegro/json-avro-converter.

Тогда вы можете записать вывод в s3. Для этого вы можете создать StreamingFileSink, который использует ParquetAvroWriters под капотом. Что-то вроде:

StreamingFileSink
  .forBulkFormat([somePath], ParquetAvroWriters.forGenericRecord(schema))
  .build()
...