(90%)大数据文件格式梳理:Parquet、Avro、OR
2022-08-10 10:21:48 7 举报
AI智能生成
(90%)大数据文件格式梳理:Parquet、Avro、ORC 如何选择大数据文件格式 行式存储 列式存储
作者其他创作
大纲/内容
读写速度
按行读多还是按列读多
是否支持文件分割
压缩率
是否支持schema evolution
考虑因素:
如何选择不同的数据格式
读取少数列可以选择面向列存储的ORC或者Parquet
如果需要读取的列比较多,选择AVRO更优
如果schema 变更频繁最佳选择avro
实际上随着版本不断更新,现在parquet和orc都在一定程度上支持schema evolution,比如在最后面加列
ORC的查询性能优于Parquet
总结
扫描优化的列存储格式,默认是parquet
写优化的行格式,默认是avro
不同数据格式最佳实践
Parquet、Avro、ORC格式
主要为行存储
设计的主要目标是为了满足schema evolution(模式演化)
schema和数据保存在一起
1). AVRO:
行式存储
面向列的存储格式
由Hadoop中RC files 发展而来,比RC file更大的压缩比,和更快的查询速度
Schema 存储在footer中
不支持schema evolution
支持事务(ACID)
为hive而生,在许多non-hive MapReduce的大数据组件中不支持使用
高度压缩比并包含索引
2). ORC:
与ORC类似,基于Google dremel
Schema 存储在footer
列式存储
相比ORC的局限性,parquet支持的大数据组件范围更广
3). Parquet:
基于Hadoop文件系统优化出的存储结构
提供高效的压缩
二进制存储格式
文件可分割,具有很强的伸缩性和并行处理能力
使用schema进行自我描述
属于线上格式,可以在Hadoop节点之间传递数据
相同点
而Avro以基于行的格式存储数据。
Parquet和ORC都以列的形式存储数据,
行式存储or列式存储:
基于列的存储区Parquet和ORC提供的压缩率高于基于行的Avro格式。
压缩率:
Avro常用于Kafka、Druid。
ORC常用于Hive、Presto;
Parquet常用于Impala、Drill、Spark、Arrow;
可兼容的平台:
不同的案例和应用场景选择合适的存储格式,可以提升存储和读取的效率。
不同点
就其本质而言,面向列的数据存储针对读取繁重的分析工作负载进行了优化,而基于行的数据库最适合于大量写入的事务性工作负载。
概要
schema evolution support . 模式演化支持Compression : 压缩率splitability : 文件分割能力most compatible platforms: 最兼容的平台Row or Column : 行或列Read or write : 读或写
不同数据格式特点
大数据文件存储格式Parquet、Avro、ORC大比拼
收藏
0 条评论
回复 删除
下一页