文章目录
- 前言
- 一、Hive数据库和表操作
- (一)数据库操作
- 1. 创建数据库
- 2. 删除数据库
- (二)数据表操作
- 1. 内部表和外部表的操作
- 1.1 内部表操作
- 1.2 外部表操作
- 2. 复杂类型操作
- 2.1 Array类型
- 2.2 map类型
- 2.3 struct类型
前言
#博学谷IT学习技术支持#
一、Hive数据库和表操作
(一)数据库操作
1. 创建数据库
1.1 在HDFS的默认Hive存储目录创建数据库
1.2 创建数据库并使用Location关键字指定HDFS存储位置
2. 删除数据库
2.1 删除一个空的数据,如果该数据库下存在数据表,则会报错
2.2 强制删除数据库,如果数据库下存在表,则连同数据表一起删除
(二)数据表操作
1. 内部表和外部表的操作
1.1 内部表操作
没有被external修饰的是内部表,删除内部表会直接删除元数据及存储数据,因此内部表不适合和其他工具共享数据
- 创建内部表
- 创建表并指定字段之间的分隔符,指定字段之间用“\t”分隔
- 根据查询结果创建表
- 根据已经存在的表结构创建表
- 删除表
1.2 外部表操作
在创建表的时候通过指定external关键字创建外部表,外部表因为是指定其他的hdfs路径的数据加载到表当中来,所以hive表会认为自己不完全独占这份数据,所以删除hive外部表的时候,数据仍然存放在hdfs当中,不会删掉。
- 数据装载命令Load
Load命令用于将外部数据加载到Hive表中
1、load data:表示加载数据
2、local:表示从本地加载数据到hive表;否则从HDFS加载数据到hive表
3、inpath:表示加载数据的路径
4、overwrite:表示覆盖表中已有数据,否则表示追加
5、into table:表示加载到哪张表
6、student3:表示具体的表
7、partition:表示上传到指定分区
2. 复杂类型操作
2.1 Array类型
Array是数组类型,Array中存放相同类型的数据;
说明:name与locations之间制表符\t分隔,locations中元素之间逗号分隔
- 导入数据
Load方法支持从本地以及HDFS上导入数据
- 常用查询
2.2 map类型
map就是描述key-value数据
说明:字段与字段分隔符: “,”;需要map字段之间的分隔符:“#”;map内部k-v分隔符:“:”
- 导入数据
- 常用查询
2.3 struct类型
说明:字段之间#分割,第二个字段之间冒号分割
- 导入数据
- 常用查询