让你快速了解MySQL,hive和hbase

Posted 信和研究院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了让你快速了解MySQL,hive和hbase相关的知识,希望对你有一定的参考价值。

相信很多分对于mysql来说都不陌生,知道它是一个开源关系型数据库,但是又有多少人了解hive和hbase。

MySQL:常用的关系型数据库,主要面向OLTP,支持事物,支持SQL,支持主从、group replication架构模型。可以简单的把“关系型”可以理解为“表格”的概念,一个关系型数据库由一个或数个表格组成。
Apache hive : 是部署在Hadoop集群上的数据仓库工具。是为简化编写MapReduce程序而生的,主要用来并行分布式处理大量数据。。Hive本身不存储数据和计算数据,它完全依赖与HDFS和MapReduce,hive中的表纯逻辑,就是些表的定义,也就是表的元数据。

Apache hbase : 是一种key/value系统,是一个分布式的、列式存储的非关系型数据库。HDFS为hbase提供可靠的底层数据存储服务,MapReduce为hbase提供高性能的计算能力,zookeeper为hbase提供稳定的服务和Failover机制。HBase的查询效率很高,主要由于查询和展示结果。


     MySQL的优势是什么?


MySQL是一个轻量级的通用关系型数据库,具有稳定、易安装、易使用、高性能等特点,可配合架构进行扩展,配合成熟的架构,它的扩展性不是问题。MySQL低成本,高效能,能稳定的处理大数据。


hbase的几个特点:



她们习惯性地将自己的思想自己的情感自己悲伤隐藏,不为他人所知。而这层厚重的外壳就像她们的保护壳,保护着他们的所有故事过往所有喜乐悲欢。


海量存储

Hbase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。这与Hbase的极易扩展性息息相关。正式因为Hbase良好的扩展性,才为海量数据的存储提供了便利。


列式存储

这里的列式存储其实说的是列族存储,Hbase是根据列族来存储数据的。列族下面可以有非常多的列,列族在创建表的时候就必须指定。为了加深对Hbase列族的理解,下面是一个简单的关系型数据库的表和Hbase数据库的表:


RDBMS的表

RDBMS

Primary key

Column1

Column2

...

ColumnN

记录1

xxx

xxx

...

xxx

记录2

xxx

xxx

...

xxx

记录3

xxx

xxx

...

xxx


Hbase的表

Hbase

RowKey

CF1

CF2

记录1

1

2

...

n

1

2

...

n

记录2

1

2

...

n

1

2

...

n


hbaseRDBMS关系

DIFF

Hbase

RDBMS

数据类型

字符串

丰富的数据类型

数据操作

简单增删改查

丰富SQL支持

存储模式

列存储

行存储

数据保护

保留

替换

可伸缩性


极易扩展

Hbase的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩展(HDFS)。

通过横向添加RegionSever的机器,进行水平扩展,提升Hbase上层的处理能力,提升Hbsae服务更多Region的能力。

备注:RegionServer的作用是管理region、承接业务的访问,这个后面会详细的介绍通过横向添加Datanode的机器,进行存储层扩容,提升Hbase的数据存储能力和提升后端存储的读写能力。


稀疏

稀疏主要是针对Hbase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。

 

Hive的优势:

Hive不仅提供了一个熟悉SQL的用户所能熟悉的编程模型,还消除了大量的通用代码,甚至是那些有时不得不使用Java编写的令人棘手的代码。Hive帮助熟悉SQL的人运行MapReduce任务。这也是为什么hive对于Hadoop是如此重要的原因。Hive让你花费相当少的经理就能完成大量的工作。

Hive还有不同的存储类型,例如,纯文本文件、HBase 中的文件。hive内置大量用户函数UDF 来操作时间、字符串和其他的数据挖掘工具,支持用户扩展UDF 函数来完成内置函数无法实现的操作。它也可以直接使用存储在Hadoop 文件系统中的数据。

 

可以把hive简单的看作是分布式的关系型数据库,但是它跟常用关系型数据库又有些不同,Hive不支持常规的SQL更新语句,如:数据插入,更新,删除。因为其对数据的操作是针对整个数据表的。同时该特点也使得数据查询用时以数分钟甚至数小时来进行计算。通过下表可以看出Hive和常用关系型数据库的不同之处:



Hive

RDBMS

查询语言

HQL

SQL

数据库的存储位置

HDFS

Raw DeviceLocal FS

数据格式

用户定义

系统决定

数据更新

不支持

支持

索引

执行

MapReduce

Executor

执行可延迟

可扩展性

数据规模


小结:Hive与HBase两者是基于Hadoop上不同的技术。Hive是一种能执行MapReduce作业的类SQL编程接口,Hbase是一种非关系型的数据库结构。Hive可以用来进行统计查询,HBase可以用来进行实时查询,MySQL,hive和hbase之间的数据可以互导。


信和研究院

智力于打造金融科技

领域高影响力智库组织

长按二维码关注




以上是关于让你快速了解MySQL,hive和hbase的主要内容,如果未能解决你的问题,请参考以下文章

HBase与Hive集成

2min快速了解,Hive内部表和外部表

Hadoop基础之《(11)—整合HBase+Phoenix+Hive—安装Hive》

怎样学习大数据?

大数据如何入门

快速了解HIVE文件存储格式