Hive分区

  hive分区是对hive表的一种组织形式,可以加快查询,是一种对表进行粗略划分的机制,使用分区时,在表目录下会有相应的子目录,当查询时若添加了分区谓词,该查询会定位到相应的字目录下进行查询,避免了全表扫描,比如日志文件分析,将日志按天存储。分区并不会影响大范围的查询。

  外部表也可以分区,具有良好的灵活性,例如:
  这种灵活性的一个有趣的优点是我们可以使用像Amazon S3这样的廉价的存储设备存储旧的数据,同时保存较新的更加“有趣的”数据到HDFS中。例如,每天我们可以使用如下的处理过程将一个月前的旧数据转移到S3中。

1.将分区下的数据拷贝到S3中。例如,用户可以使用hadoop distcp命令:

  hadoop distcp /data/log_messages/2011/12/02 s3n: //ourbucket//logs/2011/12/02

2.修改表,将分区路径指向到S3路径:

  ALTER TABLE log_messages PARTITION(year = 2011, month = 12, day = 2)
  SET LOCATION 's3n://ourbucket/logs/2011/01/02';

3.使用 hadoop fs -rmr 命令删除HDFS中的这个分区数据:

  hadoop fs -rmr /data/log_messages/2011/01/02

转载于:https://my.oschina.net/134596/blog/1798986

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值