博主有没有关于hbase和gbase对比优略的介绍,就是分析两个数据库各自的优缺点与适用的场景的。
Hbase(NoSql数据库)
Hbase是基于hadoop存储的KV型的列式数据库;
Hbase不支持标准的SQL访问,只能通过API的方式,由应用程序集成API SDK进行访问,可以建表,针对表做数据的增、删、改、查;
Hbase不支持数据表之间的外键约束及连接查询,如需要多表连接关联查询,Hbase可以搭建好之后,定义宽表,将OLTP应用中的数据记录进行拼接整合在一起,然后对前提供快速的查询、聚合分析服务。
Hbase可以存储百亿行的数据,适合高并发的大流量的数据写入,由于是列式存储,对于OLAP通过某一些列的统计计算支持有很好的支持,支持实时的数据统计分析场景。
Gbase8a(关系型数据库、MPP数据库)
MPP Massively Parallel Processing 大规模并行处理,是一种计算处理模型,是从系统架构角度服务器分类的方法,是将任务并行的分散到多个服务器节点上,在每个节点上计算完成后,将各自部分的结果汇总到一起得到最终的结果。跟Hadoop计算模型类似)
专门支持海量数据的存储、关联查询、即席分析等能力,主要支持结构化的数据SQL查询;
适用场景主要是报表统计分析,运维数据统计,快速生成报表统计等场景;不需要频繁更新数据,不需要频繁重复离线计算,不需要并发大;
hbase是列式数据库,hbase也是用于实时查询的,所以比一般的hadoop要快,当然了,他也是建立在hadoop上的。
hbase是很多行组成一个region,每个region有一个rowkey(类似于rowid),这个rowkey可以自己定义,根据这个rowkey,可以实现最快速的定位。但:
1、hbase还是在多行集合的内部,实现的列单独存储。所以要定位某个非rowkey,还是要启动所有的服务器来查找每个region内的某列的。
2、没有列压缩,起码我没有找到这方面的资料。前面说了,列压缩可以实现减小体积,减小硬盘I/O,加快检索速度。
gbase 8a MPP,是国产的一个列式并行数据库。优点:
1、纯列式,每个列在操作系统内,都是单独的文件,你可以看到的,所以检索是势必减少I/O。
2、列式压缩。有很多种压缩方式,如NULL不实际存,只在包头内标注;多行连续一样时,可以只存一次,减小了体积。
3、粗粒度索引。包头上注明了此列包,最大值和最小值是什么,如果你查的东西不在此列,则直接跳过此包。
4、安装、维护极简单。由于不建立在hadoop上,所以虽然是安装在linux上,但即使不会linux的人,看了说明书,5分钟就可上手安装,连ssh都不用配,再5分钟就可安装完毕。因为有粗粒度索引,所以连数据优化工程师都可以免了,比oracle简单太多了。懒人的福音,当然如果懂得原理更多,速度也会有更好的优化。
5、可以建立全文索引!
缺点:
1、只支持哈希索引。
2、sql语句虽然支持的非常丰富,但在复杂查询时,后台的查询语句顺序,不是你想象的那样,甚至出现排序速度比不排序速度快的情况。
3、导入数据较困难。虽然可可以支持kettle,但总体上讲,导入数据还是需要有很多技巧的,上手慢。