让你快速了解MySQL,hive和hbase
Posted 信和研究院
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了让你快速了解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 |
hbase和RDBMS关系
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 Device或Local FS |
数据格式 |
用户定义 |
系统决定 |
数据更新 |
不支持 |
支持 |
索引 |
无 |
有 |
执行 |
MapReduce |
Executor |
执行可延迟 |
高 |
低 |
可扩展性 |
高 |
低 |
数据规模 |
大 |
小 |
小结:Hive与HBase两者是基于Hadoop上不同的技术。Hive是一种能执行MapReduce作业的类SQL编程接口,Hbase是一种非关系型的数据库结构。Hive可以用来进行统计查询,HBase可以用来进行实时查询,MySQL,hive和hbase之间的数据可以互导。
信和研究院
智力于打造金融科技
领域高影响力智库组织
长按二维码关注
以上是关于让你快速了解MySQL,hive和hbase的主要内容,如果未能解决你的问题,请参考以下文章