zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

《HBase实战》一2.7 原子操作

HBase 操作 实战 原子 2.7
2023-09-11 14:17:45 时间

本节书摘来异步社区《HBase实战》一书中的第2章,第2.7节,作者: 【美】Nick Dimiduk , Amandeep Khurana 译者: 谢磊 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.7 原子操作

HBase实战
HBase操作库里的最后一个命令是列值递增(Increment Column Value)。它有两种使用方式,像其他命令那样使用Increment命令对象,或者作为HTableInterface的一个方法来使用。我们使用HTableInterface的方式,因为语义更直观。我们使用它来保存每个用户发布推帖的总数,如下所示:


q2


该命令不用先读出HBase单元就可以改变存储其中的值。数据操作发生在HBase服务器上,而不是在你的客户端,所以速度快。当其他客户端也在访问同一个单元时,这样避免了出现紊乱状态。你可以把ICV(Increment Column Value)等同于Java的AtomicLong.addAndGet()方法。递增值可以是任何Java``Long类型值,无论正负。我们将在下一节深入讨论原子性操作。

也请注意这个数据不是存储在twits表而是users表中。存在users表的原因是不希望这个信息成为扫描的一部分。存在twits表里会让常用的访问模式很不方便。

就像Java的原子类族,HTableInterface也提供checkAndPut()和check AndDelete()方法。它们可以在维持原子语义的同时提供更精细地控制。你可以用checkAndPut()来实现incrementColumnValue()方法:


q1

该实现有点长,但可以试试。使用checkAndDelete()的方式与此类似。

按照和前面相同的方式,你可以轻松地新建TwitsTool表。模型、DAO和命令行实现和前面users表的情况类似。本书附带的源代码提供了一个实现。


hbase-微博三表实战demo 这是根据学习图谱中hbase的教程,写的最后的微博案例demo,使用的是mac系统,本地安装的mysql,单机版的hbase,本地环境配置的jdk版本是openjdk11.0.16.1,具体逻辑是用户微博内容写入到内容表,关注该用户的用户根据用户关系表,将数据推送到信箱表中。
深入浅出 HBase 实战 | 青训营笔记 Hbase是一种NoSQL数据库,这意味着它不像传统的RDBMS数据库那样支持SQL作为查询语言。Hbase是一种分布式存储的数据库,技术上来讲,它更像是分布式存储而不是分布式数据库,它缺少很多RDBMS系统的特性,比如列类型,辅助索引,触发器,和高级查询语言等待。
《玩转HBase和Lindorm 大数据入门和实战》电子版地址 本书系统地介绍HBase和Lindorm的整体架构、理论知识,及在多种场景下的实战经验,供开发者学习并加以实践。开发者们阅读此书不仅能快速入门HBase数据库,也能将其运用到工作之中去。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
第十二届 BigData NoSQL Meetup — 基于hbase的New sql落地实践 立即下载