【NoSQL数据库】Hbase基本操作——数据库表的增删改查

目录

一、Hbase原理

二、HBase数据库操作

三、遇到的问题和解决方法


一、Hbase原理

        HBase的数据模型:

行键

时间戳

列族:contents

列族:anchor

列族:mime

“com.cnn.www”

T9

Achor:cnnsi.com=”CNN”

T8

Achor:my.lock.ca=”CNN.com”

T6

Contents:html=”<html>…”

Mime:type=”text/html”

T5

Contents:html=”<html>…”

T3

Contents:html=”<html>…”

        HBase是一个高可靠性、高性能、面向列、可伸缩的分布式数据库。利用HBase技术可在廉价的PC Server上搭建起大规模结构化存储集群。

        HBase是非关系型数据库,它不要求数据之间有严格的关系,同时它允许在同一列不同行中存储不同类型的数据。Hbase作为Hadoop框架下的数据库,是被设计成在一个服务器集群上运行的。

二、HBase数据库操作

示例:在Hbase建立如下表格数据,表格命名为Phone,并对Phone表执行数据查询、修改、删除及表格的删除操作。

行键

info

sale

时间戳

brand

name

price

P001

Apple

Iphone16

8999

202404

P001

Iphone15

202303

P003

HUAWEI

Mate 30 pro

5999

201906

1、在虚拟机终端输入hbase shell进入hbase。

2、HBase创建数据库表

(1)建立数据库表,使用create ‘表名’, ‘列族名1’,’列族名2’,’列族名N’,具体操作如下所示。

(2)执行命令list查看所有数据库表,下图显示Phone表,说明已经创建成功。

(3)describe ‘Phone’查看Phone表的结构。

(4)count ‘Phone’查看Phone表中的所有记录数量,此时未添加数据,记录为0。

2、增加数据操作

put ‘表名’,’行键’,’列族:列’,’值’,具体操作如下所示。对Phone表所有记录进行添加。

3、查询数据操作

(1)查看表的所有记录,使用 scan ‘表名’,具体操作如下所示。

(2)查看某个行键下的所有记录,使用 get ‘表名’,‘行键’,具体操作如下所示。

(3)查看某个行键下的列族记录,使用get '表名','行键','列族',具体操作如下所示。

(4)查看列族的某个列记录,使用get '表名','行键','列族:列’,具体操作如下所示。

3、更新数据操作

Hbase更新数据即追加数据,对相同行键、列族和列名的数据再次添加即为数据的更新,重写一遍进行覆盖实现更新。Phone表中要把P001的价格从8999更新为9888,具体操作如下所示。

4、删除数据操作

(1)删除某个列族中的列,使用delete‘表名’,‘行名’,‘列族:列',具体操作如下所示。

(2)使用get查询删除是否成功,具体操作如下所示。

(3)删除整行记录,使用deleteall '表名','行键',具体操作如下所示。

(3)清空表所有记录,使用truncate '表名',具体操作如下所示。

5、删除数据表

(1)蔽数据表: disable ‘表名’

(2)查看表是否可用:is_enabled ‘表名’

(3)删除数据表:drop '表名'

具体操作如下所示。

三、遇到的问题和解决方法

我自己操作时遇到的问题和一些解决方法(大家可以在评论区讨论):

1、hbase shell命令回车后报错,提示zookeeper连接出现问题,后来发现是hbase-site.xml文件没有正确配置,正确配置后可以启动zookeeper,正常运行。(这里可以查看我的Hadoop和Hbase的配置文章,里面有说如何配置hbase-site.xml文件)

【Hadoop和Hbase集群配置】3台虚拟机、jdk+hadoop+hbase下载和安装、环境配置和集群测试_虚拟机hbase环境配置-CSDN博客

2、增加数据时,put之后没有报错,可是get和scan查看数据却没有显示内容,说明添加数据出现问题,我试了重新启动hbase服务,也没有解决,后来删除Phone表重新创建,就可以添加数据了。

