繁体   English   中英

根据时间戳从Hive访问HBase表数据

[英]Accessing HBase table data from Hive based on Time Stamp

我通过提及默认版本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}

我可以查看所有版本数据。

现在创建一个Hive外部表以指向该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表的时间戳查询数据?

抱歉不行。 根据Hive HBase集成文档,

当前无法访问HBase时间戳属性,查询始终使用最新的时间戳访问数据。

有一些JIRA谈论与时间戳相关的功能,但是它们并没有真正满足您的要求,并且并没有得到很好的认可:(

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM