列式数据库与行式数据库

什么是列式数据库?
列式数据库是以列相关存储架构进行数据存储的数据库。卢东明认为数据库发展已经到了一个新阶段,数据库市场需要细分,行式数据库不再满足所有的需求,而有很多需求需要通过内存数据库和列式数据库解决,列式数据库在数据分析、海量存储、BI这三个领域有自己独到。

5 年内可能会发生以下变化:

  大多数数据仓库将以列模式存储

  大多数 OLTP 数据库将可能是内存数据库 (IMDB),或完全驻留在内存内

  大多数大型数据库服务器将通过集群方式进行横向扩展

  很多数据收集和报告问题将由没有任何形式图式的数据库解决。

传统的行式数据库,是按照行存储的,维护大量的索引和物化视图无论是在时间(处理)还是空间(存储)方面成本都很高。而列式数据库恰恰相反,列式数据库的数据是按照列存储,每一列单独存放,数据即是索引。只访问查询涉及的列,大大降低了系统I/O,每一列由一个线程来处理,而且由于数据类型一致,数据特征相似,极大方便压缩。

  最后卢东明很务实的指出,没有万能的数据库,Sybase IQ也并非万能,只不过给DBA们的工具箱里提供更多的选择,DBA需根据自己的应用场景自行选择。

在数据仓库领域,列式数据库和传统的行式数据库有何差别呢?
列式数据库和行式数据库的拥护者均认为结合这两种技术的混合数据库是个不错的想法。

  行式数据库擅长随机读操作,列式数据库则更擅长大批量数据量查询,而混合数据库则试图同时包含这两种技术的优点,在灾难恢复(灾难恢复是在安全规划中保护企业免受重大负面事件影响的领域)环境中,数据要么按列式存储,要么按行式存储。

  我认为未来将是列式数据库的天下,行数据库和混合型数据库都将渐渐消亡,原因如下:数据增长速度很快,对存储设备(主内存和SSD)的需求也将不断上升,随着主内存和SSD中压缩列所占百分比的提高,列式数据库随机读的弱点反而变成了优点,这样列式数据库不管是应付联机事务处理,还是大批量更新或大型报表需要执行的复杂查询都能应付自如。对于更新操作而言,列式数据库和行式数据库在这方面已经没有多大差距了,因为大部分更新操作只会影响到一行中的一到三列(字段),同时,大部分更新操作影响的是最近的数据,因此主内存/SSD缓存中数据会越来越多。对于插入和删除操作而言,先在内存中快速更新索引,然后再写入磁盘,这意味着在I/O密集型情况下也不会有明显的性能下降。对在线备份而言,按列存储方法压缩数据后备份时间窗口将会更短。

  对今天的数据仓库而言,列式数据库的性能和传统行数据库相比,根本不在一个数量级上,列式数据库已经得到了广泛的认可和使用(Sybase IQ已经有十年历史,也出现了一些新兴列式数据库公司,如Vertica),数据库巨人Oracle也按捺不住,在其Exadata数据库机中也加入了按列存储选择,IBM则提供了一个列式专用设备,它可以确定什么数据该按列存储,什么数据该按行存储,然后将事务分流到相应的设备。

列式数据库

维基百科,自由的百科全书

列式数据库是以列相关存储架构进行数据存储的数据库,主要适合与批量数据处理和即席查询。相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合与小批量的数据处理,常用于联机事务型数据处理。
[编辑]描述

数据库以行、列的二维表的形式存储数据,但是却以一维字符串的方式存储,例如以下的一个表:
EmpId Lastname Firstname Salary
1 Smith Joe 40000
2 Jones Mary 50000
3 Johnson Cathy 44000

这个简单的表包括员工代码(EmpId), 姓名字段(Lastname and Firstname)及工资(Salary).

这个表存储在电脑的内存(RAM)和存储(硬盘)中。虽然内存和硬盘在机制上不同,电脑的操作系统是以同样的方式存储的。数据库必须把这个二维表存储在一系列一维的“字节”中,又操作系统写到内存或硬盘中。

行式数据库把一行中的数据值串在一起存储起来,然后再存储下一行的数据,以此类推。

1,Smith,Joe,40000;2,Jones,Mary,50000;3,Johnson,Cathy,44000;

列式数据库把一列中的数据值串在一起存储起来,然后再存储下一列的数据,以此类推。

1,2,3;Smith,Jones,Johnson;Joe,Mary,Cathy;40000,50000,44000;

这是一个简化的说法。

列式数据库的代表包括:Sybase IQ,ParAccel, Sand/DNA Analytics和 Vertica。

Sybase IQ:知道IQ跟其它的关系型数据库相比,它的主要特征是什么?包括查询快、数据压缩比高、Load快,但是插入更新慢,不太适合数据老是变化,它是按列存储的。这时候你就知道它适做DSS(决策支持系统),数据集市,数据仓库,它不适合OLTP。适合OLAP。

列式数据库的优点:
数据压缩比高,正因为同一类型的列存储在一起。
简化数据建模的复杂性。
由于查询需要读取的blocks少,速度更快。
BI的优秀选择。(BI(Business Intelligence)即商务智能,它是一套完整的解决方案,用来将企业中现有的数据进行有效的整合,快速准确的提供报表并提出决策依据,帮助企业做出明智的业务经营决策。)

列式数据库图解

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值