当前位置: 首页 > news >正文

Hbase操作手册

一:Hbase 创建数据库表

1.进入hbase shell
2.创建数据库表的命令:create '表名', '列族名1','列族名2','列族名N'
3.如果想查看所有数据库表,可以使用list 命令:
4.可以看到,刚创建的数据库表user 已经在数据库表的列表中,如果要看user表的结构,可以用命令:describe ‘user’

二:Hbase数据库表数据的增、删、改、查

1.Hbase 增加数据的语法格式如下:
put ‘表名’, ‘rowKey’, ‘列族 : 列’ ,  '值'
2.Hbase查询数据的语法格式如下:
 通过命令:scan ‘表名’   来查看表的所有记录
3.count  '表名' 来查看表中的所有记录的数量(根据rowKey来计算)
4.通过命令:get '表名','rowkey','列族' 来查看某个rowKey列族的记录
                     get '表名','rowkey','列族:列’来查看rowKey列族的某个列记录
5.Hbase删除数据的语法格式如下:
通过命令:delete ‘表名’,‘行名’,‘列族:列' 来删除某个记录
6. get来查询删除的记录是否删除成功:
                       get ‘表名’,‘行名’,‘列族:列'
7.deleteall '表名','rowkey' 来删除整行记录
8.      scan ’表名‘  来查看整个表的记录来看是否删除成功:
9.truncate '表名'  来清空表所有的记录

10.Hbase更新数据的语法格式如下:
通过命令:put就是重写一遍,进行覆盖,hbase没有修改,都是追加即对相同rowKey、列族和时间戳的数据再次添加即为数据的更新
       比如:put ‘user’,’1234’,’info1:name’,’zhangsan’

三:Hbase 删除数据库表

1.Hbase 删除数据库的语法格式如下(drop '表名'):
    在删除表时,先要屏蔽该表,才能对该表进行删除
    第一步: disable ‘表名’,第二步 :drop '表名'
2. Disable 表后可以通过命令:is_enabled '表名',查看当前表是否可用
3.false(不可用)。 通过drop命令对表进行删除:
4.最后用list命令查看user是否已被成功删除:

四:过滤器

一般需要配合比较运算符或比较器共同使用

使用过滤器的语法格式如下所示:
scan '表名',{Filter => ”过滤器(比较运算符,’比较器’)”}
1.行键过滤器

(1)RowFilter:针对行键进行过滤
         例1:显示行键前缀为0开头的键值对;
         scan'student',{FILTER=>"RowFilter(=,'substring:001')"}
(2)PrefixFilter:行键前缀过滤器
         例2:扫描前缀为001的行键
         scan'student',FILTER=>"PrefixFilter('001')"
(3)FirstKeyOnlyFilter:扫描全表,显示每个逻辑行的第一个键值对
         例4:scan 'student',FILTER=>"FirstKeyOnlyFilter()"
(4)InclusiveStopFilter:替代ENDROW返回终止条件行;
         例5:扫描显示行键001到002范围内的键值对
         scan 'student', {STARTROW=>'001',FILTER =>"InclusiveStopFilter('002')"}
         此条命令等同于:
         scan 'student', {STARTROW=>'001',ENDROW => '003'}
2.列族与列过滤器

(1)FamilyFilter:针对列族进行比较和过滤。
         例1:显示列族前缀为stu开头的键值对;
        scan'student',FILTER=>"FamilyFilter(=,'substring:stu’)”
(2)QualifierFilter:列标识过滤器。
         例2:显示列名为name的记录;                           scan'student',FILTER=>"QualifierFilter(=,'substring:name')"
(3)ColumnPrefixFilter:对列名前缀进行过滤。
         例2:显示列名为name的记录;
                    scan'student',FILTER=>"ColumnPrefixFilter('name’)”
         等价于scan'student',FILTER=>"QualifierFilter(=,'substring:name')"

(4)MultipleColumnPrefixFilter:可以指定多个前缀
         例3:显示列名为name和age的记录;
         scan 'student',FILTER=>"MultipleColumnPrefixFilter('name','age')"
