《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

你可能感兴趣的:(大数据)