博客信息

Hive从Hbase中查询增量数据

发布时间:『 2017-09-15 21:12』  博客类别:Hadoop/Spark  阅读(1402) 评论(0)

Hive从Hbase中查询增量数据

很多人可能不知道Hive怎么映射hbase的timestamp的问题,因为WIKI中有一句LIMITATION:

https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration 

there is currently no way to access the HBase timestamp attribute, and queries always access data with the latest timestamp.

其实,或许说这是一个经验,本人经过查询这句LIMITATION,找到了一个已经解决的ISSUE:https://issues.apache.org/jira/browse/HIVE-2828 这个问题其实已经得到很多解决方案。如是可以使用下面的建表语句来对应TIMESTAMP。

CREATE TABLE hbase_table (key int, value string, time bigint)
  STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
  WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf:string,:timestamp")

查询增量数据,只需要限定time的范围即可,这个time会以hbase中某列最后更新的时间为准。

注意:

1、使用Hive查询hbase中的数据时,默认是不走MR的,会启动localTASK,会非常慢。

可以使用:set hive.fetch.task.conversion=minimal; 来强制使用MR查询

2、使用Hive表中time字段只能用between and来过滤一个闭区间时间段。可以分开用>和<来过滤一个半边区间或两边区间。>和<同时使用则获取闭区间得到的是全集。

关键字:   无
评论信息
暂无评论
发表评论
验证码: 
Powered by IMZHANGJIE.CN Copyright © 2015-2025 粤ICP备14056181号