C-Store是一个为了快速查询而设计的关系型数据库,它的论文发表于2005年的VLDB。 为了达到更快的查询性能,C-Store按列存储数据,同一个表中的不同列可能被存在不同的、可能有重叠的Projection中。 虽然C-Store没有提出什么新的技术,但它是第一次将与列存储相关的技术整合到一起,成为一个真正理论上可用的系统,所以其设计和系统架构仍被广泛借鉴。 HPE Vertica这款商业存储系统,就是基于C-Store设计并实现的。
本文主要基于其VLDB2005的论文,介绍C-Store中的相关概念与设计。
C-Store数据模型
由于C-Store是关系型数据库,所以在C-Store中,表的Schema也和普通关系型数据库一致。 例如,有如下两张表:一张是员工表,EMP,其中有姓名、年龄、部门和工资这几列;另一张表是部门表,DEPT,有名称和楼层这两列。