hadoop hive 的使用心得


1. 外部表和管理表的区别

    1. 外部表和管理表都支持分区(partition),但是只有管理表使用分桶(bucket)

    2. 管理表可以定义存储格式(如ORC),可以把外部表作为过渡表,最终导入到管理表中


2. 默认的配置参数比较适合通用场景,没有什么特殊情况的话一般不需要改动。比较有效的优化手段包括分区、分桶、存储格式、修改引擎等,其他的如压缩,join相关配置等视情况而定,不适合所有人。


3. 可以通过shell脚本执行hql文件,使用hive -hivevar 将变量传递到hql文件中


4. 我们的使用场景是这样的:

       4.1 新建user_tmp的外部表,并按照日期分区,新建user 管理表,并分区分桶

       4.2 每天凌晨通过 alter table user_tmp add partition (dt='2016-08-03') location '2016-08-03' 命令更新user_tmp数据,通过 insert overwrite table user partition(dt='2016-08-03') select uid,create_time from user_tmp where dt='2016-08-03' 更新user数据;

       4.3 使用user表查询


5. 灵活使用hive的高级数据类型(array, struct, map)解决实际问题,如我们使用map类型表示url中的参数列表(id=11&name=aa&sex=1&....)


6. 相关文章

http://hadooptutorial.info/hive-performance-tuning/

http://hadooptutorial.info/category/hive/


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值