导航:首页 > 数据处理 > 列式存储数据库有哪些

列式存储数据库有哪些

发布时间:2022-02-12 16:59:24

‘壹’ 什么是列式存储数据库

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

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

‘贰’ 列式数据库的描述

数据库以行、列的二维表的形式存储数据,但是却以一维字符串的方式存储,例如以下的一个表: 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,infobright、infiniDB、GBase 8a,ParAccel, Sand/DNA Analytics和 Vertica。
MPP的列存储数据仓库包括:Yonghong Z-DataMart

‘叁’ 列式数据库的举例

下面以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 根据数据的不同特性以及不同的分布状况,自动采用相应的压缩算法,如:
行程编码(适用于大量连续重复的数据,特别是排序数据);
基于数据的差值编码(适用于重复率低,但彼此差值较小的数据列);
基于位置的差值编码(适用于重复率高,但分布比较随机的数据列)。

‘肆’ 数据存储形式有哪几种

【块存储】

典型设备:磁盘阵列,硬盘

块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1G),然后可以通过划逻辑盘、做Raid、或者LVM(逻辑卷)等种种方式逻辑划分出N个逻辑的硬盘。(假设划分完的逻辑盘也是5个,每个也是1G,但是这5个1G的逻辑盘已经于原来的5个物理硬盘意义完全不同了。例如第一个逻辑硬盘A里面,可能第一个200M是来自物理硬盘1,第二个200M是来自物理硬盘2,所以逻辑硬盘A是由多个物理硬盘逻辑虚构出来的硬盘。)

接着块存储会采用映射的方式将这几个逻辑盘映射给主机,主机上面的操作系统会识别到有5块硬盘,但是操作系统是区分不出到底是逻辑还是物理的,它一概就认为只是5块裸的物理硬盘而已,跟直接拿一块物理硬盘挂载到操作系统没有区别的,至少操作系统感知上没有区别。

此种方式下,操作系统还需要对挂载的裸硬盘进行分区、格式化后,才能使用,与平常主机内置硬盘的方式完全无异。

优点:

1、 这种方式的好处当然是因为通过了Raid与LVM等手段,对数据提供了保护。

2、 另外也可以将多块廉价的硬盘组合起来,成为一个大容量的逻辑盘对外提供服务,提高了容量。

3、 写入数据的时候,由于是多块磁盘组合出来的逻辑盘,所以几块磁盘可以并行写入的,提升了读写效率。

4、 很多时候块存储采用SAN架构组网,传输速率以及封装协议的原因,使得传输速度与读写速率得到提升。

缺点:

1、采用SAN架构组网时,需要额外为主机购买光纤通道卡,还要买光纤交换机,造价成本高。

2、主机之间的数据无法共享,在服务器不做集群的情况下,块存储裸盘映射给主机,再格式化使用后,对于主机来说相当于本地盘,那么主机A的本地盘根本不能给主机B去使用,无法共享数据。

3、不利于不同操作系统主机间的数据共享:另外一个原因是因为操作系统使用不同的文件系统,格式化完之后,不同文件系统间的数据是共享不了的。例如一台装了WIN7/XP,文件系统是FAT32/NTFS,而Linux是EXT4,EXT4是无法识别NTFS的文件系统的。就像一只NTFS格式的U盘,插进Linux的笔记本,根本无法识别出来。所以不利于文件共享。


【文件存储】

典型设备:FTP、NFS服务器

为了克服上述文件无法共享的问题,所以有了文件存储。

文件存储也有软硬一体化的设备,但是其实普通拿一台服务器/笔记本,只要装上合适的操作系统与软件,就可以架设FTP与NFS服务了,架上该类服务之后的服务器,就是文件存储的一种了。

主机A可以直接对文件存储进行文件的上传下载,与块存储不同,主机A是不需要再对文件存储进行格式化的,因为文件管理功能已经由文件存储自己搞定了。

优点:

1、造价交低:随便一台机器就可以了,另外普通以太网就可以,根本不需要专用的SAN网络,所以造价低。

2、方便文件共享:例如主机A(WIN7,NTFS文件系统),主机B(Linux,EXT4文件系统),想互拷一部电影,本来不行。加了个主机C(NFS服务器),然后可以先A拷到C,再C拷到B就OK了。(例子比较肤浅,请见谅……)

