【HBase之轨迹】(2)使用 hbase命令 和 JavaAPI 操作 HBase(包括复杂查询--过滤器,HBase 工具类)

【hbase】按时间段批量删除hbase数据 背景是华为大数据平台mrs,这里运用到HDFS、Hive、HBase;数据通过接口接入到hbase,用hive创建hbase外部表。需求是某段时间数据有问题,需要删掉重新补入。 阅读详情


0. 前置

前面一弹介绍了如何使用 docker 搭建 hbase
【HBase之轨迹】(1)使用 Docker 搭建 HBase 集群

现在开始通过 hbase 命令和 JavaAPI 使用 HBase
对 HBase 的介绍、运作流程原理和架构等,将在总集篇一起放出来

本篇介绍了 HBase 一系列命令的使用,包括表的增删改查,数据的增删改查
同时列出了官网中提到的各个过滤器和比较器及其功能,最后在命令行和 Java 中进行使用
JavaAPI 另外整理了一个工具集,以及其简单使用


1. 命令行使用

首先进入操作界面

./hbase shell

① DDL :表的增删改查

操作过程中,可以关注 Web 端的 Tables,能看到创建的表的信息

1)	创建表
	create <表名>,<列族名1>,<列族名2>...
例:	create 'user','address','info'

2)	查询所有用户表
	list

3)	查看表详情,可以看到各列族的属性
	describe <表名>
例:	describe 'user'

4)	更改表中列族的属性
	alter <表名>,{
   
   NAME=><列族名>,<属性名称>=><属性值>}
例:	alter 'user',{
   
   NAME=>'address',VERSIONS=>3}
	该例将 address 列族的最大版本数改为了 3
	表示列族将存储最近 3 个版本的数据,更旧的数据删去
	默认为 1,表示只保留最新版本,有新数据时,其余旧版本的数据都将倍删去

5)	删除表
	先 disable <表名>,后 drop <表名>
例:	disable 'user'
	drop 'user'

6)	创建命名空间
	create_namespace <命名空间名>
例:	create_namespace 'iceclean'

7)	查看所有命名空间
	list_namespace

8)	在指定的命名空间中建表
	create <命名空间名:表名>
例:	create 'iceclean:skill','live','program'
	上边在建表时,没有指定哪一个命名空间,默认就在 default 下建表

9)	删除命名空间
	要删除的命名空间必须为空(下面没有表),不为空的话得先将表删除
	drop_namespace <命名空间名>

② DML :数据的增删改查

注意:在增删操作中,最后边都可以加上时间戳手动指明时间,不加的花由系统默认生成

1)	插入数据(兼更新数据,只要指定了同一个列,就是更新)
	put <表名>,<行键>,<列族名:列名>,<值>
例:	put 'user','1','info:name','iceclean'

2)	删除列族/列
	delete <表名>,<行键>,<列族名>
	delete <表名>,<行键>,<列族名:列名>
	注意:如果某个列有多个版本,删除的是最新的版本(所以老版本会跳出来)

3)	删除一整行数据
	deleteall <表名>,<行键>

4)	清空表中的数据
	truncate <表名>

5)	指定行键查询,也可以精确到列族或者列
	get <表名>,<行键>
	get <表名>,<行键>,<列族名>
	get <表名>,<行键>,<列族名:列名>
	注意:如果出现中文,可以加一个参数:{
   
   FORMATTER => "toString"}

6)	查询列,且精确到版本号
	get <表名>,<行键>,{
   
   COLUMN=><列族名:列名>,VERSIONS=><数量>}
例:	get 'user','101c',{
   
   COLUMN=>'info:name',VERSIONS=>10}
	注意,这里虽然指明了要查看 10 个版本,也确实修改了很多个版本
	但如果在建表时,该列指定保留的版本数只为 1,则这里依旧只显示 1 个版本
	因为其余的旧版本并没有被保留下来,自然就查不到啦

7)	全表扫描查询数据
	scan <表名>

8)	计算表数据量
	count <表名> 
	
9)	范围查询,左闭右开,STARTROW 缺省默认为最小,STOPROW 缺省默认为最大
	scan <表名>,{
   
   STARTROW=><行键>,STOPROW=><行键>}
例:	scan 'user',{
   
   STARTROW=>'101a',STOPROW=>'103f'}

10)	指定列名查询
	增加参数:{
   
   COLUMNS => ['<列族名1>:<列名1>', '<列族名2>:<列名2>', ...]}

