初步学习hive的笔记

时间:2021-09-19 00:19:39
数据分析引擎:Hive
属于hadoop,支持sql
一.什么是Hive?
1、Hive是一个翻译器,SQL ---> Hive引擎  ---> MR程序
2、Hive是构建在HDFS上的一个数据仓库(Data Warehouse)
Hive       HDFS
表         目录
分区       目录
数据       文件
桶         文件

3、Hive支持SQL(SQL99标准的一个自子集)

二.Hive的体系结构

初步学习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程序