访问基于时间戳从蜂巢HBase的表数据(Accessing HBase table data fro

2019-10-22 11:11发布

我已经提默认版本10创建的HBase

create 'tablename',{NAME => 'cf', VERSIONS => 10}

并插入两行(ROW1和ROW2)

put 'tablename','row1','cf:id','row1id'
put 'tablename','row1','cf:name','row1name'
put 'tablename','row2','cf:id','row2id'
put 'tablename','row2','cf:name','row2name'
put 'tablename','row2','cf:name','row2nameupdate'
put 'tablename','row2','cf:name','row2nameupdateagain'
put 'tablename','row2','cf:name','row2nameupdateonemoretime'

尝试选择使用扫描数据

scan 'tablename',{RAW => true, VERSIONS => 10}

我能看到所有版本的数据。

现在创建了一个蜂巢外部表指向这个HBase的表

CREATE EXTERNAL TABLE hive_timestampupdate(key int, value string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf:name")
TBLPROPERTIES ("hbase.table.name" = "tablename");

当我查询的表hive_timestampupdate ,我能看到HBase的表中的数据。

select * from hive_timestampupdate;

在这里我要查询基于时间戳的数据。 有没有一种方法来查询基于HBase的表的时间戳的数据?

Answer 1:

抱歉不行。 按照蜂巢HBase的集成文档,

目前还没有办法访问HBase的时间戳属性和查询始终与最新的时间戳访问数据。

有一些JIRAs谈论时间戳相关的功能,但他们并没有真正做你问什么,他们没有得到一个很大的接待:(



文章来源: Accessing HBase table data from Hive based on Time Stamp