3、Phone表里有一个时间戳为202303的P001记录,可是在已经添加了Iphone16的数据之后,Iphone15的就put失效,和上面的问题一样,或许是因为202303的记录比202404的记录要旧,被新时间戳的记录覆盖了,所以显示不了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/930677.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【NLP高频面题 - LLM架构篇】大模型使用SwiGLU相对于ReLU有什么好处?

【NLP高频面题 - LLM架构篇】大模型使用SwiGLU相对于ReLU有什么好处&#xff1f; 重要性&#xff1a;★★★ &#x1f4af; NLP Github 项目&#xff1a; NLP 项目实践&#xff1a;fasterai/nlp-project-practice 介绍&#xff1a;该仓库围绕着 NLP 任务模型的设计、训练、优化…

ElementUI 问题清单

1、form 下面只有一个 input 时回车键刷新页面 原因是触发了表单默认的提交行为&#xff0c;给el-form 加上submit.native.prevent就行了。 <el-form inline submit.native.prevent><el-form-item label"订单号"><el-inputv-model"query.order…

AWS 机器学习,推动 AI 技术的健康发展

目录 一、AI 正在改变生产方式二、从炒作走向务实1、选对场景2、重视数据3、产品思维4、持续优化 三、人才是最稀缺的资源四、负责任的 AI 开发五、未来已来六、启示与思考七、结语 如果说传统软件开发是手工作坊&#xff0c;那么 AI 就像工业革命带来的机器生产。 在最新的一…

【第 1 章 初识 C 语言】1.8 使用 C 语言的 7 个步骤

目录 1.8 使用 C 语言的 7 个步骤 1.8.1 第 1 步&#xff1a;定义程序的目标 1.8.2 第 2 步&#xff1a;设计程序 1.8.3 第 3 步&#xff1a;编写代码 1.8.4 第 4 步&#xff1a;编译 1.8.5 第 5 步&#xff1a;运行程序 1.8.6 第 6 步&#xff1a;测试和调试程序 1.8.…

C++知识整理day4内存管理——new和delete详解

文章目录 1.C/C内存分布2.C语言中动态内存管理&#xff1a;malloc/realloc/calloc3.C内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型 4.malloc/free和new/delete到底什么区别&#xff1f;4.1 对于自定义类型4.2 对于自定义类型4.3 总结&#xff1a;它们…

实现跨平台 SSH 连接:从 macOS 到 Windows WSL 的完整解决方案20241203

&#x1f310; 实现跨平台 SSH 连接&#xff1a;从 macOS 到 Windows WSL 的完整解决方案 ✨ 引言 随着跨平台开发的普及&#xff0c;开发者经常需要在多系统环境中切换和协作。尤其是在 macOS 和 Windows 混合使用的开发环境中&#xff0c;通过 SSH 远程访问和管理 Windows …

检索增强生成RAG与知识图谱

检索增强生成RAG与知识图谱 一、检索增强生成&#xff08;RAG&#xff09;1、简介2、RAG 的优点3、RAG的应用场景4、RAG增强原理 二、知识图谱介绍1、简介2、知识图谱的应用场景3、优劣势分析a、优点:b、缺点: 4、应用实例5、知识图谱和图数据库的关系 一、检索增强生成&#x…

Vue前端开发-路由跳转及带参数跳转

在Vue 3中&#xff0c;由于没有实例化对象this&#xff0c;因此&#xff0c;无法通过this去访问 $route对象&#xff0c;而是通过导入一个名为 useRouter 的方法&#xff0c;执行这个方法后&#xff0c;返回一个路由对象&#xff0c;通过这个路由对象就可以获取到当前路由中的信…

第九篇:k8s 通过helm发布应用

什么是helm&#xff1f; Helm 是 Kubernetes 的包管理器。Helm 是查找、分享和使用软件构建 Kubernetes 的最优方式。 在红帽系的Linux中我们使用yum来管理RPM包&#xff0c;类似的&#xff0c;在K8s中我们可以使用helm来管理资源对象&#xff08;Deployment、Service、Ingress…

