引言
分区针对的是数据的存储路径
;
分桶针对的是文件
。
产生原因
分区提供一个隔离数据
和优化查询
的便利方式,不过,并非所有的数据集都可形成合理的分区,所以把单个文件划分成不同大小来进行优化。
分桶
分桶是将数据集
分解成更容易管理的若干部分
的另一个技术。
创建分桶表
在创建分桶表之前,需要允许分桶,默认为
Flase
set hive.enforce.bucketing=true;
create table stu_buck(id int, name string) clustered by(id) // 按照那个字段分桶 into 4 buckets // 需要分几个桶 row format delimited fields terminated by '\t';
加载数据到分桶表
使用 load
方式加载分桶表是看不出任何效果的,需要跑个MR程序,所以使用 insert
方式把数据加到分桶表
首先创建一个普通表
create table buck(id int, name string) row format delimited fields terminated by '\t';
把数据加载到这个普通表里
load data local inpath '/root/data.txt' into table buck;
通过 insert 方式加载数据到分桶表
hive> insert into table stu_buck > select * from buck; Query ID = root_20200211223628_4d38ab59-ff4f-49a5-a749-d4b1a3c9b95a Total jobs = 1 Launching Job 1 out of 1 ... OK Time taken: 43.425 seconds
版权声明:《 Hive 分桶表创建,加载数据 》为明妃原创文章,转载请注明出处!
最后编辑:2020-2-13 15:02:49