(5)ColumnRangeFilter :设置范围按字典序对列名进行过滤; scan'student',FILTER=>"ColumnRangeFilter('bi',true,'na',true)"
3.值过滤器

(1)ValueFilter :值过滤器。
例1:查询值等于19的所有键值对
scan'student',FILTER=>"ValueFilter(=,'binary:19') " scan'student',FILTER=>"ValueFilter(=,'substring:19')
(2)SingleColumnValueFilter :在指定的列族和列中进行值过滤器。
例2:查询stuinfo列族age列中值等于19的所有键值对
scan'student',{COLUMN=>'stuinfo:age',FILTER=>"SingleColumnValueFilter('stuinfo','age',=,'binary:19')"}
4.其他过滤器
(1)ColumnCountGetFilter :限制每个逻辑行返回的键值对数
例1:返回行键为001的前3个键值对
get 'student','001',FILTER=>"ColumnCountGetFilter(3)"
(2)PageFilter:基于行的分页过滤器,设置返回行数。
例2:显示一行
scan'student',FILTER=>"PageFilter(1)"
(3)ColumnPaginationFilter:基于列的进行分页过滤器,需要设置偏移量与返回数量 。
例3:显示每行第1列之后的2个键值对scan'student',FILTER=>"ColumnPaginationFilter(2,1)"

五:例题

实操题

