美文网首页
列式存储

列式存储

作者: NeXt4 | 来源:发表于2020-12-06 17:49 被阅读0次

01 什么是列式数据库

列式存储(Column-oriented Storage)并不是一项新技术,最早可以追溯到 1983 年的论文 Cantor。然而,受限于早期的硬件条件和使用场景,主流的事务型数据库(OLTP)大多采用行式存储,直到近几年分析型数据库(OLAP)的兴起,列式存储这一概念又变得流行。
总的来说,列式存储的优势一方面体现在存储上能节约空间、减少 IO,另一方面依靠列式数据结构做了计算上的优化。

列式存储的适用场景包括:
1、查询过程中,可针对各列的运算并发执行(SMP),最后在内存中聚合完整记录集,最大可能降低查询响应时间
2、可在数据列中高效查找数据,无需维护索引(任何列都能作为索引),查询过程中能够尽量减少无关IO,避免全表扫描
3、因为各列独立存储,且数据类型已知,可以针对该列的数据类型、数据量大小等因素动态选择压缩算法,以提高物理存储利用率;如果某一行的某一列没有数据,那在列存储时,就可以不存储该列的值,这将比行式存储更节省空间

跟行数据库一样,列式存储也有不太适用的场景,主要包括:
1、数据需要频繁更新的交易场景
2、表中列属性较少的小量数据库场景
3、不适合做含有删除和更新的实时操作

02 为什么要使用列式存储

行式存储对于 OLTP(事务型) 场景是很自然的:大多数操作都以实体(entity)为单位,即大多为增删改查一整行记录,显然把一行数据存在物理上相邻的位置是个很好的选择。

然而,对于 OLAP(分析型) 场景,一个典型的查询需要遍历整个表,进行分组、排序、聚合等操作,这样一来按行存储的优势就不复存在了。更糟糕的是,分析型 SQL 常常不会用到所有的列,而仅仅对其中某些感兴趣的列做运算,那一行中那些无关的列也不得不参与扫描。

列式存储就是为这样的需求设计的。

显然,列式存储对于 OLTP 不友好,一行数据的写入需要同时修改多个列。但对 OLAP 场景有着很大的优势:

  • 当查询语句只涉及部分列时,只需要扫描相关的列
  • 每一列的数据都是相同类型的,彼此间相关性更大,对列数据压缩的效率较高

03 列式存储如何实现高性能

数据库不读取无效数据,提高系统IO
使用列式存储时,我们一般都只查询相关的列,查询条件也是指定的列,与行式存储相比,就少了很多无效数据的读取。

提高了数据压缩比,节省磁盘空间
数据相关性大,压缩比高,可以有效利用Cache

04 列数存储如何高效处理数据

多列族存储,提高新增效率
标记更新,提高更新效率
标记删除,提高删除效率

相关文章

  • 列式存储

    01 什么是列式数据库 列式存储(Column-oriented Storage)并不是一项新技术,最早可以追溯到...

  • 列式存储

    1 为什么要按列存储 列式存储(Columnar or column-based)是相对于传统关系型数据库的行式存...

  • 列式存储

    本文转自:几张图看懂列式存储 最近看到一篇很好资料,里面三言两语配上几个图就把列式存储(Column-based ...

  • Parquet列式存储格式详解,下推和压缩性能测试

    摘要:列式存储,Parquet Parquet概述 Apache Parquet是面向分析型业务的列式存储格式,由...

  • parquet学习总结

    深入分析Parquet列式存储格式 Parquet是面向分析型业务的列式存储格式,由Twitter和Clouder...

  • 行式存储和列式存储优缺点和paruqet文件结构

    一、列式存储和行式存储的比较 列式存储和行式存储是针对数据在存储介质中的排序形式而言的,假设存在一张table,那...

  • Hive文件存储格式

    列式存储和行式存储 上图左边为逻辑表,右边第一个为行式存储,第二个为列式存储。 ** 行存储的特点: **查询满足...

  • 001 列式存储的概念

    为什么需要列式存储 相对于传统型数据库行式存储而言,区别如下 行式存储,存储一个表,通过行的序列构成 列式存储,存...

  • 列式存储原理

    当今的数据处理大致可分为两大类:联机事务处理 OLTP(on-line transaction processin...

  • NoSQL-Hbase-Hbase初识

    一、引言 在之前的文章行式存储VS列式存储中,我们通过对比学习的方式,了解了什么是列式存储。也通过NoSQL-HD...

网友评论

      本文标题:列式存储

      本文链接:https://www.haomeiwen.com/subject/qmnowktx.html