缺点:

读写速率低,传输速率慢:以太网,上传下载速度较慢,另外所有读写都要1台服务器里面的硬盘来承担,相比起磁盘阵列动不动就几十上百块硬盘同时读写,速率慢了许多。


【对象存储】

典型设备:内置大容量硬盘的分布式服务器

对象存储最常用的方案,就是多台服务器内置大容量硬盘,再装上对象存储软件,然后再额外搞几台服务作为管理节点,安装上对象存储管理软件。管理节点可以管理其他服务器对外提供读写访问功能。

之所以出现了对象存储这种东西,是为了克服块存储与文件存储各自的缺点,发扬它俩各自的优点。简单来说块存储读写快,不利于共享,文件存储读写慢,利于共享。能否弄一个读写快,利 于共享的出来呢。于是就有了对象存储。

首先,一个文件包含了了属性(术语叫metadata,元数据,例如该文件的大小、修改时间、存储路径等)以及内容(以下简称数据)。

以往像FAT32这种文件系统,是直接将一份文件的数据与metadata一起存储的,存储过程先将文件按照文件系统的最小块大小来打散(如4M的文件,假设文件系统要求一个块4K,那么就将文件打散成为1000个小块),再写进硬盘里面,过程中没有区分数据/metadata的。而每个块最后会告知你下一个要读取的块的地址,然后一直这样顺序地按图索骥,最后完成整份文件的所有块的读取。

这种情况下读写速率很慢,因为就算你有100个机械手臂在读写,但是由于你只有读取到第一个块,才能知道下一个块在哪里,其实相当于只能有1个机械手臂在实际工作。

而对象存储则将元数据独立了出来,控制节点叫元数据服务器(服务器+对象存储管理软件),里面主要负责存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息),而其他负责存储数据的分布式服务器叫做OSD,主要负责存储文件的数据部分。当用户访问对象,会先访问元数据服务器,元数据服务器只负责反馈对象存储在哪些OSD,假设反馈文件A存储在B、C、D三台OSD,那么用户就会再次直接访问3台OSD服务器去读取数据。

这时候由于是3台OSD同时对外传输数据,所以传输的速度就加快了。当OSD服务器数量越多,这种读写速度的提升就越大,通过此种方式,实现了读写快的目的。

另一方面,对象存储软件是有专门的文件系统的,所以OSD对外又相当于文件服务器,那么就不存在文件共享方面的困难了,也解决了文件共享方面的问题。

所以对象存储的出现,很好地结合了块存储与文件存储的优点。

最后为什么对象存储兼具块存储与文件存储的好处,还要使用块存储或文件存储呢?

1、有一类应用是需要存储直接裸盘映射的,例如数据库。因为数据库需要存储裸盘映射给自己后,再根据自己的数据库文件系统来对裸盘进行格式化的,所以是不能够采用其他已经被格式化为某种文件系统的存储的。此类应用更适合使用块存储。

2、对象存储的成本比起普通的文件存储还是较高,需要购买专门的对象存储软件以及大容量硬盘。如果对数据量要求不是海量,只是为了做文件共享的时候,直接用文件存储的形式好了,性价比高。

‘伍’ 数据库都有哪些

