一、Hive数据库/表定义操作
Hive DDL操作常用命令:
create、drop、alter、truncate、show、describe
1. truncate与delete的区别
在Hive中,truncate语句与delete语句都是用于删除表中的数据,但是它们之间有几个重要的区别。
- 执行速度:与delete语句不同,truncate语句删除数据的速度更快,因为它是通过删除表的所有数据来实现删除操作的。而delete句是逐行删除表中的数据,所以速度要比truncate慢得多。
- 清空方式 :truncate语句删除表中的数据时,它会清空整个表,包括表的结构。而delete语句是逐行删除表中的数据,不会影响表结构。
- 操作级别 :delete语句是一种DML语句,用于在表中删除或更新数据。而truncate语句是一种DDL语句,用于删除表中的所有数据。
2. Hive DDL操作
- 数据库操作:create database_name
- 修改数据库:alter database_name
- 删除数据库:drop database_name
- Hive DDL其他操作
3. Hive DML操作
①分区
create table if not exits emp_partitioned(
......
)
指定分区键‘year’
partitioned by (year int)
row format delimited
fields terminated by '|'
map keys terminated by ':'
stored as textfile
--装载数据至表分区“year=2018”
load data inpath '/user/hadoop/employee/employee.txt'
into table emp_partitioned partition(year=2018);
②分桶
create table if not exits emp_name_buckets(
......
)
--创建分桶
clustered by(name) into 2 buckets
row format delimited
fields terminated by '|'
collection items terminated by ','
map keys terminated by ':'
stored as textfile;
--强制分桶
set hive.enforce.bucketing = true
--使用emp表的数据进行插入
insert into table emp_name_buckets select * from emp;