AVRO vs Parquet-该选哪一个?
我不会说一个更好,而另一个则不是,因为这完全取决于它们将在哪里使用。
Apache Avro是在Apache的Hadoop项目中开发的远程过程调用和数据序列化框架。 它使用JSON定义数据类型和协议,并以紧凑的二进制格式序列化数据。 (由维基百科)
· 由于它是基于行的格式,因此在需要访问所有字段时最好使用
· 文件支持块压缩并且可拆分
· 可以从流数据写入(例如Apache Flink)
· 适用于写密集型操作
另一方面,Apache Parquet是Apache Hadoop生态系统的一种免费的,面向列的开源数据存储格式。 它类似于Hadoop中可用的其他列存储文件格式,即RCFile和ORC。 它提供了具有增强性能的高效数据压缩和编码方案,可批量处理复杂数据。 (由维基百科)
· 由于它是基于列的格式,因此最好只在需要访问特定字段时使用
· 每个数据文件都包含一组行的值
· 无法通过流式数据写入,因为它需要等待块完成。 但是,这将使用微批量(例如Apache Spark)工作。
· 适用于数据探索-读取密集,复杂或分析性查询,低延迟数据
两者都支持以下内容,但在一定程度上取决于:
· 模式演变
· 嵌套数据集
(本文翻译自Ana Esguerra的文章《AVRO vs Parquet — what to use?》,参考:https://medium.com/@
minyodev/avro-vs-parquet-what-to-use-518ccbe8fb0c)