(1) 启动HBase    
cd /opt/hbase-1.2.6/bin/    进入hbase安装的bin目录下
./start-hbase.sh
(2) 连接HBase实例
hbase shell
(3) 查看存在哪些表
list
(4) 创造表people,表中有列簇info
create 'people','info'
(5)  向people表的列族info中添加数据(数据根据上表内容填写)
put ‘people’,’1001’,’info:name’,’jenny’
put ‘people’,’1002’,’info:name’,’sam’
put ‘people’,’1002’,’info:age’,’20’
(6)  people表添加一个列簇salary
alter 'people','salary'
(7)  查看people表结构
describe 'people'
(8)  向people表的列族salary中添加数据,并且base列的版本号(时间戳)都自定义为“1”(数据根据上表内容填写)
put ‘people’,’1001’,’salary:base’,’2000’,1
put ‘people’,’1002’,’salary:base’,’1300’,1
put ‘people’,’1002’,’salary:subsidy’,’500’
(9)  修改行键1002的列族salary的base列的值为1800,版本号为“2”
put ‘people’,’1002’,’salary:base’,’1800’,2
(10)  查看people表的所有的数据
scan 'people'
(11)  查看行键1002的列族salary的base列的版本号为1的值
get ‘people’,’1002’,{COLUMN=>’salary:base’,TIMESTAMP=>1}
(12)  使用“FamilyFilter”过滤器显示列族前缀为“sa”开头的键值对
scan ‘people’,FILTER=>”FamilyFilter(=,'substring:sa’)”
(13)  使用“RowFilter”过滤器显示行键等于1001的键值对
scan ‘people’,FILTER=>"RowFilter(=,'binary:1001')"
(14)  使用“ValueFilter”过滤器查询base值大于等于2000的所有键值对
scan 'people',FILTER=>"ColumnPrefixFilter('base') AND ValueFilter(>=,'binary:2000') "
(15)  删除行键为1002,列族为info,列为age的数据
delete ‘people’,’1002’,’info:age’
(16)  清空表people
truncate 'people'
(17)  删除表
drop ‘people’

相关文章:

Hbase操作手册

一:Hbase 创建数据库表 1.进入hbase shell 2.创建数据库表的命令:create 表名, 列族名1,列族名2,列族名N 3.如果想查看所有数据库表,可以使用list 命令: 4.可以看到,刚创建的数据库表user 已经在数据库表的列表中&…...

vue组件($refs对象,动态组件,插槽,自定义指令)

一、ref 1.ref引用 每个vue组件实例上&#xff0c;都包含一个$refs对象&#xff0c;里面存储着对应dom元素或组件的引用。默认情况下&#xff0c;组件的$refs指向一个空对象。 2.使用ref获取dom元素的引用 <template><h3 ref"myh3">ref组件</h3&g…...

构建高可用和高防御力的云服务架构第五部分:PolarDB(5/5)

引言 云计算与数据库服务 云计算作为一种革命性的技术&#xff0c;已经深刻改变了信息技术行业的面貌。它通过提供按需分配的计算资源&#xff0c;使得数据存储、处理和分析变得更加灵活和高效。在云计算的众多服务中&#xff0c;数据库服务扮演着核心角色。数据库服务不仅负…...

QT窗口无法激活弹出问题排查记录

问题背景 问题环境 操作系统: 银河麒麟V10SP1qt版本 : 5.12.12 碰见了一个问题应用最小化,然后激活程序窗口无法弹出 这里描述一下代码的逻辑,使用QLocalServer实现一个单例进程,具体的功能就是在已存在一个程序A进程时,再启动这个程序A,新的程序A进程会被杀死,然后激活已存…...

node.js 版本管理

在Node.js开发中&#xff0c;版本管理是一个非常重要的环节&#xff0c;特别是当你需要同时维护多个项目&#xff0c;而这些项目又依赖于不同版本的Node.js时。以下是一些常用的Node.js版本管理工具和方法&#xff1a; 1. NVM (Node Version Manager) NVM是Node.js版本管理的…...

使用Python实现图形学曲线和曲面的NURBS算法

目录 使用Python实现图形学曲线和曲面的NURBS算法引言NURBS曲线的数学原理1. NURBS曲线定义2. 权重的作用 NURBS曲线的Python实现1. 类结构设计2. 代码实现3. 代码详解使用示例 NURBS曲面的扩展NURBS曲面类实现 总结 使用Python实现图形学曲线和曲面的NURBS算法 引言 NURBS&a…...

SpringBoot3

文章目录 一、为什么要学习SpringBoot二、SpringBoot介绍2.1 约定优于配置2.2 SpringBoot中的约定三、SpringBoot快速入门3.1 快速构建SpringBoot3.1.1 选择构建项目的类型3.1.2 项目的描述3.1.3 指定SpringBoot版本和需要的依赖3.1.4 导入依赖3.1.5 编写了Controller3.1.6 测试…...

【Text2SQL】领域优质论文分享

解读论文&#xff1a;Enhancing Few-shot Text-to-SQL Capabilities of Large Language Models: A Study on Prompt Design Strategies 1. 重要贡献 这篇论文的主要贡献在于提出了一种新的方法来增强大型语言模型&#xff08;LLMs&#xff09;在少量样本&#xff08;Few-shot…...

2024全国研究生数学建模竞赛(数学建模研赛)ABCDEF题深度建模+全解全析+完整文章

全国研究生数学建模竞赛&#xff08;数学建模研赛&#xff09;于9月21日8时正式开赛&#xff0c;赛程4天半&#xff0c;咱这边会在开赛后第一时间给出对今年的6道赛题的评价、分析和解答。包括ABCDEF题深度建模全解全析完整文章&#xff0c;详情可以点击底部的卡片来获取哦。 …...

Java项目中异常处理的最佳实践

1. 异常分类 首先&#xff0c;理解异常的不同类型是合理处理异常的基础。Java中的异常大致可以分为两大类&#xff1a; 受检异常&#xff08;Checked Exceptions&#xff09;&#xff1a;这些异常必须被捕获或声明抛出&#xff0c;例如IOException。非受检异常&#xff08;Un…...

CSS基本概念以及CSS的多种引入方式

CSS基本概念 CSS是层叠样式表&#xff0c;又叫级联样式表&#xff0c;简称样式表。CSS的文件后缀为.css&#xff0c;CSS用于HTML文档中元素样式的定义。 CSS的基本语法 CSS的规则由2个主要的部分构成&#xff1a;选择器以及一条或者多条声明。 选测器通常是你血药改变样式的…...

TiDB 简单集群部署拓扑文件

TiDB集群部署 服务器环境部署拓扑 都2024了还在为分库分表烦恼吗&#x1f618;&#xff0c;用分布式数据库TiDB、OceanBase、华为 GaussDB&#xff0c;你就使劲往里存数据。 早下班、少脱发、脱单&#xff01; &#x1f64f;&#x1f3fb;&#x1f64f;&#x1f3fb;&#x1f6…...

十三 系统架构设计(考点篇)

1 软件架构的概念 一个程序和计算系统软件体系结构是指系统的一个或者多个结构。结构中包括软件的构件&#xff0c;构件 的外部可见属性以及它们之间的相互关系。 体系结构并非可运行软件。确切地说&#xff0c;它是一种表达&#xff0c;使软件工程师能够&#xff1a; (1)分…...

Java-数据结构-二叉树-习题(三)  ̄へ ̄

文本目录&#xff1a; ❄️一、习题一(前序遍历非递归)&#xff1a; ▶ 思路&#xff1a; ▶ 代码&#xff1a; ❄️二、习题二(中序遍历非递归)&#xff1a; ▶ 思路&#xff1a; ▶ 代码&#xff1a; ❄️三、习题三(后序遍历非递归)&#xff1a; ▶ 思路&#xff1a; …...

SpringBoot+Aop+注解方式 实现多数据源动态切换

整体思路&#xff1a; 引入基本依赖SpringBootAopMySqlMyBatislombok在配置文件中配置多个数据源创建数据源配置类用于读取配置编写用于标识切换数据源的注解创建数据源切换工具类DataSourceContextHolder编写切面类用于在注解生效处切换数据源编写配置类&#xff0c;加载数据…...

企业如何高效应对多类型知识产权事务的复杂挑战?

随着企业的发展和创新活动的不断推进&#xff0c;越来越多的企业拥有了大量的专利、商标和软著等知识产权&#xff0c;这些不仅关乎企业的技术创新成果&#xff0c;更直接影响到企业的品牌价值和市场竞争力。然而&#xff0c;当企业拥有多件知识产权时&#xff0c;复杂的申请、…...

openeuler22.03 LTS 源码编译安装nginx1.22.1

openeuler22.03 LTS 源码编译安装nginx1.22.1 下载安装包 #官网下载nginx1.22.1 wget http://nginx.org/download/nginx-1.22.1.tar.gz安装依赖包 #安装依赖包&#xff0c;NGINX是C语言写的&#xff0c;pcre-devel支持正则表达式&#xff0c;openssl 开启加密 [rootproxy ~]…...

图片压缩工具免费怎么找?归纳了这几个压缩工具

有哪些图片压缩工具免费&#xff1f;在数字化时代&#xff0c;图像已成为我们生活中不可或缺的一部分。无论是网站设计、社交媒体分享还是文件传输&#xff0c;高质量的图片都扮演着重要的角色。但高质量往往意味着大文件体积&#xff0c;这可能会导致加载速度变慢或存储空间不…...

【Kubernetes知识点】解读HPA的 thrashing(抖动)问题

【Kubernetes知识点】解读HPA的 thrashing&#xff08;抖动&#xff09;问题 目录 1 概念 1.1 什么是 Thrashing 现象&#xff1f;1.2 HPA 中 Thrashing 产生的原因1.3 解决 Thrashing 的优化措施 1.3.1 设置合适的阈值1.3.2 使用自定义指标和基于负载的自动扩缩1.3.3 增加扩…...

Unity 设计模式 之 结构型模式 -【装饰者模式】【外观模式】【享元模式】【代理模式】

Unity 设计模式 之 结构型模式 -【装饰者模式】【外观模式】【享元模式】【代理模式】 目录 Unity 设计模式 之 结构型模式 -【装饰者模式】【外观模式】【享元模式】【代理模式】 一、简单介绍 二、装饰者模式&#xff08;Decorator Pattern&#xff09; 1、什么时候使用装…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)

题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...

Java数组Arrays操作全攻略

Arrays类的概述 Java中的Arrays类位于java.util包中&#xff0c;提供了一系列静态方法用于操作数组&#xff08;如排序、搜索、填充、比较等&#xff09;。这些方法适用于基本类型数组和对象数组。 常用成员方法及代码示例 排序&#xff08;sort&#xff09; 对数组进行升序…...