如我们所知,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版本? –