我创建了一个hbase,将默认版本称为5
创建'tablename',{name=>'cf',versions=>5}并插入两行(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'
尝试使用扫描选择数据,我正在获取最新更新的数据。当我尝试使用下面的命令选择不同版本的数据时,我得到了不同版本的数据。
scan 'tablename',{RAW => true, VERSIONS => 5}
现在创建了一个配置单元外部表来指向这个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");
select * from hive_timestampupdate
当我查询表hive\u timestampupdate时,我能够看到数据。
默认情况下,我将根据时间戳获取最新更新的数据。这里我还想查询不同版本的数据。
用于获取hbase的不同版本数据的配置单元命令。
请帮忙。
提前谢谢。
1条答案
按热度按时间f1tvaqid1#
从https://cwiki.apache.org/confluence/display/hive/hbaseintegration
当前无法访问hbase timestamp属性,查询总是使用最新的时间戳访问数据。