设为首页 加入收藏

TOP

greenplum 与 hbase的区别
2019-02-15 13:48:24 】 浏览:90
Tags:greenplum hbase 区别
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tao_wei162/article/details/84830583

hadoop的hdfs支持海量数据量存储 mapreduce支持对海量数据的分布式处理
oracle虽然可以搭建集群 但是当数据量达到一定限度之后查询处理速度会变得很慢 且对机器性能要求很高
其实这两个东西不是同类 hadoop是一个分布式云处理架构,倾向于数据计算 而oracle是一个关系型数据库,倾向于数据存储。要说比较可以比较hbase与oracle。
hbase是一种nosql数据库,列式数据库,支持海量数据存储,支持列的扩展,但是查询操作较复杂,不如oracle这类关系型数据库简单,且只支持一个索引,但是Hbase在表结构设置合理情况下,查询速度跟数据量大小没有太大关系,即数据量的大小不会影响到查询速度,顺便说句Hbase查询速度可以达到ms级

HBASE可以做实时数据查询,而且效率很高

但要注意以下几点
1、HbaseTable的ROWKEY设计要合理
2、HbaseTable的INDEX需要自己创建(利用协处理器,或利用MAPREDUCE异步建立索引)
3、Hbase不能直接用SQL查询,但可以使用开源SQL项目解决部分问题,比如phoenix
参考https://github.com/forcedotcom/phoenix
phoenix是基于0.92版本后的协处理器运行的,解决利用SQL在HBASE上执行聚合命令的问题
比如SUM\AVG\COUNT\MAX\MIN等
还包括LIMIT\SORT等操作
但是目前phoenix目前还不支持JOIN操作,也不支持创建INDEX,此类方法任然需要自己实现。
我个人推荐自定义ENDPOINT(放弃SQL),自定义钩子可以直接绑定到phoenix创建出来的表上

4、HBASE本身并不适合做为BI,需要通过MAPREDUCE定制业务。

百万级的数据,无论侧重OLTP还是OLAP,当然就是MySql了。
过亿级的数据,侧重OLTP可以继续Mysql,侧重OLAP,就要分场景考虑了

实时计算场景:强调实时性,常用于实时性要求较高的地方,可以选择Storm;
批处理计算场景:强调批处理,常用于数据挖掘、分析,可以选择Hadoop;
实时查询场景:强调查询实时响应,常用于把DB里的数据转化索引文件,通过搜索引擎来查询,可以选择solr/elasticsearch;
企业级ODS/EDW/数据集市场景:强调基于关系性数据库的大数据实时分析,常用于业务数据集成,可以选择Greenplum;

数据库系统一般分为两种类型:
一种是面向前台应用的,应用比较简单,但是重吞吐和高并发的OLTP类型;
一种是重计算的,对大数据集进行统计分析的OLAP类型。

传统数据库侧重交易处理,即OLTP,关注的是多用户的同时的双向操作,在保障即时性的要求下,系统通过内存来处理数据的分配、读写等操作,存在IO瓶颈。
OLTP(On-Line Transaction Processing,联机事务处理)系统也称为生产系统,它是事件驱动的、面向应用的,比如电子商务网站的交易系统就是一个典型的OLTP系统。OLTP的基本特点是:
数据在系统中产生;
基于交易的处理系统(Transaction-Based);
每次交易牵涉的数据量很小;
对响应时间要求非常高;
用户数量非常庞大,主要是操作人员;
数据库的各种操作主要基于索引进行。

分析型数据库是以实时多维分析技术作为基础,即侧重OLAP,对数据进行多角度的模拟和归纳,从而得出数据中所包含的信息和知识。
OLAP(On-Line Analytical Processing,联机分析处理)是基于数据仓库的信息分析处理过程,是数据仓库的用户接口部分。OLAP系统是跨部门的、面向主题的,其基本特点是:
本身不产生数据,其基础数据来源于生产系统中的操作数据(OperationalData);
基于查询的分析系统;
复杂查询经常使用多表联结、全表扫描等,牵涉的数据量往往十分庞大;
响应时间与具体查询有很大关系;
用户数量相对较小,其用户主要是业务人员与管理人员;

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Hbase1.2.5   hadoop2.7.3.. 下一篇java 代码操作hbase 问题,以及怎..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目