hbase介绍

来源:互联网 发布:spark sql seq 编辑:程序博客网 时间:2024/06/17 18:20
数据库以行、列的二维表的形式存储数据,但是却以一维字符串的方式存储,例如下表:

EmpId Lastname Firstname Salary

1         Smith          Joe         40000

2          Jones        Mary       50000

3        Johnson      Cathy      44000

这个表存储在电脑的内存和硬盘中。数据库必须把这个二维表存储在一系列的一维“字节”中,又操作系统写到内存或者硬盘中。

行式数据库把一行中的数据值串在一起存储起来,然后再存储下一行数据

1,Smith,Joe,40000;2,Jones,Mary,50000;3Johnson,Cathy,44000;

列式数据库把一列中的数据值串在一起存储,然后再存储下一列的数据,以此类推。

1,2,3;Smith,Jones,Johnson;Joe,Mary,Cathy;40000,50000,440000;

对于传统行式数据库。数据库按行存储,没有索引的查询使用大量I/O建立索引和物化视图需要花费大量时间和资源,面对查询需求,数据库必须被大量膨胀才能满足性能需求。

对于列式数据库,数据库按列存储,数据即索引。只访问查询涉及的列-大量降低系统IO每一列由一个线程来处理-查询的并发处理 数据类型一致,数据特征相似-高效存储。

这2种数据库的设计所考虑的最大的一个因素是——硬盘运行的方式。硬盘的机械结构决定了它的特点寻道速度慢,连续读取速度快。列式数据库的优点将列存储在同一区域,那么在单列查询的时候减少了硬盘的寻道操作数。而行式数据库在定位到某一行后,读取这行中内容成为连续操作,速度会快。

那么总结来看,列式数据库的各种优点让它适合于做大规模数据存储,保证硬盘的低寻道,高吞吐的大数据读写。而行式数据库适合少量数据快速定位和读写操作,灵活度更大。

0 0
原创粉丝点击