前言
1.hive简介
1.1 hive组件与相应功能:
1.2 hive的表类型
1.3 分区表
1.3 分隔符
1.4 hive的数据存储
2.数据类型
2.1 基本数据类型
2.1 复杂数据类型
2.3 NULL
3.基本操作
3.1 数据库操作
3.2 表操作
3.3 视图
3.4 数据导入导出
3.hsql
3.1 hsql基本操作
3.2 hive内置函数
3.2 自定义函数
3.3 注册函数
4.hive权限管理
4.1 权限简介
4.2 权限分类
4.3 授权管理
5.hive优化
1.hive简介
1.1 hive组件与相应功能:
1.2 hive的表类型
1.3 分区表
1.3 分隔符
1.4 hive的数据存储
2.数据类型
2.1 基本数据类型
2.1 复杂数据类型
2.3 NULL
3.基本操作
3.1 数据库操作
3.2 表操作
3.3 视图
3.4 数据导入导出
3.hsql
3.1 hsql基本操作
3.2 hive内置函数
3.2 自定义函数
3.3 注册函数
4.hive权限管理
4.1 权限简介
4.2 权限分类
4.3 授权管理
5.hive优化
前言
本手册介绍了hive的基本知识及工作中要注意的要点,适用于hive入门.开发人员请关注hive表操作以及UDF.
1.hive简介
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
1.1 hive组件与相应功能:
- CLI
hive命令行工具,用于执行sql等. - beeline
功能等同于CLI,区别是beeline通过hiveserver2提交请求 - hive metatstore
hive元数据管理服务,客户端工具连接metastroe使用元数据 - hiveserver2
hiveserver2为应用程序提供JDBC接口,例如beeline - hcatalog
hive元数据接口模块
1.2 hive的表类型
- 内部表
内部表:通过指定的元数据格式创建的表,可以指定存储位置存储格式等,完全由hive来管理.删除内部表时同时删除表数据.当前用sqoop导入的数据都是内部表.
- 外部表
外部表:hdfs上的数据,hive只是对数据做元数据映射来创建表.删除外部表不会删除数据.
1.3 分区表
hive支持分区表,在查询时指定分区字段可以过滤无用分区.分为静态分区和动态分区.
静态分区:
静态分区:指手动创建的分区.在创建表时需要额外
指定分区键,如:create external table if not exists cheap_hotel_user(device string, booking_freq int, book_price string) partitioned by (day string);
或者通过alter table来添加分区:
ALTER TABLE table_name ADD PARTITION (partCol = 'value1') location 'loc1';
动态分区:
动态分区:可以根据指定字段的值自动创建分区(参考ORACLE的数据自动插入到对应分区).默认不开启动态分区,需要修改参数hive.exec.dynamic.partition实现,动态分区上限为10000个.
1.3 分隔符
- 字段分隔符
默认是