大数据列存储文件格式

大数据列存储文件格式

💡 原文中文,约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是折衷方案。
➡️

继续阅读