Использовал сервис 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 с затратами, есть ли уже доступное исследование для использования.