在HBase中 一個row對應的相同的列只會有一行。使用scan 或get 得到都是最新的數據
如果我們對這某一row所對應的列進行了更改操作后,并不會多生成一條數據,不會像RDBMS一樣
insert時多生成一條記錄,在HBase中對同一條數據的修改或插入 都只是put操作,最終看到的都是
最新的數據,其它的數據在不同的version中保存,就像隱藏的東西一樣
那么如何才能看到這些隱藏version的值呢
Get get = new Get(startRow);
get.setMaxVersions();
Result result = table.get(get);
List<KeyValue> list = result.list();
for(final KeyValue v:list){
logger.info("value: "+ v+ " str: "+Bytes.toString(v.getValue()));
}
加入setMaxVersions()方法就可以把所有的版本都取出來了
如果我們對這某一row所對應的列進行了更改操作后,并不會多生成一條數據,不會像RDBMS一樣
insert時多生成一條記錄,在HBase中對同一條數據的修改或插入 都只是put操作,最終看到的都是
最新的數據,其它的數據在不同的version中保存,就像隱藏的東西一樣
那么如何才能看到這些隱藏version的值呢
Get get = new Get(startRow);
get.setMaxVersions();
Result result = table.get(get);
List<KeyValue> list = result.list();
for(final KeyValue v:list){
logger.info("value: "+ v+ " str: "+Bytes.toString(v.getValue()));
}
加入setMaxVersions()方法就可以把所有的版本都取出來了