💡
原文中文,约9400字,阅读约需23分钟。
📝
内容提要
本文介绍了文件存储格式的设计和大数据为何偏爱列存储,列存储在IO效率、压缩技术、延迟物化和缓存性能方面具有优势。文章还介绍了Apache ORC和Apache Parquet的文件结构和代码示例,最后总结了ORC和Parquet的比较以及现代存储格式设计的局限性。
🎯
关键要点
- 文件存储格式设计影响数据在磁盘上的组织方式。
- 大数据偏爱列存储格式如Apache ORC和Apache Parquet,因其在IO效率、压缩技术、延迟物化和缓存性能方面的优势。
- 列存储的IO效率高,因为查询时通常只需读取少数几列。
- 列存储的优势包括块遍历、列特定压缩技术、延迟物化和缓存性能提升。
- 行存储可以模拟列存储的某些效果,但难以达到列存储的性能。
- Apache ORC的文件结构包括Stripe、Row Data和Footer等,具有多级索引。
- Apache Parquet的文件结构包括Row Group、Column Chunk和Page等。
- ORC的压缩比高于Parquet,但Parquet与Spark结合更好。
- 现代存储格式设计存在局限性,无法覆盖所有SQL场景,Hybrid-Store是折衷方案。
➡️