- Hive是一个SQL解析引擎,将SQL语句转译成MapReduce Job Hive SQL编译过程
- Hive中的表是纯逻辑表,只是表的定义,即表的元数据。本质就是Hadoop的目录/文件,达到了元数据与数据存储分离的目的
- Hive本身不存储数据,它完全依赖HDFS和MapReduce
Hive和MySQL(传统关系型数据库)的区别
1.查询语言不同:Hive是hql语言,MySQL是sql语句
2.数据存储位置不同:Hive是把数据存储在HDFS上,而MySQL数据是存储在本地系统
3.数据格式:Hive数据格式可以用户自定义,MySQL由系统决定
4.数据更新:Hive不支持数据更新,只可以读,而sql支持数据更新
5.索引:Hive没有索引,因此查询数据的时候是需要扫描所有数据,也造成了Hive查询数据速度很慢的原因(在0.8版本后加入位图索引),而MySQL有索引
6.延迟性:Hive延迟性高,而MySQL延迟性低
7.数据规模:Hive存储的数据量超级大,而MySQL只是存储一些少量的业务数据
8.底层执行原理:Hive底层是用的MapReduce,而MySQL是excutor执行器
Hive架构
Hive的基本组成
用户接口:包括 CLI、JDBC/ODBC、WebGUI
元数据存储:通常是存储在关系数据库如MySQL,derby中
语句转换:解释器、编译器、优化器、执行器
用户接口主要由三个:CLI、JDBC/ODBC和WebGUI。其中,CLI为shell命令行;JDBC/ODBC是Hive的JAVA实现,与传统数据库JDBC类似;WebGUI是通过浏览器访问Hive。
元数据存储:Hive 将元数据存储在数

本文介绍了Hive作为SQL解析引擎的工作原理,对比了Hive与MySQL的区别,包括查询语言、数据存储、数据更新等方面。同时,详细阐述了Hive的架构,包括用户接口、元数据存储和执行流程。此外,还探讨了Hive数据存储的位置以及内部表、外部表、分区和桶的概念。
最低0.47元/天 解锁文章
1874

被折叠的 条评论
为什么被折叠?



