1. 什么是分桶表
-- 根据指定的分桶字段 和 分桶数,将数据划分成 不同的数据文件
-- hash(分桶字段) % 分桶数 = 文件分桶编号
2. 分桶和分区的区别
-- 1. 分桶针对 数据文件进行 拆分
-- 分区针对 数据文件存储路径进行 拆分
-- 2. 分区字段 并不是数据文件的一部分
-- 分桶字段 是数据文件的一部分
3. 数据分桶的作用
1. 方便抽样
2. 提高join查询效率
4. 创建分区表
--3. 创建分桶表 create table home.ods_track_log_dd ( 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 orc; --4. 向分桶表中 写入数据 insert overwrite table home.ods_track_log_dd select 1 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 3 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 5 as log_id,'点击' as log_type,'首页点击1' as event_key union all select 6 as log_id,'点击' as log_type,'首页点击2' as event_key; -- 查看数据目录 /user/hive/warehouse/home.db/ods_track_log_dd/000000_1 -rw-r--r-- root supergroup 506 B Jan 29 17:01 3 256 MB 000000_1 -rw-r--r-- root supergroup 517 B Jan 29 17:01 3 256 MB 000001_0View Code