《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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容