千家信息网

学习日志---hbase学习(最大版本查询)

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,在HBase中 一个row对应的相同的列只会有一行。使用scan 或get 得到都是最新的数据如果我们对这某一row所对应的列进行了更改操作后,并不会多生成一条数据,不会像RDBMS一样insert时
千家信息网最后更新 2026年10月31日学习日志---hbase学习(最大版本查询)

在HBase中 一个row对应的相同的列只会有一行。使用scan 或get 得到都是最新的数据
如果我们对这某一row所对应的列进行了更改操作后,并不会多生成一条数据,不会像RDBMS一样
insert时多生成一条记录,在HBase中对同一条数据的修改或插入 都只是put操作,最终看到的都是
最新的数据,其它的数据在不同的version中保存,就像隐藏的东西一样

那么如何才能看到这些隐藏version的值呢

Get get = new Get(startRow);
get.setMaxVersions();
Result result = table.get(get);
List list = result.list();
for(final KeyValue v:list){
logger.info("value: "+ v+ " str: "+Bytes.toString(v.getValue()));
}
加入setMaxVersions()方法就可以把所有的版本都取出来了


实例代码:

@Test        public void test4() throws Exception        {                Configuration config = HBaseConfiguration.create();                  config.set("hbase.zookeeper.quorum", "hadoop1,hadoop2,hadoop3");                HTable hTable = new HTable(config, "t_xuanxuan");                Get get = new Get("29129101029_1444038378601".getBytes());                get.setMaxVersions();                //这里设置的是2                Result result = hTable.get(get);                System.out.println(result.size());                List list = result.list();                 for(final KeyValue v:list){                 System.out.println("value: "+ v+ " str: "+Bytes.toString(v.getValue()));                }        }

result的个数会是2,因为把其隐藏起来了,所以在hbase命令行中也查询不到,只有这样查。

数据 多生 版本 学习 查询 不同 相同 一行 东西 个数 代码 只是 只有 命令 实例 方法 最大 日志 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技社 深圳科技互联网 唐信互联网科技 电子科技大学互联网 互联网科技有限公司 翻译 海南购全球互联网科技 汉立互联网科技有限公司联系电话 顶级互联网科技成果有哪些 青岛科技大学互联网大赛研究生 知域互联网科技有限公司大骗子 玉溪互联网科技怎么选 想开互联网科技公司怎么样 南博望互联网科技有限公司 中国互联网有什么科技 梅州GM互联网络科技有限公司 扫呗互联网科技有限公司 宁波跨境商互联网科技有限公司 互联网硬科技公司 互联网高科技行业有哪些企业 互联网的科技体现在哪里 有马互联网科技 苏州互联网科技贷款公司 互联网科技中介 宁夏众和广鑫互联网科技有限公司 宜昌元轩互联网科技有限公司 互联网科技大奖都有哪些公司 互联网科技扶贫时间 山东有哪些互联网科技公司 半导体行业属于互联网高科技类吗 小牛互联网科技有限公司地址
0