SQL——DQL分组聚合

分组聚合&#xff1a; 格式&#xff1a; select 聚合函数1(聚合的列),聚合函数2(聚合的列) from 表名 group by 标识列; ###若想方便分辨聚合后数据可在聚合函数前加上标识列&#xff08;以标识列进行分组&#xff09; 常见的聚合函数: sum(列名):求和函数 avg(列名)…

【Linux】ubuntu下一键配置vim

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;Linux &#x1f339;往期回顾&#x1f339;&#xff1a;Linux权限&#xff08;超详细彻底搞懂Linux的权限&#xff09; &#x1f516;流水不争&#xff0c;争的是滔滔…

42_GAN网络详解(2)---常见的GAN

DCGAN CGAN 条件生成对抗网络&#xff08;Conditional Generative Adversarial Networks, CGAN&#xff09;是生成对抗网络&#xff08;Generative Adversarial Networks, GAN&#xff09;的一种变体&#xff0c;由Mehdi Mirza和Simon Osindero在2014年提出。CGAN的主要改进在…

burp常用机漏洞测试理论

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…

带权并查集和扩展域并查集的一些整理和理解(上)

请读者在有一定并查集基础上再阅读&#xff08;至少要知道什么是带权和扩展域并查集&#xff09; 在最近做题时候&#xff0c;我遇到了一些带权并查集和扩展域并查集的题目。我觉得它们都很难写也很难想&#xff0c;尤其是带权并查集我几乎第一时间无法想到是怎么做的&#xf…

一分钟快速了解SBTI科学碳目标/碳披露认证

一分钟快速了解SBTI&#xff08;Science Based Targets initiative&#xff0c;科学碳目标&#xff09;认证注意事项&#xff0c;是企业在追求可持续发展道路上不可或缺的一环。SBTI认证不仅是对企业减排承诺的权威背书&#xff0c;更是引领行业绿色转型的风向标。 在踏上SBTI认…

李飞飞空间智能来了:AI生成可探索交互的3D世界,颠覆游戏电影VR行业

目录 前言图生世界摄影效果景深效果滑动变焦 3D效果交互效果动画效果 走进大师的艺术工作流总结 前言 12月3日&#xff0c;有AI“教母”之称的李飞飞发布了空间智能的一个项目&#xff0c;一经发布就立刻引爆了外网。这个项目是仅仅通过一张图片&#xff0c;AI就可以快速的构建…

网络安全防护指南:筑牢网络安全防线(5/10)

一、网络安全的基本概念 &#xff08;一&#xff09;网络的定义 网络是指由计算机或者其他信息终端及相关设备组成的按照一定的规则和程序对信息收集、存储、传输、交换、处理的系统。在当今数字化时代&#xff0c;网络已经成为人们生活和工作中不可或缺的一部分。它连接了世…

方案拆解 | 打击矩阵新规频出!2025矩阵营销该怎么玩?

社媒平台的矩阵营销又要“变天”了&#xff1f;&#xff01; 11月18日&#xff0c;小红书官方发表了被安全薯 称为“小红书史上最严打击黑灰产专项”新规&#xff0c;其中就包括黑灰产矩阵号的公告。 ▲ 图源&#xff1a;小红书 实际上&#xff0c;不包括这次&#xff0c;今年…

XGBoost算法原理

XGBoost&#xff08;eXtreme Gradient Boosting&#xff09;是一种基于梯度提升决策树的机器学习算法&#xff0c;它通过优化损失函数来构建模型。XGBoost在许多数据科学竞赛中取得了成功&#xff0c;并且由于其高效性和准确性而广受好评。 1. 梯度提升框架 在开始讨论XGBoost…

【uni-app 微信小程序】新版本发布提示用户进行更新

知识准备 uni.getUpdateManager文档介绍 不支持APP与H5&#xff0c;所以在使用的时候要做好平台类型的判断&#xff0c;如何判断&#xff0c;参考条件编译处理多端差异 代码参考 export const updateApp () > {const updateManager uni.getUpdateManager()updateManag…