数据库是一组信息的集合,以便可以方便地访问、管理和更新,常用数据库有:1、关系型数据库;2、分布式数据库;3、云数据库;4、NoSQL数据库;5、面向对象的数据库;6、图形数据库。
计算机数据库通常包含数据记录或文件的聚合,例如销售事务、产品目录和库存以及客户配置文件。
通常,数据库管理器为用户提供了控制读写访问、指定报表生成和分析使用情况的能力。有些数据库提供ACID(原子性、一致性、隔离性和持久性)遵从性,以确保数据的一致性和事务的完整性。
数据库普遍存在于大型主机系统中,但也存在于较小的分布式工作站和中端系统中,如IBM的as /400和个人计算机。
数据库的演变
数据库从1960年代开始发展,从层次数据库和网络数据库开始,到1980年代的面向对象数据库,再到今天的SQL和NoSQL数据库和云数据库。
一种观点认为,数据库可以按照内容类型分类:书目、全文、数字和图像。在计算中,数据库有时根据其组织方法进行分类。有许多不同类型的数据库,从最流行的方法关系数据库到分布式数据库、云数据库或NoSQL数据库。
常用数据库:
1、关系型数据库
关系型数据库是由IBM的E.F. Codd于1970年发明的,它是一个表格数据库,其中定义了数据,因此可以以多种不同的方式对其进行重组和访问。
关系数据库由一组表组成,其中的数据属于预定义的类别。每个表在一个列中至少有一个数据类别,并且每一行对于列中定义的类别都有一个特定的数据实例。
结构化查询语言(SQL)是关系数据库的标准用户和应用程序接口。关系数据库易于扩展,并且可以在原始数据库创建之后添加新的数据类别,而不需要修改所有现有应用程序。
2、分布式数据库
分布式数据库是一种数据库,其中部分数据库存储在多个物理位置,处理在网络中的不同点之间分散或复制。
分布式数据库可以是同构的,也可以是异构的。同构分布式数据库系统中的所有物理位置都具有相同的底层硬件,并运行相同的操作系统和数据库应用程序。异构分布式数据库中的硬件、操作系统或数据库应用程序在每个位置上可能是不同的。
3、云数据库
云数据库是针对虚拟化环境(混合云、公共云或私有云)优化或构建的数据库。云数据库提供了一些好处,比如可以按每次使用支付存储容量和带宽的费用,还可以根据需要提供可伸缩性和高可用性。
云数据库还为企业提供了在软件即服务部署中支持业务应用程序的机会。
4、NoSQL数据库
NoSQL数据库对于大型分布式数据集非常有用。
NoSQL数据库对于关系数据库无法解决的大数据性能问题非常有效。当组织必须分析大量非结构化数据或存储在云中多个虚拟服务器上的数据时,它们是最有效的。
5、面向对象的数据库
使用面向对象编程语言创建的项通常存储在关系数据库中,但是面向对象数据库非常适合于这些项。
面向对象的数据库是围绕对象(而不是操作)和数据(而不是逻辑)组织的。例如,关系数据库中的多媒体记录可以是可定义的数据对象,而不是字母数字值。
6、图形数据库
面向图形的数据库是一种NoSQL数据库,它使用图形理论存储、映射和查询关系。图数据库基本上是节点和边的集合,其中每个节点表示一个实体,每个边表示节点之间的连接。
图形数据库在分析互连方面越来越受欢迎。例如,公司可以使用图形数据库从社交媒体中挖掘关于客户的数据。
访问数据库:DBMS和RDBMS
数据库管理系统(DBMS)是一种允许您定义、操作、检索和管理存储在数据库中的数据的软件。
关系数据库管理系统(RDBMS)是上世纪70年代开发的一种基于关系模型的数据库管理软件,目前仍然是最流行的数据库管理方法。
Microsoft SQL Server、Oracle数据库、IBM DB2和MySQL是企业用户最常用的RDBMS产品。DBMS技术始于20世纪60年代,支持分层数据库,包括IBM的信息管理系统和CA的集成数据库管理系统。一个关系数据库管理系统(RDBMS)是一种数据库管理软件是在20世纪70年代开发的,基于关系模式,仍然是管理数据库的最普遍的方式。
希望能帮助你还请及时采纳谢谢

‘陆’ 什么是数据库列存储,原理是怎样的

数据库列存储不同于传统的关系型数据库,其数据在表中是按行存储的,列方式所带来的重要好处之一就是,由于查询中的选择规则是通过列来定义的,因 此整个数据库是自动索引化的。

按列存储每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量,一个字段的数据聚集存储,那就 更容易为这种聚集存储设计更好的压缩/解压算法。这张图讲述了传统的行存储和列存储的区别:

‘柒’ 列式数据库的优缺点

优点:
极高的装载速度
(最高可以等于所有硬盘IO
的总和,基本是极限了)
适合大量的数据而不是小数据
实时加载数据仅限于增加(删除和更新需要解压缩Block
然后计算然后重新压缩储存)
高效的压缩率,不仅节省储存空间也节省计算内存和CPU。
非常适合做聚合操作。
缺点:
不适合扫描小量数据
不适合随机的更新
批量更新情况各异,有的优化的比较好的列式数据库(比如Vertica)表现比较好,有些没有针对更新的数据库表现比较差。
不适合做含有删除和更新的实时操作。

