第9章 模式设计
1、按天划分的表建议使用分区表
2、HDFS namenode会将所有的文件系统的元数据信息加载到内存中
3、hive没有主键或基于序列秘钥生成的自增键的概念
4、为了避免分区中数据不均的问题,可以用另一种数据分管的技术:分桶
create table weblog(user_id int, url string, source_id string)
partitioned by (dt string)
clustered by (user_id) into 96 buckets;
但是,要将数据正确的插入到表的过程完全取决于用户自己!!!
5、怎么使用分桶插入数据?
(1)、为分桶设置正确的reducer个数
set hive.enforce.bucketing = true;
(2)、插入数据
from raw_logs
insert overwrite table weblog
partition (dt=’2009-02-25′)
select user_id,url,source_ip where dt=’2009-02-25′;
6、分桶的优点:
(1)、因为桶数量是固定的,所以他没有数据波动;
(2)、桶对抽样非常适合;
(3)、分桶有利于执行高效的map-side join
7、为表增加字段,例子:
alter table weblogs add columns (user_id string);
8、hive通常使用行式存储,不过hive也提供了一个列式SerDe来以混合列式格式存储信息。某些数据集使用列式存储是最优的,如某些列重复数据特别多时,使用列式存储会加快查询速度。
9、在大多数情况下,都应该使用数据压缩
*****************************
微信公众号:IT人成长关注
大数据技术QQ群:485681776