《hive编程指南》阅读笔记摘要(八)

第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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值