11)	限制查询
	增加参数:{
   
   LIMIT => 3}

12)	查看操作日志
	其中 VERSIONS 表示每条数据最多查看到第几个版本
	scan <表名>,{
   
   RAW=>true,VERSIONS=>10}

③ 原子自增 incr

在很多情况下,我们需要某个列值进行自增,如常见的点赞收藏和阅读量等的自增
使用 put 创建的列是不支持自增的,需要使用 incr,语法如下:

icnr <表名>, <行键>, <列族名:列名>, [累加值,默认为1]

2. 过滤器:复杂查询语句

使用 get 只能通过 rowKey 查询数据
而当需要通过条件过滤查询数据时,get 做不到,就需要用到过滤器了

过滤器通常和 scan 结合使用
其实底层也是调用了 HBase 的 JavaAPI,后边 SpringBoot 整合会直接 new 出来用

① 默认过滤器

以下过滤器都有对应的 Java 实现类

种类 过滤器名 功能
行键过滤器 RowFilter 实现行键字符串的比较和过滤
PrefixFilter rowkey 前缀过滤器
KeyOnlyFilter 只对单元格的键进行过滤和显示,不显示值
FirstKeyOnlyFilter 只扫描显示相同键的第一个单元格,其键值对会显示出来
InclusiveStopFilter 替代 ENDROW 返回终止条件行
列过滤器 FamilyFilter 列簇过滤器,只显示对应列簇的数据
QualifierFilter 列标识过滤器,只显示对应列名的数据
ColumnPrefixFilter 对列名称的前缀进行过滤
MultipleColumnPrefixFilter 可以指定多个前缀对列名称过滤
ColumnRangeFilter 过滤列名称的范围
值过滤器 ValueFilter 找到符合值条件的键值对
SingleColumnValueFilter 按指定列和指定值过滤,相当于 where key [比较符] value
SingleColumnValueExcludeFilter 过滤掉匹配上的键值对
其他过滤器 ColumnPaginationFilter 对一行的所有列分页,只返回 [offset,offset+limit] 范围内的列
PageFilter 对显示结果按行进行分页显示
TimestampsFilter 时间戳过滤,支持等值,可以设置多个时间戳
ColumnCountGetFilter 限制每个逻辑行返回键值对的个数,在 get 方法中使用
DependentColumnFilter 允许用户指定一个参考列或引用列来过滤其他列的过滤器

② 比较器

无论在 Java 还是在 Shell 中,进行过滤都需要比较器辅佐进行

比较器名 功能描述 表达式缩写
BinaryComparator 匹配完整字节数组(字符串) binary:值
BinaryPrefixComparator 匹配字节数组前缀(字符串前缀) binaryprefix:值
BitComparator 匹配比特位 bit:值
NullComparator 匹配空值 null
RegexStringComparator 匹配正则表达式
【HBase之轨迹】(1)使用 Docker 搭建 HBase 集群 继 hadoop 和 zookeeper 之后,再次使用 docker 搭建 hbase 集群,详细说明搭建过程以及 docker 搭建过程中会才踩到的坑。同时 阅读详情

相关推荐

【HBase之轨迹】(3)Apache Phoenix 5.1.2 详细使用,像 MySQL 一样使用 SQL 语句操作 HBase(Shell 操作和 SpringBoot+MyBatis 整合)

本篇将记录 Phoenix 的安装配置过程,Shell 使用和使用 SpringBoot+MyBatis 整合 Phoenix。 配置过程中的一些常见错误已经在文中指出,有如 Phoenix 无法启动、缺少依赖、Command line too long、如何映射实体类等。 避免走笔者已经走过的弯路,如果还发现新的问题欢迎留言。

Ice__Clean的博客 3320

Hbase 使用场景及案例

Hbase特点 1. 高速写入:高速写入,对读取需求比较小。 2.大数据:分布式存储,海量数据搞得定。不用担心无限增长的数据。 3. 可靠:写入的不是内存,是硬盘,高性能 4. 查询简单:不需要复杂查询条件来查询数据的应用,HBase只支持基于rowkey的查询,对于HBase来说,单条记录或者小范围的查询是可以接受的。 Hbase使用场景1:对象存储 我们知道不少的头条类、新闻类的的...

ge2468的博客 2271

