在CGFT大数据中,HBase与传统关系数据库是紧密相连的。下文是对两者的对比分析介绍,一起看看吧!
关系数据库发展到今天,已经是一种成熟稳定的数据库管理系统,通常具备的功能包括面向磁盘的存储和索引结构、多线程访问、基于锁的同步访问机制、基于日志记录的恢复机制和事务机制等。
HBase与传统的关系数据库的区别主要体现在以下几个方面:
1. 数据类型
关系数据库采用关系模型,具有丰富的数据类型和存储方式,HBase则采用了更加简单的数据模型。
2. 数据操作
关系数据库中包含了丰富的操作,如插入、删除、更新、查询等,其中会涉及复杂的多表连接,通常是借助于多个表之间的主外键关联来实现的。
3. 存储模式
关系数据库是基于行模式存储的,元祖或行会被连续地存储在磁盘页中。在去读数据时,需要顺序扫描每个元祖,然后,曹总筛选出查询所需要的属性。
4. 数据索引
关系数据库通常可以针对不同列构建复杂的多个索引,以提高数据访问性能。与关系数据库不同的是,HBase只有一个索引---行键,通过巧妙的设计,HBase中的所有方位方法,或者通过行键访问,或者通过行键扫描,从而使得整个系统不会慢下来。
5. 数据维护
在关系数据库中,更新操作会用zui新的当前值去替换记录中原来的旧值,旧值被覆盖后就不会存在。而在HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍然保留。
6. 可伸缩性
关系数据库很难实现横向扩展,纵向扩展的空间也比较有限,相反,HBase和bigtable这些分布式数据库就是为了实现灵活的水平扩展而开发的,能够轻易地通过在冀全中增加或者减少硬件数量来实现性能的伸缩。
但是,相对于关系数据库来说,HBase也有自身的局限性,如HBase不支持事务,因此,无法实现跨行的原子性。
