列式数据库概述

    技术2024-11-21  4

    0、一张图描述列式数据库与行式数据库区别:

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1、 列式数据库应用于对表中部分字段进行查询,或者是所谓的“大表”。

    2、 大多数列式数据库不需要索引,因为列本身就是索引

    3、 列式数据库能够自动评估逻辑和物理上的IO消耗,所以他不需要分区,也不需要物化视图。读取数据时,

          只跟当前列数据所在存储设备发生IO操作,基本上占传统数据库的10%。

    4、 一般上讲,列式数据库的查询性能比传统行数据库快5—10倍,同时随着数据量成倍地增加,查询性能变

          化不会很大,基本上在一个数量级。

    5、 列式数据库的物理文件小,压缩比基本上是传统的10-40倍;由于列数据类型相同,所以可以根绝不同

          的数据类型来压缩。

    6、 什么情况下不适合用列式数据库:

      大多数情况下都是用select * 类似的查询,这时候列式数据库没有任何性能优势。 频繁的单个的insert和delete操作 小型数据库,性能提升不明显 换句话说,传统的OLTP业务不适合列式数据库

    7、 什么情况下适合用列式数据库

      非事务、非实时、非多并发的数据仓库的构建 数据变化小,如日志,汇总的大量数据等 换句话说,列式数据库适用于典型的BI分析和DW构建等应用场景。

    8、 随着应用需求由简单的交易业务转向分析业务,套用SAP-Sybase(被SAP收购)的话“列式数据库正是在分析系统领域(OLAP)里最好的技术”。

    9、 一种新观点——“5年内可能会,大多数数据仓库将以列模式存储;大多数 OLTP 数据库将可能是内存数据库 (IMDB),或完全驻留在内存内;大多数大型数据库服务器将通过集群方式进行横向扩展”。

    10、 看看现在巨头们都有哪些列式数据库:

      IBM:2010年大型机上推出智能分析优化器(SAO),自称列式设备。 Oracle:Oracle 11gR2中提供了针对它自己Exadata系统的列式存储技术 SAP-Sybase:Sybase IQ,据说人家十年前就研究这个了。 开源:绝大部分是作为Mysql的数据存储引擎,如InfoBright, InfiniDB等。其中LucidDB的特点主要有: i. 专门用于数据仓库和BI分析 ii. 以位图索引,Hash Join,聚合以及页级多版本并发控制技术为基础构建。 iii. 存储引擎上层采用Java实现,提供基于Java的扩展接口 iv. 与mondrian结合紧密,同时有针对ETL功能的优化。

    11、 LucidDB及其他开源列式存储引擎性能基准测试:

    http://www.percona.com/docs/wiki/benchmark:ssb:start

    最新回复(0)