天天看点

数据引擎-列存储数据库

列式数据库是以列方式存储数据,主要适合于即时查询和批量数据处理

行式数据库是以行方式存储数据,主要适合于联机事物处理和小批量数据处理。

举个栗子

1.事实数据如下

数据引擎-列存储数据库

2.在传统数据库行数据库中的存储方法

数据引擎-列存储数据库

3.在列存储数据库中的逻辑结构

数据引擎-列存储数据库

4.在列存储数据中的压缩

因为列的集中存储,方便采用多种高效的数据压缩技术。行程编码压缩就是将数据值、数据出现的起始位置和持续长度保存为一个三元组。行程压缩适合于重复数据较多的场景。

数据引擎-列存储数据库

词典编码压缩是生成一个原始值的符合对照词典,符合的长度小于原始值的长度。位向量压缩是将每一个不同的取值生成一个位向量。字典压缩和位向量压缩仅适合取值空间比较小的场景。对于取值空间比较大的场景,Sybase IQ中的BitWise索引可以并行化范围求值操作。

数据引擎-列存储数据库

5.列存储数据库的查询

举个栗子:商家BA的iPhone6s的双十一销量

数据引擎-列存储数据库

依据查询条件依次标定向量,标定日期中=2015/11/11,标定订单类型=Sale,标定商家=BA,标定商品=iPhone6s,无关列无需扫描。

数据引擎-列存储数据库

将标定后的向量求交后,根据目标向量延迟物化目标列,然后根据物化后的列完成后续的求和计算SUM(1+1+1)=3

数据引擎-列存储数据库

6.行存储和列存储数据库的对比

随着大数据的发展,列存储数据库也越来越受到欢迎。高效的压缩比大大节省了硬盘和内存。全字段索引后的数据即是索引,使得数据库管理员彻底告别针对应用场景反复调优索引结构。列存储数据库使得大数据即时分析成为可能。也有许多混合型的设计方案,举个栗子:SQL Server2014中的RowGroup+ColumnSegments。

数据引擎-列存储数据库
数据引擎-列存储数据库