hive 表的创建的操作与测试
  TEZNKK3IfmPf 2023年11月12日 39 0

  • Hive 中创建表的三种方式,应用场景说明及练习截图
  • 内部表和外部表的区别,练习截图
  • 分区表的功能、创建,如何向分区表中加载数据、如何检索分区表中的数据,练习截图

一:hive HQL 的表操作:

1.1.1创建数据库:

 hive> create database yangyang;

hive 表的创建的操作与测试

 hive> desc database yangyang;

hive 表的创建的操作与测试

 删除数据库:
hive> drop database yangyang casecad; ----> casecad 表示有表也删除

1.1.2创建测试表:

emp表:

create table emp(
empno int,
ename string,
job string,
mgr int,
hiredate string,
sal double,
comm double,
deptno int
)
row format delimited fields terminated by '\t';

hive 表的创建的操作与测试

dept表:

create table dept(
deptno int,
dname string,
loc string
)
row format delimited fields terminated by '\t';

hive 表的创建的操作与测试

1.1.3 导入测试数据:

load data local inpath "/home/hadoop/emp.txt" into table emp;
load data local inpath "/home/hadoop/dept.txt" into table dept;


注释: --local表示本地
		--overwrite表示覆盖(默认情况使用的是append)
		一般要加上overwrite 表示覆盖

hive 表的创建的操作与测试 hive 表的创建的操作与测试

1.1.4 查看数据信息:

查看emp 表的信息
select * from emp;
desc  fromatted emp;

hive 表的创建的操作与测试 hive 表的创建的操作与测试 hive 表的创建的操作与测试

查看dept表:
select * from dept;

hive 表的创建的操作与测试 hive 表的创建的操作与测试 hive 表的创建的操作与测试

1.1.5 清空一个表:

truncate table emp;

hive 表的创建的操作与测试

1.1.6 重新命名一个表:

alter table emp rename to emp_bak;

hive 表的创建的操作与测试

1.1.7 hive 交互式登录:

bin/hive -e "select * from test01.dept;"

hive 表的创建的操作与测试

1.1.8 hive 执行sql 语句

bin/hive -f   可以执行编写的好的SQL 语句。
bin/hive -f 1.sql 

hive 表的创建的操作与测试

二:hive的数据表的类型:

2.1 hive 表的类型

hive 有三种表的类型:
    hive 的管理表也可以称为内部表: 默认表类型。
	   1.数据存放的MANAGED_TABLE 内部 
	   2.默认数据存储在仓库位置目录/user/hive/warehouse/下面,每创建一个库,就是一个目录,建表就会生成文件。
	   3.删除表的时候,也会删除HDFS上面的文件。
create table dept1(
deptno int,
dname string,
loc string
)
row format delimited fields terminated by '\t';
导入数据处理:
load data local inpath "/home/hadoop/dept.txt" into table dept1;

2.2 hive 的外部表

	     应用场景面对不同的业务,提取数据处理。
				业务1    业务2     业务3
				drop     select 	
		2.1.1 数据存放的MANAGED_TABLE 内部 
		2.1.2 一般我们会使用location去指定存放到其他位置
		2.1.3 删除表的时候,不会去删除HDFS上面的文体,只删除元数据
create table dept2(
deptno int,
dname string,
loc string
)
row format delimited fields terminated by '\t' location '/hive/dept2';
导入数据处理
load data local inpath "/home/hadoop/dept.txt" into table dept2;

2.3:hive的分区表

	   使用业务场景:
	      2.2.1 时间增量数据 
	      2.2.2 提高查询速度(核心)
	      2.2.3 一级分区、二级分区 partitioned by (date string,time string)
	      2.2.4 创建表时需要给定partitioned 处理 一般是 指定日期为string 类型。
create table emp3(
empno int,
ename string,
job string,
mgr int,
hiredate string,
sal double,
comm double,
deptno int
)
partitioned by (data string)
row format delimited fields terminated by '\t';
导入数据的时候要加上partitioned处理。
load data local inpath "/home/hadoop/emp.txt" into table emp3 partition (date='20150515');
查找可以用按 分区去查找
select * from emp3 where date='20150515';

2.4 hive 中 创建桶表:

create table emp4(
empno int,
ename string,
job string,
mgr int,
hiredate string,
sal double,
comm double,
deptno int
)
clustered by(empno) into 3 buckets
row format delimited fields terminated by '\t';

默认情况下load 加载时不分桶表:
强制设置分区:set hive.enforce.bucketing = true;
可以使用查询其它表加载到桶表,
插入数据: insert into emp4 select * from emp4;

hive> dfs -lsr /

hive 中的桶表数量如何去设置
评估数据量,保证每个桶的数据量block 的2倍大小

hive 表的创建的操作与测试

上传 文件到 分区表当中 没有带分区等相关信息 就需要修复分区表:

msck repair table emp3 ;

或者:

alter table emp3 add partition(date='20150515');
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月14日   21   0   0 Hive
  TEZNKK3IfmPf   2024年05月17日   37   0   0 drill
  TEZNKK3IfmPf   2023年11月14日   18   0   0 mysql
  TEZNKK3IfmPf   2023年11月14日   20   0   0 mysqlHive
  TEZNKK3IfmPf   2023年11月14日   32   0   0 数据库
  TEZNKK3IfmPf   2023年11月14日   31   0   0 Hive视图
  TEZNKK3IfmPf   2023年11月14日   20   0   0 hadoopHive
  TEZNKK3IfmPf   2024年04月26日   62   0   0 hadoopHive
  TEZNKK3IfmPf   2023年11月14日   165   0   0 mysql
TEZNKK3IfmPf