一、Hive数据库

hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive十分适合对数据仓库进行统计分析。

二、MySQL数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。

三、Hive数据库与MySQL数据库比较

1、查询语言

Hive是hql语言,MySQL是sql语句;

2、数据存储位置

Hive是把数据存储在hdfs上,而MySQL数据是存储在自己的系统中;

3、数据格式

Hive数据格式可以用户自定义,MySQL有自己的系统定义格式;

4、数据更新

Hive不支持数据的改写和添加,是在加载的时候就已经确定好了;MySQL数据库可以CRUD;

5、索引

Hive没有索引,因此查询数据的时候是通过mapreduce很暴力的把数据都查询一遍,也造成了Hive查询数据速度很慢的原因,但是底层是MR,并行计算,适用于大数据量;而MySQL有索引,适合在线查询数据;

6、延迟性

Hive延迟性高,原因就是上边一点所说的,而MySQL延迟性低;

7、数据规模

Hive存储的数据量超级大,而MySQL只是存储一些少量的业务数据;

8、底层执行原理

Hive底层是用的mapreduce,而MySQL是excutor执行引擎;

9、可扩展性

Hive:大数据量,扩展性强;MySQL:相对就很少了