什么是列式数据库?
列式数据库是以列相关存储架构进行数据存储的数据库。卢东明认为数据库发展已经到了一个新阶段,数据库市场需要细分,行式数据库不再满足所有的需求,而有很多需求需要通过内存数据库和列式数据库解决,列式数据库在数据分析、海量存储、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)即商务智能,它是一套完整的解决方案,用来将企业中现有的数据进行有效的整合,快速准确的提供报表并提出决策依据,帮助企业做出明智的业务经营决策。)

列式数据库图解

列式数据库与行式数据库相关推荐

  1. Hbase与Oracle比较(列式数据库与行式数据库)

    1 主要区别 1.1.Hbase适合大量插入同时又有读的情况 1.2. Hbase的瓶颈是硬盘传输速度,Oracle的瓶颈是硬盘寻道时间. Hbase本质上只有一种操作,就是插入,其更新操作是插入一个 ...

  2. 为什么MaxCompute采用列式存储?列式存储和行式存储的主要区别在哪

    摘要: 1 为什么要按列存储 列式存储(Columnar or column-based)是相对于传统关系型数据库的行式存储(Row-basedstorage)来说的.简单来说两者的区别就是如何组织表 ...

  3. 什么是列式存储和行式存储

    一.列式存储和行式存储 列式存储是指一列中的数据在存储介质中是连续存储的: 行式存储是指一行中的数据在存储介质中是连续存储的. 简单的说,可以把列式数据库认为是每一列都是一个表,这个表只有一列,如果只 ...

  4. 列式存储和行式存储它们真正的区别是什么

    本文是<Column-Stores vs. Row-Stores: How Different Are They Really?>论文的读后感,作者徐明明.原文链接:https://zhu ...

  5. 列式存储和行式存储的真正区别

    1 列式存储和行式存储的真正区别 参考文献: 列式存储和行式存储的真正区别_过往记忆大数据_公众号文章 一般原因:查询需要的字段时,Column-Store 只需读取需要的列,Row-Store读一条 ...

  6. 列式数据库和行式数据库的区别

    前言 最近学习了hbase,其中涉及的到知识就是hbase采用了列式存贮,而用惯了mysql的我当然一脸懵逼,于是有了本篇文章,本文不是论文,所有涉及的知识点他人都有讲,我只是为了记录一下,如果想要看 ...

  7. 列式数据库和行式数据库区别

    转载自:https://blog.csdn.net/nieson2012/article/details/79551337 列存储不同于传统的关系型数据库,其数据在表中是按行存储的,列方式所带来的重要 ...

  8. DataBase_数据库的行式存储与列式存储

    存储差异 行式存储:以行为单位进行存储,存储在连续的物理内存上 列式存储:以列为单位进行存储,存储在连续的物理内存上 读取差异 animal表: name age color Tom one blue ...

  9. 列式存储和行式存储有什么区别?

    写在前面 本文隶属于专栏<100个问题搞定大数据理论体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和文献引用请见100个问题搞定大数据理 ...

最新文章

  1. kvm cpu的亲和性绑定配置
  2. 小学毕业,努力5年,月入3万的程序员和他们的公众号!
  3. RedHat之yum解决办法
  4. 在Servlet中获取Spring注解的bean
  5. [工具]-PGP的使用方法
  6. 每个人都要在自己的“时区”里找到自己的快乐
  7. Spark SQL(七)之基于用户的相似度公式
  8. 【原创】我所理解的自动更新-外网web服务器配置
  9. Oracle 日常开发记录
  10. zookeeper的acl权限控制_zookeeper权限acl与四字命令
  11. SQL Sever — 表的操作
  12. tomcat 实现域名crm.test.com訪问
  13. 空间参考(一)---墨卡托投影、高斯-克吕格投影、UTM投影的异同
  14. 电压跟随器的作用及特点
  15. 联想拯救者 Legion Y7000P 安装 Ubuntu 18.04.2 LTS amd64 遇到的问题解决
  16. 浙江工业大学 计算机学院,刘端阳-浙江工业大学计算机学院.DOC
  17. miner配置文件详解
  18. 手机游戏软件开发的前景 The future of development of game software on mobiles
  19. web网站开发基于高德地图浏览器定位
  20. C语言:指针的偏移步长、结构体成员的偏移量、嵌套结构体成员的偏移量、结构体的内存对齐

热门文章

  1. python IDE - Komodo 支持汉语输入设置
  2. uni-app view组件基本使用
  3. C++移位运算符详解
  4. Linux命令(十七) 关机命令,linux定时关机命令是什么
  5. 踩坑:vue-particles粒子插件在IE中出现空白,报错:缺少“:”
  6. beatsx 蓝牙耳机连接windows 10 音质不好的问题
  7. 计算机关闭显示器不睡眠断网吗,笔记本关闭显示器路由器会断网吗
  8. telnet发送报文
  9. 第五人格共研服显示服务器维护,第五人格共研服怎么参与?第五人格共研服资格获取方法详解...
  10. IDEA 社区版本(CE)Spring配置