Hbase系列-2、Hbase基础

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 大数据系列文章目录 Hbase的官网 目录Hbase的基本简介Hbase的基本介绍Hbase的应用场景Hbase的发展历程Hbase的特点Hbase与RDBMS、HDFS 、Hive的区别Hbase的表模型Hbase的相关操作-命令式Hbase的基础操作命令Hbase高级shell管理命令 Hbase的基本简介 Hbase的基本介绍 NoSQL是一个通用术语,泛指一个数据库并不是使用SQL作为主要语言

不积跬步无以至千里,不积小流无以成江河 1728

HBase编程实战(JAVAAPI操作编写HBase工具类)

本文从工程实践着手,为读者提供了HBase编程完整流程,并对工作中常用的增、删、改、查、及API的使用封装成工具类,方便读者使用及学习。

石榴姐yyds 2017

hbase用于查询客户端工具

1、有多个工具可选择使用

残差检验_第三十讲 R语言-Cox比例风险模型的假设检验条件

在介绍完 Cox比例风险模型的详细理论和R实现以后(插入链接!!!),我们已经知道Cox比例风险模型可以较好的同时矫正多个混杂因素对结果的影响,同时我们遗留下来了一个问题:Cox比例风险模型的假设检验条件是什么?这一讲,我们将对此进行解答。请注意,如果使用不当,统计模型可能会产生误导性的结论。因此,检查给定的模型是否适合数据类型是非常重要的!1. Cox比例风险模型的假设条件Cox比例风险模型的成...

weixin_35476698的博客 8047

高斯泼溅(Gaussian Splatting):3D建模的颠覆性革命

高斯泼溅(Gaussian Splatting):3D建模的颠覆性革命

yingtu666的博客 5153

无线充电效率从75%到90%+:深入拆解LCC补偿网络如何成为电动汽车和智能车竞赛的‘稳压器’

本文深入探讨了LCC补偿网络如何显著提升无线充电效率至90%以上,成为电动汽车和智能车竞赛中的关键技术。通过分析LCC的三元件结构和双模式切换特性,揭示了其在负载突变和线圈错位情况下的稳定性优势,并展示了实际应用中的效率提升和产业化挑战。

weixin_42528191的博客 396

备战2025数学建模国赛(算法29):博弈论在数学建模竞赛中的应用

博弈论为数学建模竞赛提供了强大的分析工具,尤其适用于涉及多方互动决策的问题。本文介绍了博弈论的核心模型、算法实现及竞赛应用案例,并提供了完整的Python代码实现。扩展阅读方向不完全信息博弈与贝叶斯均衡合作博弈与联盟形成机制设计与拍卖理论随机博弈与马尔可夫决策过程博弈论与机器学习的结合。

YOLO 442

Coverity本地增量C/C++代码检查(Linux)操作简介

Coverity 是一款精确的综合静态分析与应用安全测试 (SAST) 平台,它可以在编写代码时发现关键的缺陷和安全缺陷,防止它们变成安全漏洞、故障或维护缺陷。

1482

072、LLC谐振变换器的谐振电容选型

文章摘要: 本文深入探讨了LLC谐振变换器中谐振电容的选型要点。作者通过实际案例指出,谐振电容的高频特性(如ESR、ESL)会显著影响LLC性能,导致死区振铃或EMI问题。对比薄膜电容(稳定性好但体积大)和MLCC(体积小但存在直流偏置与温漂缺陷),建议100W以上优先选薄膜电容。强调需关注容值精度、耐压、纹波电流及布局对称性,避免寄生参数引发谐振异常。最后提出验证方法(热成像与波形观测)及选型清单,并分享经验:薄膜电容可靠性更优,MLCC需严格测试,布局时应缩短走线以降低环路辐射。

Jack010169的博客 228

【实战篇导读】四足机器人运动控制导读

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对四足机器人运动运动控制系统及相关算法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章主要介绍了波士顿spot机器人的发展历史、四足机器人的硬件系统及电机执行器组成包括硬件系统、关节电机执行器,机载传感器机处理器及电气连接等。概述了四足机器人规划控制、感知、定位及局部地图的相关算法方向。

qq_35635374的博客 678

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: 【HBase之轨迹】(1)使用 Docker 搭建 HBase 集群
下一篇: 【HBase之轨迹】(3)Apache Phoenix 5.1.2 详细使用,像 MySQL 一样使用 SQL 语句操作 HBase(Shell 操作和 SpringBoot+MyBatis 整合)
寒冰小澈IceClean
博客等级 码龄6年 344粉丝 79原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒冰小澈IceClean

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值