第七章_分桶表
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
分类:
Hive
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报