2015-03-31 90 views
1

我創建了一個HBase的提一下默認版本爲10訪問HBase的表從蜂巢基於時間戳

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

數據並插入兩行(ROW1和2行)

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表的時間戳來查詢數據?

回答

1

不幸的是,沒有。根據Hive HBase Integration文檔,

目前沒有辦法訪問HBase timestamp屬性,並且查詢總是以最新的時間戳訪問數據。

有一些JIRAs談論時間戳相關的功能,但他們並沒有真正做你問什麼,他們沒有得到一個很大的接待:(