第七章_分桶表

1. 什么是分桶表
-- 根据指定的分桶字段 和 分桶数,将数据划分成 不同的数据文件
-- hash(分桶字段) % 分桶数 = 文件分桶编号

2. 分桶和分区的区别
-- 1. 分桶针对 数据文件进行 拆分
-- 分区针对 数据文件存储路径进行 拆分
-- 2. 分区字段 并不是数据文件的一部分
-- 分桶字段 是数据文件的一部分
3. 数据分桶的作用
1. 方便抽样
2. 提高join查询效率
4. 创建分桶表(分桶不排序)
复制代码
create table home.ods_track_log_dd_no_sort (
log_id string comment '日志id',
log_type string comment '日志类型',
event_key string comment '用户行为表示')
comment '后端日志表(天级)'
clustered by(log_type)
into 2 buckets
row format delimited fields terminated by '\t'
lines terminated by '\n'
stored as Textfile;

-- 插入数据set yarn.scheduler.maximum-allocation-mb=118784;
set mapreduce.map.memory.mb=4096;
set mapreduce.reduce.memory.mb=4096;
set yarn.nodemanager.vmem-pmem-ratio=4.2;

insert overwrite table home.ods_track_log_dd_no_sort

select 10 as log_id,'展示' as log_type,'首页展示' as event_key union all
select 3 as log_id,'点击' as log_type,'首页点击' as event_key union all
select 2 as log_id,'展示' as log_type,'落地页展示' as event_key union all
select 4 as log_id,'点击' as log_type,'首页结果页' as event_key union all
select 6 as log_id,'点击' as log_type,'首页点击1' as event_key union all
select 5 as log_id,'点击' as log_type,'首页点击2' as event_key;

-- 查看结果
hadoop fs -cat  /user/hive/warehouse/home.db/ods_track_log_dd_no_sort/000000_0
2       展示    落地页展示
10      展示    首页展示
hadoop fs -cat  /user/hive/warehouse/home.db/ods_track_log_dd_no_sort/000001_0
5       点击    首页点击2
6       点击    首页点击1
4       点击    首页结果页
3       点击    首页点击
复制代码
5. 创建分桶表(分桶排序)
复制代码
create table home.ods_track_log_dd_sort (
log_id string comment '日志id',
log_type string comment '日志类型',
event_key string comment '用户行为表示')
comment '后端日志表(天级)'
clustered by(log_type)
sorted by (log_id) 
into 2 buckets
row format delimited fields terminated by '\t'
lines terminated by '\n'
stored as Textfile;

-- 插入数据
set yarn.scheduler.maximum-allocation-mb=118784;
set mapreduce.map.memory.mb=4096;
set mapreduce.reduce.memory.mb=4096;
set yarn.nodemanager.vmem-pmem-ratio=4.2;

insert overwrite table home.ods_track_log_dd_sort

select 10 as log_id,'展示' as log_type,'首页展示' as event_key union all
select 3 as log_id,'点击' as log_type,'首页点击' as event_key union all
select 2 as log_id,'展示' as log_type,'落地页展示' as event_key union all
select 4 as log_id,'点击' as log_type,'首页结果页' as event_key union all
select 6 as log_id,'点击' as log_type,'首页点击1' as event_key union all
select 5 as log_id,'点击' as log_type,'首页点击2' as event_key;

-- 查看结果
hadoop fs -cat  /user/hive/warehouse/home.db/ods_track_log_dd_sort/000000_0
10      展示    首页展示
2       展示    落地页展示

hadoop fs -cat  /user/hive/warehouse/home.db/ods_track_log_dd_sort/000001_0
3       点击    首页点击
4       点击    首页结果页
5       点击    首页点击2
6       点击    首页点击1
复制代码

 

 

 

 
posted @   学而不思则罔!  阅读(212)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示