暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

浅谈大数据仓库Hive与关系型数据库MySQL

Linux与数据库自学之道 2021-04-26
1853
更多精彩,请点击上方蓝字关注我们!


数据库 Database (Oracle, Mysql, PostgreSQL)主要用于事务处理,数据仓库 Datawarehouse ( Hive)主要用于数据分析

 

mysql数据库



(1)关系型数据库的一种
(2)存储数据和检索数据
(3)存储表的数据量不大
(4)将复杂的数据结构归结为简单的二元关系(即二位表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格之上,通过对这些关联的表格进行分类、合并、连接或选取等运算来实现对数据的管理。其存储形式实际上采用的就是二维表格形式 
(5)在保持数据安全和数据一致性方面很强,遵循ACID理论        




mysql数据库底层架构


 


mysql数据库查询过程



 1> 客户端向 MySQL 服务器发送一条查询请求
2> 服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果,否则进入下一阶段
3> 服务器进行 SQL解析、预处理、再由优化器生成对应的执行计划
4> MySQL 根据执行计划,调用存储引擎的 API来执行查询
5> 将结果返回给客户端,同时缓存查询结果    



1

 

hive数据仓库

(1)是由Facebook开源用于解决海量结构化日志的数据统计
(2)是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能
   在执行hive查询语句或数据处理需要搭建好Hadoop环境
   至于环境的搭建,上官网!!!
(3)hive处理的数据存储在HDFS上
(4)hive分析数据底层的默认实现是MapReduce
(5)执行程序运行在yarn上
(6)其本质就是将HQL转化成MapReduce程序 


hive的优点:
(1)操作采用类SQL语法,简单,容易上手,快速开发
(2)避免了写复杂的MapReduce
(3)hive的执行延迟比较高,常用于数据分析,对实时性要求不高的场合
   延迟高(对于大数据的处理依然体现出优势):
     1)没有索引,需要扫描整张表
     2)MapReduce框架
(4)hive支持用户自定义函数,根据需求定义函数 


hive的缺点:
(1)迭代式算法无法表达,无法反复对结果进行处理
(2)数据挖掘方面不擅长
(3)hive自动生成的MapReduce作业,不够智能化
(4)调优比较困难,粒度较粗      



 

hive数据仓库架构




(1)用户创建数据库、表信息,存储在hive的元数据中(表名、表所属的数据库、表的拥有者、列|分区字段、表的类型、表数据所在目录)。元数据默认存储在自带的derby数据库中,但推荐存储在mysql中。


(2)向表中加载数据,元数据记录HDFS文件路径与表之间的映射关系(真实数据存储在HDFS上)


(3)执行查询语句,经过解析器、编译器、优化器、执行器将指令翻译成MapReduce,提交到yarn上执行。最后将执行结果输出到用户交互接口。

 

解析器:将sql字符串转换成抽象语法书AST,这一步一般用第三方工具库完成,如antlr,对AST进行语法分析,比如表是否存在,字段是否存在,sql语义是否有误

编译器:将AST编译生成逻辑执行计划

优化器:对逻辑执行计划进行优化

执行器:将逻辑执行计划转化成可以执行的物理计划(MR)





hive数据仓库与mysql的区别


(1)关系型数据库用SQL,hive用HQL
(2)hive的数据都是存在HDFS中的,而数据库则保存在块设备或本地文件系统中
(3)hive是读多写少的,数据库中的数据通常是需要进行修改的
(4)hive由于没有索引,暴力全表扫描,因此访问延迟较高。由于MR的引入,hive可以并行访问数据。hive不适合在线查询数据
   mysql数据库有很高的效率,较低的延迟
(5)
hive中大多数的查询的执行是通过MR实现的,而mysql有自己的执行引擎
(6)hive是建立在hadoop之上的(能扩展的DataNode及NameNode)。而mysql数据库由于ACID语义的严格限制,扩展行非常有限。
(7)数据规模:hive支持大规模数据,数据库支持的数据规模较小



mysql数据库及hive数据仓库的Linux环境的搭建,后期详解。推荐官网!!!


Linux Shell 编程特殊符号详解

◆ 再谈重定向

◆ 详解Linux正则

◆ Python正则知多少

◆ Linux三剑客之grep

◆ Linux三剑客之sed详解(1)

◆ linux三剑客之sed详解(2)

◆ 小白入门awk必备

◆ 你所不知道的awk内建函数




 

 



文章转载自Linux与数据库自学之道,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论