如我們所知,hbase具有一項功能,即特定行和特定列可以通過時間戳記錄最近的更改值。 所以我的問題是,如何使用任何HBase命令列出所有更改的值?我GOOGLE了很多,但沒有找到任何有用的鏈接。如何從HBase中的一個特定行和列中獲取多個版本
6
A
回答
7
您可以指定你的掃描版本的數量和獲取,它會檢索它們:用
HTable tbl = new HTable(tableName);
Get q= new Get(Bytes.toBytes(key));
q.setMaxVersions(numberOfVersionsYouWant);
Result row= tbl.get(q);
NavigableMap<byte[],NavigableMap<byte[],NavigableMap<Long,byte[]>>> allVersions=row.getMap();
7
同樣可以在HBase的外殼來實現:
get 'tablename', 'rowid', {COLUMN => 'cf:info', VERSIONS => 3}
上面會顯示單元的最大3個版本(如果可用)。
10
默認情況下未啓用版本控制。所以你在創建表時指定了它。
create 'student',{NAME=>"personal",Versions=>5},'school'
這裏了版本爲列啓用了「個人」,而不是列「學校」
,如果你描述表
hbase(main):009:0> describe 'student'
Table student is ENABLED
student
COLUMN FAMILIES DESCRIPTION
{NAME => 'personal', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '5', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
{NAME => 'school', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
對於personal
由此可以看出它顯示VERSIONS => '5'
爲school
它顯示VERSIONS => '1'
。
如果已創建表中可以改變
alter 'student',NAME=>'school',VERSIONS =>3
hbase(main):011:0> describe 'student'
Table student is ENABLED
student
COLUMN FAMILIES DESCRIPTION
{NAME => 'personal', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '5', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
{NAME => 'school', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
不就說明VERSIONS => '3'
對於school
預期。
將數據放入表中。在同一個單元格中輸入多次。然後掃描桌子。
put 'student','1','personal:name','kaushik'
put 'student','1','personal:name','kaushik_again'
put 'student','1','school:name','great_school'
put 'student','1','school:name','great_school_again'
scan 'student',{VERSIONS=>10}
ROW COLUMN+CELL
1 column=personal:name, timestamp=1443002303208, value=kaushik_again
1 column=personal:name, timestamp=1443002294049, value=kaushik
1 column=school:name, timestamp=1443002320753, value=great_school_again
1 column=school:name, timestamp=1443002311421, value=great_school
正如預期的那樣,它顯示出舊的價值以及新的價值。
相關問題
- 1. 爲特定行列獲取行HBase
- 2. 如何使用hbase shell從hbase中獲取以特定值結尾的行
- 3. VBA Excel - 如何從多個重複行中獲取特定值
- 4. 如何從一箇中繼節點獲取一個特定值
- 5. 如何從BigQuery中獲取多個列?
- 6. 如何從Hive中讀取hbase當前版本和以前版本的數據
- 7. 從datagrid視圖中的一個特定列中獲取值
- 8. 從陣列中獲取特定的行
- 9. HBase:在一個列族中創建一個具有多個列的hbase表
- 10. 如何從一個文本框中獲取多個值?
- 11. 如何從一個sql列中獲取多個值
- 12. 如何獲取mysql中某個表中特定列的總數和總行數
- 13. 獲取列的特定「版本」
- 14. 你如何獲取提交信息和文件列表中一個特定的版本?
- 15. 如何獲取一行中多行和多列的值?
- 16. Django:從多個表中獲取特定列
- 17. 如何從一個特定的列在一個文本文件
- 18. 如何分別獲取特定版本?
- 19. 如何從特定文本行中獲取文本?
- 20. 如何在Python版本3.5.2中從文件中讀取(從一個字符串到另一個多行)
- 21. 如何從單個列中獲取多個列?
- 22. 如何從sqlite中的多個表中選擇特定的列?
- 23. 如何從Hbase表中的特定行中檢索信息?
- 24. 如何從C中的一行獲取多個數字?
- 25. 如何獲取OpenCV中特定元素的行和列?
- 26. 如何一次從多個文本框中獲取值?
- 27. 如何從列表中提取特定列到SharePoint中特定員工的另一個列表中
- 28. 如何從Cassandra的一個查詢中獲取不同列的多行?
- 29. 如何在Mercurial中獲取特定版本的文件?
- 30. 如何從多行和多列中獲取總數據?
有沒有辦法獲得最低3版本? –