首页数据库列式存储数据库?什么是列式存储数据库

列式存储数据库?什么是列式存储数据库

编程之家2023-10-1977次浏览

本篇文章给大家谈谈列式存储数据库,以及什么是列式存储数据库对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

列式存储数据库?什么是列式存储数据库

列式数据库的举例

下面以GBase 8a分析型数据库为例,描述列存储对数据存储与管理的作用。

面对海量数据分析的 I/O瓶颈,GBase 8a把表数据按列的方式存储,其优势体现在以下几个方面。

不读取无效数据:降低 I/O开销,同时提高每次 I/O的效率,从而大大提高查询性能。查询语句只从磁盘上读取所需要的列,其他列的数据是不需要读取的。例如,有两张表,每张表100GB且有100列,大多数查询只关注几个列,采用列存储,不需要像行存数据库一样,将整行数据取出,只取出需要的列。磁盘 I/0是行存储的 1/10或更少,查询响应时间提高 10倍以上。

高压缩比:压缩比可以达到 5~ 20倍以上,数据占有空间降低到传统数据库的1/10,节省了存储设备的开销。

当数据库的大小与数据库服务器内存大小之比达到或超过 2:1(典型的大型系统配置值)时,列存的 I/O优势就显得更加明显;

GBase 8a分析型数据库的独特列存储格式,对每列数据再细分为“数据包”。这样可以达到很高的可扩展性:无论一个表有多大,数据库只操作相关的数据包,性能不会随着数据量的增加而下降。通过以数据包为单位进行 I/O操作提升数据吞吐量,从而进一步提高I/O效率。

列式存储数据库?什么是列式存储数据库

由于采用列存储技术,还可以实现高效的透明压缩。

由于数据按列包存储,每个数据包内都是同构数据,内容相关性很高,这使得GBase 8a更易于实现压缩,压缩比通常能够达到 1:10甚至更优。这使得能够同时在磁盘 I/O和 Cache I/O上都提升数据库的性能,使 GBase 8a在某些场景下的运算性能比传统数据库快 100倍以上。

GBase 8a允许用户根据需要设置配置文件,选择是否进行压缩。在启用压缩的情况下GBase 8a根据数据的不同特性以及不同的分布状况,自动采用相应的压缩算法,如:

行程编码(适用于大量连续重复的数据,特别是排序数据);

基于数据的差值编码(适用于重复率低,但彼此差值较小的数据列);

基于位置的差值编码(适用于重复率高,但分布比较随机的数据列)。

列式存储数据库?什么是列式存储数据库

什么是列式存储数据库

列式数据库是以列相关存储架构进行数据存储的数据库,主要适合与批量数据处理和即席查询。

GBase 8a分析型数据库的独特列存储格式,对每列数据再细分为“数据包”。这样可以达到很高的可扩展性:无论一个表有多大,数据库只操作相关的数据包,性能不会随着数据量的增加而下降。通过以数据包为单位进行 I/O操作提升数据吞吐量,从而进一步提高I/O效率。

由于采用列存储技术,还可以实现高效的透明压缩。

为什么说HBase是列式数据库

Hbase是一个面向列存储的分布式存储系统,它的优点在于可以实现高性能的并发读写操作,同时Hbase还会对数据进行透明的切分,这样就使得存储本身具有了水平伸缩性。

通常,顺序读取数据要比随机访问更快。而且,硬盘寻址时间的提升比起CPU速度的进步要慢得多(参看摩尔定律),在使用硬盘作为存储媒介的系统上这种情况很可能还会持续一段时间。

下面简单罗列了一些选择行数据库还是列数据库的权衡依据。当然,如果能够把数据全放在内存中,那么使用内存数据库性能会更好。

特点:

因为硬盘寻址时间相较于计算机上其他部件的运行速度来说不是一般的慢,所以常用相同工作负载下的硬盘访问性能来比较行数据库和列数据库。

在只需要根据某几列来聚合数据的时候按列的数据组织方式更有效。因为这样只需要读取一部分数据,要比读取全部数据更快。

当只需要修改某一列值的时候按列的数据组织方式更有效。因为可以直接找到某列数据并改,而与行中的其他列无关。

什么是行式数据库,什么是列式数据库

,然后再存储下一列的数据,以此类推。

1,2,3;

Smith,Jones,Johnson;

Joe,Mary,Cathy;

40000,50000,44000;

这只是一个简化的说法。

在关系数据库领域,除传统的ORACLE、SQLSERVER、MYSQL等行式数据库外,目前在数据仓库领域列式数据库越来越受到关注。

二对比

1行式更适合OLTP,查询一个记录的所有列。

列式更适合OLAP,非常适合于在数据仓库领域发挥作用,比如数据分析、海量存储和商业智能;涉及不经常更新的数据。由于设计上的不同,列式数据库在并行查询处理和压缩上更有优势。而且数据是以列为单元存储,完全不用考虑数据建模或者说建模更简单了。要查询计算哪些列上的数据,直接读取列就行。

2列式在存储方面占有很大的优势,能有效提高数据压缩比,节省存储空间。

版权声明:本文为博主原创文章,未经博主允许不得转载。

什么是行式数据库,什么是列式数据库

标签:

如果你还想了解更多这方面的信息,记得收藏关注本站。

中国植物数据库 中国植物数据库的介绍微软新主机 微软最新主机型号