Сравниваем форматы файлов для больших данных
Как известно, обработка больших данных повышает нагрузку на подсистему хранения. Кроме дисков, нагружается сеть, процессор, система ввода-вывода. Чем быстрее растет объем данных, тем быстрее повышается цена их хранения и обработки. Чтобы решить эти проблемы, в Hadoop существуют разные форматы файлов. Выбрав нужный формат, можно получить следующие преимущества:
- увеличение быстроты чтения;
- увеличение быстроты записи;
- поддержка эволюции схем;
- поддержка разделяемых файлов;
- расширенная поддержка сжатия.
Одни форматы хороши для общего применения, вторые -- для специфического использования, третьи специально разработаны с учетом определенных характеристик данных. В принципе, выбор существует, что не может не радовать.
Говоря о выборе, давайте вспомним, что мы уже подробно рассказывали про следующие форматы файлов в Big Data:
Что же, давайте вкратце сравним их между собой.
Avro vs Parquet
Говоря об этих форматах, стоит выделить следующее:
- Avro представляет собой формат хранения по строкам, в то время как Parquet хранит данные по столбцам.
- В Avro операции записи выполняются более эффективно.
- Parquet лучше подходит для выполнения аналитических запросов (операции чтения и запроса данных выполняются более эффективно, чем операция записи).
- Считается, что Avro лучше работает с эволюцией схем. Если тот же Parquet поддерживает лишь добавление схемы, то в Avro поддерживается многофункциональная эволюция, включая добавление и изменение столбцов.
- Формат Parquet идеален, если говорить о запросе подмножества столбцов в таблице многоколоночного типа. В то же самое время Avro прекрасно подходит для выполнения ETL-операций, к примеру, когда запрашиваются все столбцы.
ORC vs Parquet
В данном сравнении следует выделить лишь 4 тезиса:
- Формат Parquet лучше хранит вложенные данные.
- Формат ORC лучше приспособлен к predicate pushdown (проталкиванию предикатов).
- ORC поддерживает ACID-свойства.
- ORC лучше сжимает данные.
По материалам https://blog.clairvoyantsoft.com/big-data-file-formats-3fb659903271.