数据引擎-列存储数据库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/afujin/article/details/49754847

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

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


举个栗子

1.事实数据如下



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



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



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

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


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



5.列存储数据库的查询

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


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


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



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

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



阅读更多
换一批

没有更多推荐了,返回首页