[英]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.