‘捌’ 数据库有哪几种

一、关系数据库

关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。

常见的关系型数据库有Mysql,SqlServer等。在轻量或者小型的应用中,使用不同的关系型数据库对系统的性能影响不大,但是在构建大型应用时,则需要根据应用的业务需求和性能需求,选择合适的关系型数据库。

虽然关系型数据库有很多,但是大多数都遵循SQL(结构化查询语言,Structured Query Language)标准。 常见的操作有查询,新增,更新,删除,求和,排序等。

查询语句:SELECT param FROM table WHERE condition 该语句可以理解为从 table 中查询出满足 condition 条件的字段 param。

新增语句:INSERT INTO table (param1,param2,param3) VALUES (value1,value2,value3) 该语句可以理解为向table中的param1,param2,param3字段中分别插入value1,value2,value3。

更新语句:UPDATE table SET param=new_value WHERE condition 该语句可以理解为将满足condition条件的字段param更新为 new_value 值。

删除语句:DELETE FROM table WHERE condition 该语句可以理解为将满足condition条件的数据全部删除。

去重查询:SELECT DISTINCT param FROM table WHERE condition 该语句可以理解为从表table中查询出满足条件condition的字段param,但是param中重复的值只能出现一次。

排序查询:SELECT param FROM table WHERE condition ORDER BY param1该语句可以理解为从表table 中查询出满足condition条件的param,并且要按照param1升序的顺序进行排序。

总体来说, 数据库的SELECT,INSERT,UPDATE,DELETE对应了我们常用的增删改查四种操作。

关系型数据库对于结构化数据的处理更合适,如学生成绩、地址等,这样的数据一般情况下需要使用结构化的查询,例如join,这样的情况下,关系型数据库就会比NoSQL数据库性能更优,而且精确度更高。

由于结构化数据的规模不算太大,数据规模的增长通常也是可预期的,所以针对结构化数据使用关系型数据库更好。关系型数据库十分注意数据操作的事务性、一致性,如果对这方面的要求关系型数据库无疑可以很好的满足。

二、非关系型数据库(NoSQL)

随着近些年技术方向的不断拓展,大量的NoSql数据库如MongoDB、Redis、Memcache出于简化数据库结构、避免冗余、影响性能的表连接、摒弃复杂分布式的目的被设计。

指的是分布式的、非关系型的、不保证遵循ACID原则的数据存储系统。NoSQL数据库技术与CAP理论、一致性哈希算法有密切关系。所谓CAP理论,简单来说就是一个分布式系统不可能满足可用性、一致性与分区容错性这三个要求,一次性满足两种要求是该系统的上限。

而一致性哈希算法则指的是NoSQL数据库在应用过程中,为满足工作需求而在通常情况下产生的一种数据算法,该算法能有效解决工作方面的诸多问题但也存在弊端,即工作完成质量会随着节点的变化而产生波动,当节点过多时,相关工作结果就无法那么准确。

这一问题使整个系统的工作效率受到影响,导致整个数据库系统的数据乱码与出错率大大提高,甚至会出现数据节点的内容迁移,产生错误的代码信息。

但尽管如此,NoSQL数据库技术还是具有非常明显的应用优势,如数据库结构相对简单,在大数据量下的读写性能好;能满足随时存储自定义数据格式需求,非常适用于大数据处理工作。

NoSQL数据库适合追求速度和可扩展性、业务多变的应用场景。

对于非结构化数据的处理更合适,如文章、评论,这些数据如全文搜索、机器学习通常只用于模糊处理,并不需要像结构化数据一样,进行精确查询,而且这类数据的数据规模往往是海量的,数据规模的增长往往也是不可能预期的;

而NoSQL数据库的扩展能力几乎也是无限的,所以NoSQL数据库可以很好的满足这一类数据的存储。

NoSQL数据库利用key-value可以大量的获取大量的非结构化数据,并且数据的获取效率很高,但用它查询结构化数据效果就比较差。

目前NoSQL数据库仍然没有一个统一的标准,它现在有四种大的分类:

1、键值对存储(key-value):代表软件Redis,它的优点能够进行数据的快速查询,而缺点是需要存储数据之间的关系。

2、列存储:代表软件Hbase,它的优点是对数据能快速查询,数据存储的扩展性强。而缺点是数据库的功能有局限性。

3、文档数据库存储:代表软件MongoDB,它的优点是对数据结构要求不特别的严格。而缺点是查询性的性能不好,同时缺少一种统一查询语言。

4、图形数据库存储:代表软件InfoGrid,它的优点可以方便的利用图结构相关算法进行计算。而缺点是要想得到结果必须进行整个图的计算,而且遇到不适合的数据模型时,图形数据库很难使用。

安全

数据库安全涉及保护数据库内容、其所有者和用户的所有各个方面。它的范围从防止有意的未经授权的数据库使用到未经授权的实体(例如,个人或计算机程序)无意的数据库访问。

数据库访问控制涉及控制谁(一个人或某个计算机程序)可以访问数据库中的哪些信息。该信息可以包括特定的数据库对象(例如,记录类型、特定记录、数据结构);

对特定对象的特定计算(例如,查询类型或特定查询),或者使用到前者的特定访问路径(例如,使用特定索引)或其他数据结构来访问信息)。

数据库访问控制由使用专用受保护安全 DBMS 接口的特别授权(由数据库所有者)人员设置。

这可以在个人基础上直接管理,或者通过将个人和特权分配给组,或者(在最复杂的模型中)通过将个人和组分配给角色,然后授予权利。数据安全可防止未经授权的用户查看或更新数据库。使用密码,用户可以访问整个数据库或它的子集,称为“子模式”。

例如,员工数据库可以包含有关单个员工的所有数据,但一组用户可能仅被授权查看工资数据,而其他用户仅被允许访问工作历史和医疗数据。如果 DBMS 提供了一种交互式输入和更新数据库以及查询数据库的方法,则此功能允许管理个人数据库。

数据安全通常涉及保护特定的数据块,包括物理保护(即免受损坏、破坏或移除;例如,参见物理安全),或将它们或它们的一部分解释为有意义的信息(例如,通过查看它们组成的位串,得出特定的有效信用卡号;例如,参见数据加密)。

更改和访问日志记录谁访问了哪些属性、更改了什么以及何时更改。日志服务通过保留访问发生和更改的记录,允许以后进行取证数据库审计。有时应用程序级代码用于记录更改而不是将其留给数据库。可以设置监控以尝试检测安全漏洞。

以上内容参考网络-数据库

‘玖’ Mysql是列式存储吗,或者说mysql支持列式存储吗

大数据(巨量数据集合(IT行业术语))
大数据(big data),指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。

‘拾’ 常见的基于列存储的大数据数据库有哪些

目前大数据存储有两种方案可供选择:行存储和列存储。业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全、可靠、完整性。从目前发展情况看,关系数据库已经不适应这种巨大的存储量和计算要求,基本是淘汰出局。在已知的几种大数据处理软件中,Hadoop的HBase采用列存储,MongoDB是文档型的行存储,Lexst是二进制型的行存储。在这里,我不讨论这些软件的技术和优缺点,只围绕机械磁盘的物理特质,分析行存储和列存储的存储特点,以及由此产生的一些问题和解决办法。

阅读全文

与列式存储数据库有哪些相关的资料

热点内容
满五唯一交易的钱怎么处理 浏览:833
水晶原石在街上怎么交易 浏览:1000
如何走进场外交易市场 浏览:830
金十数据官网是哪个省 浏览:287
交易猫号主改密码了怎么办 浏览:515
本地民事代理怎么处理 浏览:245
为什么花生代理老是断连接 浏览:353
欧弗兰怎么代理 浏览:786
如何规范数据信息被非法获取 浏览:309
新家具收购哪个市场好 浏览:13
菏泽什么地方有旧货市场 浏览:116
云技术公司怎么做 浏览:333
山东市场怎么开发 浏览:952
江苏扬州对口高考技术占多少分 浏览:603
如何制造情怀产品 浏览:904
委托加盟代理怎么做 浏览:343
智慧消防合作代理怎么办 浏览:616
余额宝为什么没有类似产品储存 浏览:449
什么是月份信息 浏览:919
技术保障是如何保障生产的 浏览:726