Hive创建分区表常用指令

简介: Hive创建分区表常用指令

创建分区表

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

加载数据到分区表中

load data local inpath '/opt/module/datas/dept.txt' into table dept_partition partition(month='201709');

查询分区表中数据

select * from dept_partition where month='201709';

多表联合查询

select * from dept_partition where month='201709'
union
select * from dept_partition where month='201708'
union 
select * from dept_partition where month='201707';

增加分区

alter table dept_partition add partition(month='201706');

同时增加多个分区

alter table dept_partition add partition(month='201705') partition(month='201704');

删除分区

alter table dept_partition drop partition(month='201704');

同时删除多个分区

alter table dept_partition drop partition(month='201705'),partition (month='201706');

查看分区表有多少分区

show partitions dept_partition;

创建二级分区表

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

加载数据到二级分区

load data local inpath '/opt/module/data/text' into table dept_partition2 partition(month='201709',day='13');

查询分区数据

select * from dept_partition2 where month='201709' and day='13';

分区表和数据管关联

如果首先用hadoop fs -mkdri 创建分区文件夹,然后-put文件,不会查询到,原因是因为mysql上没有元数据信息,alter添加分区和load data会自动创建元数据
• 1
不一定是分区表,普通的表也同理
hadoop fs -mkdir /user/hive/warehouse/stu3
hadoop fs -put /opt/data/test /user/hive/warehouse/stu3
这样查询表不会查询到数据,而且表也没有,因为在Mysql上没有元数据信息
只需要重新建立这张表就好
create table if not exists(
id int);
这就会将元数据与现在的文件夹与数据相关联

1、上传数据后修复

msck repair table dept_pattition2

2、上传数据后添加分区

# 相当于上面的建表操作,都是为了在Mysql上有元数据
alter table dept_pattition2 add partition(month='201709',day='11');

3、创建文件夹后load数据到分区

# load data会自动关联元数据
load data local inpath '/opt/module/data/test' into table dept_partition2 partition(month='201709',day='10');


目录
相关文章
|
1月前
|
SQL 存储 Oracle
【赵渝强老师】Hive的分区表
Hive的分区表与Oracle、MySQL类似,通过分区条件将数据分隔存储,提高查询效率。本文介绍了静态分区表和动态分区表的创建与使用方法,包括具体SQL语句和执行计划分析,附带视频讲解。静态分区表需显式指定分区条件,而动态分区表则根据插入数据自动创建分区。
117 1
|
SQL 存储 分布式计算
Hive学习---5、分区表和分桶表
Hive学习---5、分区表和分桶表
|
7月前
|
SQL 存储 传感器
Hive中的分区表和非分区表有什么区别?请解释其作用和使用场景。
Hive中的分区表和非分区表有什么区别?请解释其作用和使用场景。
234 0
|
SQL 文件存储 数据库
Hive分区表的新增字段数据为null的问题解决方法
Hive分区表的新增字段数据为null的问题解决方法
353 0
|
SQL 存储 数据采集
Hive 分区表和分桶表
Hive 分区和分桶的区别
173 0
|
SQL 大数据 Apache
Apache Hive--DDL--创建表--分区表创建| 学习笔记
快速学习 Apache Hive--DDL--创建表--分区表创建
115 0
Apache Hive--DDL--创建表--分区表创建| 学习笔记
|
SQL 分布式计算 Hadoop
Hive分区表简介
如果一个表中数据很多,我们查询时就很慢,耗费大量时间,如果要查询其中部分数据该怎么办呢,这时我们引入分区的概念。 Hive中的分区表分为两种:静态分区和动态分区。
271 0
|
SQL 存储 数据库
hive分区表
Partition 对应于数据库的 Partition 列的密集索引 在 Hive 中,表中的一个 Partition 对应于表下的一个目录,所有的 Partition 的数据都存储在对应的目录中 例如: test表中...
1196 0
|
SQL HIVE 关系型数据库
|
SQL HIVE 网络安全