Avro vs Parquet в облачном хранилище Google, используя преобразование потока данных Google - PullRequest
2 голосов
/ 19 марта 2019

Использовал сервис Google Dataflow для пакетной загрузки тех же 10 тыс. Json-записей, поступающих из Kafka, в облачное хранилище Google.Далее следовало разбить файлы, созданные с помощью библиотек Apache Beam AvroIO, ParquetIO, TextIO соответственно.

Мы предположили, что размер файла паркета будет меньше по размеру следа данных по сравнению с avro для GCP, поскольку HDP (Hortonworks) и CDH (Cloudera) показали аналогичные исследования, как уже упоминалось.https://stackoverflow.com/a/31093105/4250322

Однако результаты на этих 10 тыс. Записей указывают на меньший размер Avro в GCS.Можно ли это предположить, чтобы выбрать формат данных.Какие еще факторы следует учитывать, помимо упомянутых здесь преимуществ: https://cloud.google.com/blog/products/gcp/improve-bigquery-ingestion-times-10x-by-using-avro-source-format

Мы хотим сохранить стоимость GCS на минимальном уровне, выбирая лучший формат и сохраняя минимальную общую стоимость.


// using ParquetIO write as parquet output file
pCollectionGenericRecords.apply ("ParquetToGCS",FileIO.<GenericRecord>write().via(ParquetIO.sink(AVRO_SCHEMA))

// Using TextIO write as text output file
collection.apply(TextIO.write().to(stagingLocation));

// Using AvroIO write as avro output file
pCollectionGenericRecords.apply("AvroToGCS", AvroIO.writeGenericRecords(AVRO_SCHEMA)

Обновление на основе предложения.

Обработка 0,6 млн. Записей JSON с 259,48 МБ с использованием службы потока данных для формата avro vs parquet, сгенерированного следующим образом:

Выходной размер Avro = 52,8 МБ

Выходной размер паркета = 199,2 МБ

Для более масштабного тестирования означает использование сервиса Dataflow с затратами, есть ли уже доступное исследование для использования.

1 Ответ

1 голос
/ 19 марта 2019

Вам понадобятся файлы большего размера, чтобы увидеть преимущества паркета (можно ожидать, что все эти исследования предназначены для файлов размером около 256 МБ).Для потоковых случаев лучше придерживаться Avro.

...