22HIVE的分区分桶——好程序

本文详细介绍了Hive的分区技术,包括分区的原因、方式、意义和操作,如分区创建、数据加载、分区修改与删除。接着讨论了分桶的概念,强调了分桶在数据管理和查询效率上的优势,并提供了分桶表的创建与数据导入方法。同时,文章通过实例解释了动态分区、静态分区和混合分区的使用,并总结了分区与分桶的关键点。
摘要由CSDN通过智能技术生成

为什么要分区?
随着系统运行时间增长,表的数据量越来越大,而hive查询通常是全表扫描,这样会导致大量不必要的数据扫描,从而大大降低了查询效率
从而引进了分区技术,使用分区技术,避免hive全表扫描,提升查询效率

分区的技术
PARTITIONED BY (column_name data_type)
1、hive分区是区分大小写的
2、hive的分区本质是在表目录下创建分区目录,但是该分区字段是一个伪列,不真实存在于数据中。age=19
3、一张表中可以有一个或多个分区,分区下面也可以有一个或者多个分区

如何分区?
根据业务需求,通常采用年、月、日、地区等。

分区的意义
可以让用户在做数据统计时缩小数据扫描的范围,因为可以在select时指定分区条件

创建一层分区

create table if not exists part1(
uid int,
uname string,
uage int
)
PARTITIONED BY (country string)
row format delimited 
fields terminated by ','
;

分区表的数据导入方式:part1表名  然后指定分区partition(country='china'); 分区目录

将文件从哪里上传到哪个表里面,然后指定分区

load data local inpath '/hivedata/stu1.txt' into table part1 partition(country='china');

load data local inpath '/hivedata/stu_japan.txt' into table part1 partition(country='japan');

load data local inpath '/hivedata/stu1.txt' into table part1 partition(COUNTRY='CHINA');

做分区一定要带条件查询(内容是区分大小写的)

字段等于分区的内容

 

创建二级分区
create table if not exists part2(
uid int,
uname string,
uage int
)
PARTITIONED BY (year string,month string)
row format delimited 
fields terminated by ','
;

加载数据
load data local inpath '/hivedata/stu1.txt' into table part2 partition(year='2019',month='07');
load data local inpath '/hivedata/stu_japan.txt' into table part2 partition(year='2019',month=08);
load data local inpath '/hivedata/stu1.txt' into table part2 partition(year='2018',month='07');

load data local inpath '/hivedata/stu1.txt' into table part2 partition(year='2019',month='09');
load data local inpath '/hivedata/stu1.txt' into table part2 partition(year='2019',month='06');

创建三级分区
create table if not exists part3(
uid int,
uname string,
uage int
)
PARTITIONED BY (year string,month string,day string)
row format delimited 
fields terminated by ','
;

加载数据
load data local inpath '/hivedata/stu1.txt' into table part3 partition(year='2019',month='07',day='19');
load data local inpath '/hivedata/stu_japan.txt' into table part3 partition(year

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值