精华内容
下载资源
问答
  • 列式数据库

    2014-12-05 15:46:00
    最早的商业列式数据库是在1995年发布的Sybase IQ,但是一直到1999年左右才慢慢稳定到能够投入生产环境。现在的大多数分析型数据库都是在2003-2005年从Postgresql 分支出来的。其中尤其是Vertica 为代表的列数据库...

    最早的商业列式数据库是在1995年发布的Sybase IQ,但是一直到1999年左右才慢慢稳定到能够投入生产环境。现在的大多数分析型数据库都是在2003-2005年从Postgresql 分支出来的。其中尤其是Vertica 为代表的列数据库已经在大规模数据仓库环境中证明其特别为数据仓库环境设计的思路在一些领域具有竞争优势。这篇文章解释介绍列式数据库的几大特点。

      高效的储存空间利用率

        传统的行式数据库由于每个列的长度不一,为了预防更新的时候不至于出现一行数据跳到另一个block 上去, 所以往往会预留一些空间。而面向列的数据库由于一开始就完全为分析而存在,不需要考虑少量的更新问题,所以数据完全是密集储存的。

      行式数据库为了表明行的id 往往会有一个伪列rowid 的存在。列式数据库一般不会保存rowid。

      列式数据库由于其针对不同列的数据特征而发明的不同算法使其往往有比行式数据库高的多的压缩率,普通的行式数据库一般压缩率在3:1 到5:1 左右,而列式数据库的压缩率一般在8:1到30:1 左右。(InfoBright 在特别应用可以达到40:1 , Vertica 在特别应用可以达到60:1 , 一般是这么高的压缩率都是网络流量相关的)

      列式数据库由于其特殊的IO 模型所以其数据执行引擎一般不需要索引来完成大量的数据过滤任务(Sybase IQ 除外) 。这又额外的减少了数据储存的空间消耗。

      列式数据库不需要物化视图,行式数据库为了减少IO 一般会有两种物化视图,常用列的不聚合物化视图和聚合的物化视图。列式数据库本身列是分散储存所以不需要第一种,而由于其他特性使其极为适合做普通聚合操作。(另外一种物化视图是不能实时刷新的,比如排名函数,不规则连接connect by 等等,这部分列数据库不包括。)

      不可见索引

        列式数据库由于其数据的每一列都按照选择性进行排序,所以并不需要行式数据库里面的索引来减少IO 和更快的查找值的分布情况。如下图所示: 当数据库执行引擎进行where 条件过滤的时候。只要它发现任何一列的数据不满足特定条件,整个block 的数据就都被丢弃。最后初步的过滤只会扫描可能满足条件的数据块。

      (from InfoBright : Blazing Queries Using an Open Source Columnar Database for High Performance Analytics and Reporting )

      另外在已经读取了可能的数据块之后,对于类似age < 65 或 job = ‘Axx’ 的,列式数据库并不需要扫描完整个block,因为数据已经排序了。如果读到第一个age=66 或者 Job = ‘Bxx’ 的时候就会停止扫描了。这相当与行式数据库索引里的范围扫描。

      数据迭代 (Tuple Iteration)

        现在的多核CPU 提供的L2 缓存在短时间执行同一个函数很多次的时候能更好的利用CPU 的二级缓存和多核并发的特性。而行式数据库由于其数据混在一起没法对一个数组进行同一个简单函数的调用,所以其执行效率没有列式数据库高。

      压缩算法

        列式数据库由于其每一列都是分开储存的。所以很容易针对每一列的特征运用不同的压缩算法。常见的列式数据库压缩算法有Run Length Encoding , Data Dictionary , Delta Compression , BitMap Index , LZO , Null Compression 等等。根据不同的特征进行的压缩效率从10W:1 到10:1 不等。而且数据越大其压缩效率的提升越为明显。

      延迟物化

        列式数据库由于其特殊的执行引擎,在数据中间过程运算的时候一般不需要解压数据而是以指针代替运算,直到最后需要输出完整的数据时。

      (from McKnight : Columnar Database : Data Does the Twist and Analytics Shout)

      传统的行式数据库运算, 在运算的一开始就解压缩所有数据,然后执行后面的过滤,投影,连接,聚合操作

      而列式数据库的执行计划却是这样的。

      (from McKnight : Columnar Database : Data Does the Twist and Analytics Shout)

      在整个计算过程中, 无论过滤,投影,连接,聚合操作,列式数据库都不解压数据直到最后数据才还原原始数据值。这样做的好处有减少CPU 消耗,减少内存消耗,减少网络传输消耗,减少最后储存的需要。

      列式数据库优缺点

      列式数据库从一开始就是面向大数据环境下数据仓库的数据分析而产生,它跟行式数据库相比当然也有一些前提条件和优缺点。

      列式数据库优点:

    • 极高的装载速度 (最高可以等于所有硬盘IO 的总和,基本是极限了)
    • 适合大量的数据而不是小数据
    • 实时加载数据仅限于增加(删除和更新需要解压缩Block 然后计算然后重新压缩储存)
    • 高效的压缩率,不仅节省储存空间也节省计算内存和CPU。
    • 非常适合做聚合操作。

      缺点:

    • 不适合扫描小量数据
    • 不适合随机的更新
    • 批量更新情况各异,有的优化的比较好的列式数据库(比如Vertica)表现比较好,有些没有针对更新的数据库表现比较差。
    • 不适合做含有删除和更新的实时操作。

      常见误区

      一个常见的误区认为如果每次扫描较多行或者全列全表扫描的时候,行式数据库比列式数据库更有优势。事实上这只是行式数据库认识上的一个误区,即认为列式数据库的主要优势在于其列分开储存,而忽略了列式数据库上面提到的其他几大特征,这个才是列式数据库高性能的核心。

    转载于:https://www.cnblogs.com/njuzhoubing/p/4146839.html

    展开全文
  • 传统的关系型数据库是行式数据库,因为关系数据库是按照行来存储数据的,而列式数据库就是按照列来存储数据的数据库。 行式数据库的主要优势有以下两点。第一点是业务同时读取多列的时候,效率比较高,因为这些列都...

    传统的关系型数据库是行式数据库,因为关系数据库是按照行来存储数据的,而列式数据库就是按照列来存储数据的数据库。

    行式数据库的主要优势有以下两点。第一点是业务同时读取多列的时候,效率比较高,因为这些列都是按行存储在一起的,一次磁盘操作就能够把一行数据中的列都读到内存中,第二点,是能够一次性完成对一行中多个列的写操作,保证了针对行数据写操作的原子性和一致性。

    但是在海量数据统计分析的场景下,行式数据库就会显示出劣势。例如统计计算某个城市体重超重的人员数据。实际上只需要读取每个人的体重这一列进行统计分析即可。但是行式存储的情况下,即使只使用一列也会将所有行的数据都读取出来。在这种情况下,列式存储的优势就会体现出来。

    列式存储除了节省io以外,还具备更高的存储压缩比,能够更节省存储空间。普通的行式数据库的压缩率一般在3:1到5:1左右,而列式数据库的压缩率一般在8:1到30:1左右。这是因为单个列的数据相似性更高,所以能够达到更高的压缩率。

    基于以上的分析,一般将列式存储应用在离线的大数据分析和统计场景中,因为这种场景主要是针对部分列进行操作,并且数据写入后无需再更新和删除。

    展开全文
  • 浅析列式数据库的特点

    千次阅读 2014-01-03 16:02:28
    最早的商业列式数据库是在1995年发布的Sybase IQ,但是一直到1999年左右才慢慢稳定到能够投入生产环境。现在的大多数分析型数据库都是在2003-2005年从Postgresql分支出来的。这篇文章解释介绍列式数据库的几大特点。...

    最早的商业列式数据库是在1995年发布的Sybase IQ,但是一直到1999年左右才慢慢稳定到能够投入生产环境。现在的大多数分析型数据库都是在2003-2005年从Postgresql分支出来的。这篇文章解释介绍列式数据库的几大特点。

    1.高效的储存空间利用率

    传统的行式数据库由于每个列的长度不一,为了预防更新的时候不至于出现一行数据跳到另一个block上去,所以往往会预留一些空间。而面向列的数据库由于一开始就完全为分析而存在,不需要考虑少量的更新问题,所以数据完全是密集储存的。

    行式数据库为了表明行的id 往往会有一个伪列rowid 的存在。列式数据库一般不会保存rowid。

    列式数据库由于其针对不同列的数据特征而发明的不同算法使其往往有比行式数据库高的多的压缩率,普通的行式数据库一般压缩率在3:1 到5:1 左右,而列式数据库的压缩率一般在8:1到30:1 左右。(InfoBright在特别应用可以达到40:1,Vertica在特别应用可以达到60:1 ,一般是这么高的压缩率都是网络流量相关的)

    列式数据库由于其特殊的IO模型所以其数据执行引擎一般不需要索引来完成大量的数据过滤任务(Sybase IQ 除外)。这又额外的减少了数据储存的空间消耗。

    列式数据库不需要物化视图,行式数据库为了减少IO 一般会有两种物化视图,常用列的不聚合物化视图和聚合的物化视图。列式数据库本身列是分散储存所以不需要第一种,而由于其他特性使其极为适合做普通聚合操作。(另外一种物化视图是不能实时刷新的,比如排名函数,不规则连接connect by 等等,这部分列数据库不包括。)

    2.不可见索引

    列式数据库由于其数据的每一列都按照选择性进行排序,所以并不需要行式数据库里面的索引来减少IO和更快的查找值的分布情况。如下图所示: 当数据库执行引擎进行where条件过滤的时候。只要它发现任何一列的数据不满足特定条件,整个block 的数据就都被丢弃。最后初步的过滤只会扫描可能满足条件的数据块。

    (from InfoBright : Blazing Queries Using an Open Source Columnar Database for High Performance Analytics and Reporting )

    另外在已经读取了可能的数据块之后,对于类似age<65或job=‘Axx’的,列式数据库并不需要扫描完整个block,因为数据已经排序了。如果读到第一个age=66 或者 Job = ‘Bxx’ 的时候就会停止扫描了。这相当与行式数据库索引里的范围扫描。

    3.数据迭代 (Tuple Iteration)

    现在的多核CPU 提供的L2缓存在短时间执行同一个函数很多次的时候能更好的利用CPU的二级缓存和多核并发的特性。而行式数据库由于其数据混在一起没法对一个数组进行同一个简单函数的调用,所以其执行效率没有列式数据库高。

    4.压缩算法

    列式数据库由于其每一列都是分开储存的。所以很容易针对每一列的特征运用不同的压缩算法。常见的列式数据库压缩算法有Run Length Encoding , Data Dictionary , Delta Compression , BitMap Index , LZO , Null Compression 等等。根据不同的特征进行的压缩效率从10W:1 到10:1 不等。而且数据越大其压缩效率的提升越为明显。

    5.延迟物化

    列式数据库由于其特殊的执行引擎,在数据中间过程运算的时候一般不需要解压数据而是以指针代替运算,直到最后需要输出完整的数据时。

    (from McKnight : Columnar Database : Data Does the Twist and Analytics Shout)

    传统的行式数据库运算,在运算的一开始就解压缩所有数据,然后执行后面的过滤,投影,连接,聚合操作而列式数据库的执行计划却是这样的。

    (from McKnight : Columnar Database : Data Does the Twist and Analytics Shout)

    在整个计算过程中,无论过滤,投影,连接,聚合操作,列式数据库都不解压数据直到最后数据才还原原始数据值。这样做的好处有减少CPU 消耗,减少内存消耗,减少网络传输消耗,减少最后储存的需要。

    列式数据库优缺点

    列式数据库从一开始就是面向大数据环境下数据仓库的数据分析而产生,它跟行式数据库相比当然也有一些前提条件和优缺点。

    列式数据库优点:

    • 极高的装载速度(最高可以等于所有硬盘IO的总和,基本是极限了)
    • 适合大量的数据而不是小数据
    • 实时加载数据仅限于增加(删除和更新需要解压缩Block 然后计算然后重新压缩储存)
    • 高效的压缩率,不仅节省储存空间也节省计算内存和CPU。
    • 非常适合做聚合操作。

    列式数据库缺点:

    • 不适合扫描小量数据
    • 不适合随机的更新
    • 批量更新情况各异,有的优化的比较好的列式数据库(比如Vertica)表现比较好,有些没有针对更新的数据库表现比较差。
    • 不适合做含有删除和更新的实时操作。

    常见误区

    一个常见的误区认为如果每次扫描较多行或者全列全表扫描的时候,行式数据库比列式数据库更有优势。事实上这只是行式数据库认识上的一个误区,即认为列式数据库的主要优势在于其列分开储存,而忽略了列式数据库上面提到的其他几大特征,这个才是列式数据库高性能的核心。

     

     

    来源:TechTarget

    展开全文
  • 此文从收费的列数据库与...我经常听到的列式数据库不外乎: hbase hive sybase IQ/SAPIQ GreenPlum 没想到,还有很多的,学习,一直需要在路上~ 见链接:https://www.cnblogs.com/wangtao_20/p/8294974.html ...

    此文从收费的列数据库与互联网自行开发的列数据库进行了对比。

    我经常听到的列式数据库不外乎:

    hbase

    hive

    sybase IQ/SAPIQ

    GreenPlum

    没想到,还有很多的,学习,一直需要在路上~

    见链接:https://www.cnblogs.com/wangtao_20/p/8294974.html

    展开全文
  • 昨天装了下两个基于MySQL的数据仓库,infindb和infobright,看了文档发现它们都是列式数据库,把40多M的数据导入infobright,没想到数据文件只有1M多,压缩比令我惊讶! 然后测试了下选择某一列,在列上做计算,都...
  • Table of Contents 列式存储数据库 Examples of Column StoreDBMSs Hbase Table Row Column Column Family Column Qualifier ...列式数据库是以列相关存储架构进行数据存储的数据库,主要...
  • 常用数据库排名及分类介绍

    万次阅读 多人点赞 2019-07-10 21:46:20
    DB-Engines 数据库流行度排行榜 6 月更新已发布,排名前二十如下:总体排名和上个月相比基本一致,其中排名前三的Oracle、MySQL 和 Microsoft SQL Server 也是分数增加最多的三个数据库,增加的分数分别为 13.67、...
  • 数据库排行9月数据库排名依旧没有大波动,纵观前二十名榜单,前十次序依旧稳固,其后仍然是位置互换的小调整——关系型数据库Hive上升一位暂19座次,SAP HANA顺应落至20位,其余无变动。在得分方面,本次Oracle...
  • 列数据库

    2013-07-01 00:10:26
    最早的商业列式数据库是在1995年发布的Sybase IQ,但是一直到1999年左右才慢慢稳定到能够投入生产环境。现在的大多数分析型数据库都是在2003-2005年从Postgresql分支出来的。这篇文章解释介绍列式数据库的几大特点。...
  • 数据库产品排名

    千次阅读 2019-09-09 15:38:55
    数据库排名 图片来自墨天轮 02 DB-Engines排名一定准确? 可以看到上面这份排名和以往看到的DB-Engines排名不太一样,名单中数据库整体数量较少,这里出了50个数据库产品,同时对国产数据库多了较为详细的...
  • 近日,DB-Engines发布了2017年7月数据库排名。数据库排行又是一轮洗牌后,本轮数据库排名在2017年下半年...同时,保持较长一段时间稳定的前十名排行本月亦出现波动:搜索引擎式数据库Elasticsearch成功跻身前十之...
  • 【TechTarget中国原创】DB-Engines网站专门提供数据库管理系统流行度的排名信息,这个排名主要根据5个因素来进行:Google以及Bing搜索引擎的关键字搜索数量、Google Trends的搜索数量、Indeed网站中的职位搜索量、...
  • 数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着...
  • 数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着...
  • 时间序列数据库TSDB排名

    万次阅读 2017-11-14 20:01:39
    DB-Engines 中时序列数据库排名 我们先来看一下DB-Engines中关于时序列数据库的排名,这是当前(2016年2月的)排名情况: 下面,我们就按照这个排名的顺序,简单介绍一下这些时序列数据库中的一些。下面要...
  • 数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着...
  • 图片描述数据库排行9月数据库排名依旧没有大波动,纵观前二十名榜单,前十次序依旧稳固,其后仍然是位置互换的小调整——关系型数据库Hive上升一位暂19座次,SAP HANA顺应落至20位,其余无变动。在得分方面,...
  • 本文来源于华章计算机(hzbook_jsj)转载请标明出处DB-Engines 根据数据库管理系统的受欢迎程度对其进行排名,最近发布了 2020年 8月份的数据库排名。该网站实时统计了...
  • 本文来源于华章计算机(hzbook_jsj)转载请标明出处DB-Engines 最近发布了2020年6月份的数据库排名。该网站实时统计了356种数据库的排名指数。Oracle、MySQ...
  • 数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着...
  • 我们这次详解华为数据库,并对目前主流的数据库进行对比。只有对比,才能发现不同。 数据库的重要性&华为推出新一代Gauss数据库 数据库是计算机行业的基础核心软件,所有应用软件的运行和数据处理都要与其...
  • DB-Engines最近发布了 2021.3 月份的数据库排名,Oracle、MySQL、Microsoft SQL Server依然霸榜,接下来小编带你一起看一看各个类型数据库流行榜单的情况吧,说不定有自己用得着的,流行必有其流行的理由,找到适合...
  • 数据库的重要性&华为推出新一代Gauss数据库数据库是计算机行业的基础核心软件,所有应用软件的运行和数据处理都要与其进行数据交互。数据库的开发难度,不仅体现在与其...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,212
精华内容 4,084
关键字:

列式数据库排名