行式存储 vs 列式存储

数据仓库概念

Aaren Stubberfield

Data Scientist

为何重要?

  • 优化查询以提升速度
  • 数仓表用列式格式最适合分析型负载
数据仓库概念

计算机存储基础

  • 计算机以块形式存储数据。
  • 检索数据时读取所需的块。
  • 读取更少的块可加快整体速度。

硬盘含多个存储块的示意图

数据仓库概念

健康数据表示例

  • CDC(美国疾病控制与预防中心)
  • 多个季节的流感感染按年龄组数据
季节 年龄组 住院比例
2019 0-17 岁 13.9%
2019 18-49 岁 22.5%
2019 50+ 岁 63.7%
2020 0-17 岁 3.9%
2020 18-49 岁 18.1%
2020 50+ 岁 78%
2021 0-17 岁 15.6%
2021 18-49 岁 23.3%
2021 50+ 岁 61.1%
数据仓库概念

行式存储示例

季节 年龄组 住院比例
2019 0-17 岁 13.9%
2019 18-49 岁 22.5%
2019 50+ 岁 63.7%
2020 0-17 岁 3.9%
2020 18-49 岁 18.1%
2020 50+ 岁 78%
2021 0-17 岁 15.6%
2021 18-49 岁 23.3%
2021 50+ 岁 61.1%

硬盘含多个存储块的示意图,每个块存一行

数据仓库概念

列式存储示例

季节 年龄组 住院比例
2019 0-17 岁 13.9%
2019 18-49 岁 22.5%
2019 50+ 岁 63.7%
2020 0-17 岁 3.9%
2020 18-49 岁 18.1%
2020 50+ 岁 78%
2021 0-17 岁 15.6%
2021 18-49 岁 23.3%
2021 50+ 岁 61.1%

硬盘含多个存储块的示意图,每个块存一列

数据仓库概念

总结

行式存储

  • 将同一行的数据存放在同一块中
  • 适合事务型负载

列式存储

  • 将同一列的数据存放在同一块中
  • 适合分析型负载
  • 压缩效果更好
数据仓库概念

¡Vamos a practicar!

数据仓库概念

Preparing Video For Download...