Hive学习之分区表心得

hive中的分区主要是分目录,把一个大的数据集根据业务需要分割成小的数据集

一、静态分区

1.创建分区表:

	建表语句后加入 partitioned by ( day string )

2.加载数据到分区表:

	加载数据语句最后加上 partition(day='20220403')
	分区表记载数据的时候必须指定分区

3.查询单分区数据:

	可以在 wehre 语句后加 分区信息 day='20220403'

4.多分区查询:

	可以用 union 连接

5.增加分区:

	alter table 表名 add partition(day='20200404') ;
    alter table 表名 add partition(day='20200405') partition(day='20200406');

6.删除分区:

	alter table 表名 drop partition(day='20200404') ;
 	alter table 表名 drop partition(day='20200405') partition(day='20200406');

7.查看分区表里分区个数:

	show partitions 表名;

8.查看分区表结构:

	desc formatted 表名;

9.二级分区:

    建表:建表语句后加入  partitioned by ( day string , hour string)
    加载数据:加载数据语句最后加上  partition(day='20220403',hour='12')

10.让分区表与数据相关联的三种方法(把数据直接上传到分区目录,元数据并未更改):

    1.上传数据后执行修复命令:msck repair table 表名;
    2.上传数据后执行添加分区:alter table 表名 add partition(); 
    3.创建文件夹后load数据到分区

二、动态分区

1.开启动态分区功能:

 	hive.exec.dynamic.partition=true

2.设置为非严格模式:

 	hive.exec.dynamic.partition.mode=nonstrict

3.在所有执行的MR节点上设置创建最大动态分区个数:

	hive.exec.max.dynamic.partitions=个数

4.在每个执行MR的节点上,最大可以创建多少个动态分区(分区数比字段数要大):

	hive.exec.max.dynamic.partitions.pernode=个数

5.整个MR Job中,最大可以创建的HDFS文件个数(默认100000):

	hive.exec.max.created.files=100000

6.空分区生成时,是否抛出异常(默认 false):

	hive.error.on.empty.partition=false
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顺其自然的济帅哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值