HiveQL:数据定义
实验目的
- 掌握应用HiveQL创建数据库
- 掌握应用HiveQL创建表
- 掌握应用HiveQL创建视图
- 硬件环境要求
实验环境
PC机至少4G内存,硬盘至少预留50G空间。
- 软件要求
已安装并启动Hadoop
已安装并启动Hive
实验要求
- 应用HiveQL创建数据库
- 应用HiveQL创建表
- 应用HiveQL创建视图
实验步骤
第5章 HiveQL:数据定义
1 应用HiveQL创建数据库
1.1 进入Hive命令模式:
实验操作演示:
所用命令或代码:
# hive
1.2 创建数据库hive
实验操作演示:
所用命令或代码:
hive> create database hive;
如果hive数据库已经存在,则会抛出异常,可以加上if not exists关键字,则不会抛出异常。
hive> create database if not exists hive;
1.3 查看创建好的数据库
实验操作演示:
所用命令或代码:
hive> show databases;
1.4 使用创建好的数据库
实验操作演示:
所用命令或代码:
hive>use hive;
2 应用HiveQL创建表
2.1 在hive数据库中,创建表usr,含三个属性id,name,age
实验操作演示:
所用命令或代码:
hive>create table if not exists usr(id bigint,name string,age int);
2.2 创建表时定义分隔符
所使用命令:
# create table employee (id int,name string,salary int,position string) row format delimited fields terminated by '\t' ;
2.3 复制表
2.3.1 复制表结构和数据
所使用命令:
# create table employee2 as select * from employee ;
查询结果:
2.3.2 复制表结构
所使用命令:
# create table employee3 like employee;
查询结果:
2.4 创建分区表
分区表可以从目录的层面控制搜索数据的范围。
2.4.1 创建分区表
所使用命令:
# CREATE TABLE t(id int,name string,age int) PARTITIONED BY (Year INT, Month INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ;
2.4.2 添加分区,创建目录
# alter table t add partition (year=2014, month=11) partition (year=2014, month=12);
2.4.3 显式表的分区信息
所使用命令:
# SHOW PARTITIONS t;
2.4.4 删除分区
所使用命令:
# ALTER TABLE t DROP IF EXISTS PARTITION (year=2014, month=12);
2.5 查看分区结构
如上图所示:
/user/hive/warehouse/hive.db/t/year=2014/month=11
/user/hive/warehouse/hive.db/t/year=2014/month=12
所使用命令:
# dfs -lsr /;
2.6 查看表结构
所使用命令:
# desc employee;
3 应用HiveQL创建视图
3.1 创建视图little_usr,只包含usr表中id,age属性
实验操作演示:
所用命令或代码:
hive>create view little_usr as select id,age from usr;
3.2 查看数据库hive中所有表和视图
实验操作演示:
所用命令或代码:
hive> show tables;
3.3 查看数据库hive中以u开头的所有表和视图
实验操作演示:
所用命令或代码:
hive> show tables in hive like 'u*';
总结与提高
- 提高学生的动手操作能力,使用HiveQL创建数据库、创建表和视图。