数据库存储技术:从列存储到内存数据库的深度解析
1. 列存储数据库概述
列存储数据库在数据处理方面有着独特的优势。在数据加载和处理流程中,大规模批量顺序加载(如夜间 ETL 作业)通常会导向列存储,而增量插入和更新则会被导向写优化存储。查询时可能需要从两个存储中读取数据以获得完整且一致的结果。并且,会定期或根据需要将数据从写优化存储转移到列存储。
1.1 投影技术
为了优化复杂查询,列存储数据库(如 Vertica)会将表物理存储为一系列投影。投影包含经常一起访问的列组合。具体操作如下:
1. 默认投影 :每个表都有一个默认的超级投影,包含表中的所有列。
2. 特定投影 :为支持特定查询创建额外的投影。例如,创建一个投影来支持按客户汇总的销售数据,另一个投影用于按地区和产品汇总的销售数据。
投影还可以按一个或多个列进行排序,这有助于减少排序和聚合操作的处理时间,并提高压缩效率。此外,Vertica 还支持预连接投影,它基于连接条件物化多个表的列,类似于传统关系系统中为支持特定连接操作而创建的物化视图。
1.2 不同数据库中的列存储技术
列存储技术不仅应用于专门的列存储数据库,还在其他类型的数据库中有所体现:
- 传统关系系统 :如 SAP HANA 支持按表选择列或行方向存储,Oracle 12c 的“内存数据库”也实现了列存储。
- 混合存储技术 :Oracle 的增强混合列压缩(EHCC)结合了行存储和列存储的优点。在 EHCC 中,数
超级会员免费看
订阅专栏 解锁全文


被折叠的 条评论
为什么被折叠?



