属于hadoop,支持sql
一.什么是Hive?
1、Hive是一个翻译器,SQL ---> Hive引擎 ---> MR程序
2、Hive是构建在HDFS上的一个数据仓库(Data Warehouse)
Hive HDFS
表 目录
分区 目录
数据 文件
桶 文件
3、Hive支持SQL(SQL99标准的一个自子集)
二.Hive的体系结构
三.Hive的配置模式
1.嵌套模式
(*)不需要MySQL的支持,使用Hive的自带的数据库Derby
(*)局限:只支持一个连接
(*) 保存的数据在本地(但还是要启动hadoop)
初始化Derby数据库
schematool -dbType derby -initSchema
2.远程模式(本地模式也分到这里)
(*) 保存的数据在hdfs上
(*) 需要安装mysql
(*)将mysql的jar包放到lib目录下
注意一定要使用高版本的MySQL驱动(5.1.43以上的版本)
初始化:schematool -dbType mysql -initSchema
四.Hive的数据模型
1、内部表:相当于MySQL的表 对应的HDFS的目录 /user/hive/warehouse
2、分区表: 可以提高查询的效率的----> 通过查看SQL的执行计划
3、外部表
4、桶表: 桶是一个文件
5、视图:view 虚表
(1) 视图不存数据 视图依赖的表叫基表
(2) 操作视图 跟操作表 一样
(3) 视图可以提高查询的效率吗?
不可以、视图是简化复杂的查询
五.Hive的查询:就是SQL:select ---> MapReduce
六.Hive的Java API:本质就是JDBC程序
七.Hive的自定义函数(UDF:user defined function):本质就是一个Java程序