hive动态分区

本文介绍了Hive分区的概念,对比了与传统数据库分区的区别,并详细讲解了静态分区和动态分区的创建、数据加载过程。重点阐述了动态分区的便利性和注意事项,包括启用动态分区的参数设置,强调了动态分区模式的潜在性能影响。
摘要由CSDN通过智能技术生成

一、hive的分区

1. hive的分区 VS 传统关系型数据库分区

参考:https://www.cnblogs.com/yongjian/archive/2017/03/29/6640951.html

Hive分区的概念与传统关系型数据库分区不同。

  • 传统数据库的分区方式:就oracle而言,分区独立存在于段里,里面存储真实的数据,在数据进行插入的时候自动分配分区。
  • Hive的分区方式:由于Hive实际是存储在HDFS上的抽象,Hive的一个分区名对应一个目录名,子分区名就是子目录名,并不是一个实际字段。
  • Hive分区是在创建表的时候用Partitioned by 关键字定义的,但要注意,Partitioned by子句中定义的列是表中正式的列,但是Hive下的数据文件中并不包含这些列,因为它们是目录名。
2. 静态分区
  • 创建一张静态分区表
create table pz_test_business_search (
interface_name     string comment'接口名称',
interface_param_in string comment'接口入参',
invoke_time        string comment'调用时间'
)
partitioned by (month_id string, day_id string,part_id string)--分区字段,month_id => 年月,day_id => 日,part_id => 小时分钟
ROW FORMAT DELIMITED 
 FIELDS TERMINATED BY ','---数据列分隔符 
STORED AS TEXTFILE;
  • 查看表结构
hive> desc pz_test_business_search ;
OK
interface_name      	string              	接口名称                
interface_param_in  	string              	接口入参                
invoke_time         	string              	调用时间                
month_id            	string              	                    
day_id              	string              	                    
part_id             	string              	                    
	 	 
# Partition Information	 	 
# col_name            	data_type           	comment             
	 	 
month_id            	string              	                    
day_id              	string              	                    
part_id             	string              	                    
Time taken: 0.505 seconds, Fetched: 13 row(s)
  • 向表中加载数据,分区为month_id=201812,day_id=19,part_id=9999

需要加载的文件存储在hdfs上,hdfs中文件的路径为“pz_testTopic/201812/19/pa_testTopic.1545272830372.txt”
文件中数据格式如下:

interface1,param1,2018-12-19 10:12:32
interface2,param2,2018-12-19 10:13:10
interface3,param3,2018-12-19 15:11:30
interface4,param4,2018-12-19 23:45:01
--将正确数据load到表中,指定分区值
--如果是本地文件,则使用load data local inpath '文件路径' ...
load data inpath '/pz_testTopic/201812/19/pa_testTopic.1545272830372.txt'
INTO TABLE pz_test_business_search
PARTITION (month_id='201812',day_id='19',part_id
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值