EmmmuaCode EmmmuaCode
首页​
导航🚀​
  • 数据结构
  • 计算机网络
  • Java基础

    • JavaSE
    • JVM虚拟机
    • JUC并发编程
  • JavaWeb

    • Servlet
    • MVC
    • filter|listener
  • HTML
  • CSS
  • JavaScript
  • Vue
  • uni-app
  • Spring5
  • SpringMVC
  • SpringBoot2
  • SpringCloud
  • SpringSecurity
  • 搜索引擎

    • ElasticSearch
  • 消息队列

    • RabbitMQ
  • 服务器

    • Nginx🌐
  • 服务框架

    • Dubbo
  • Python基础
  • 数据分析
  • Hadoop
  • SQL 数据库

    • MySQL
  • NoSQL 数据库

    • NoSQL数据库概论
    • Redis
    • MongoDB
    • HBase
  • 框架

    • MyBatis
    • MyBatis-Plus
    • ShardingSphere
  • 部署

    • Linux
    • Docker
  • 管理

    • Maven
    • Git
  • 友情链接
  • 优秀博客文章
  • 索引

    • 分类
    • 标签
    • 归档
  • 其他

    • 关于
Github (opens new window)

wufan

海内存知己,天涯若比邻。
首页​
导航🚀​
  • 数据结构
  • 计算机网络
  • Java基础

    • JavaSE
    • JVM虚拟机
    • JUC并发编程
  • JavaWeb

    • Servlet
    • MVC
    • filter|listener
  • HTML
  • CSS
  • JavaScript
  • Vue
  • uni-app
  • Spring5
  • SpringMVC
  • SpringBoot2
  • SpringCloud
  • SpringSecurity
  • 搜索引擎

    • ElasticSearch
  • 消息队列

    • RabbitMQ
  • 服务器

    • Nginx🌐
  • 服务框架

    • Dubbo
  • Python基础
  • 数据分析
  • Hadoop
  • SQL 数据库

    • MySQL
  • NoSQL 数据库

    • NoSQL数据库概论
    • Redis
    • MongoDB
    • HBase
  • 框架

    • MyBatis
    • MyBatis-Plus
    • ShardingSphere
  • 部署

    • Linux
    • Docker
  • 管理

    • Maven
    • Git
  • 友情链接
  • 优秀博客文章
  • 索引

    • 分类
    • 标签
    • 归档
  • 其他

    • 关于
Github (opens new window)
  • MySQL-基础

    • MySQL-简介
    • MySQL-CRUD
    • MySQL-函数
    • MySQL 多表查询
    • MySQL 约束与自增长
    • MySQL 索引与事务
    • MySQL 表类型和存储引擎
    • MySQL 视图与管理
  • MySQL-进阶

    • MySQL 存储引擎
    • MySQL 索引
    • MySQL SQL优化
    • MySQL 视图/存储过程/触发器
    • MySQL 锁
    • MySQL InnoDB引擎
    • MySQL 管理
  • MySQL-运维

    • MySQL 日志
    • MySQL 主从复制
    • MySQL 分库分表
    • MySQL 读写分离
  • NoSQL 数据库概论

    • 非关系型数据库
    • NoSQL数据库理论基础
    • NoSQL数据库分类
  • Redis

    • Redis 数据库简介
    • Redis 概述安装
    • 常用五大数据类型
    • Redis 配置文件
    • Redis 发布和订阅
    • Redis 新数据类型
    • Redis Java整合
    • Redis 事务与锁
    • Redis 持久化操作
    • Redis 主从复制
    • Redis 集群搭建
    • Redis 缓存问题
    • Redis 分布式锁
    • Redisson 的应用
    • Redis 6.0新功能
  • MongoDB

    • MongoDB 相关概念
    • MongoDB 安装
    • MongoDB 常用命令
    • MongoDB 索引-Index
    • MongoDB 整合Java案例
    • MongoDB 集群和安全
  • HBase

    • HBase简介
    • HBase系统架构
    • HBase数据定义
    • HBase数据操作
      • put
      • delete
      • 数据查询
        • get
        • scan
      • 数据统计
    • HBase基本原理
  • MyBatis

    • MyBatis 入门案例
    • XML 配置
    • XML 映射文件
    • 动态SQL
    • 缓存
    • MyBatis的逆向工程
    • 分页插件
  • MyBatis-Plus

    • MyBatis-Plus 简介
    • MyBatis-Plus 入门案例
    • MyBatis-Plus 基本CRUD
    • MyBatis-Plus 常用注解
    • 条件构造器和常用接口
    • MyBatis-Plus 插件
    • MyBatis-Plus 通用枚举
    • MyBatis-Plus 代码生成器
    • MyBatis-Plus 多数据源
    • MyBatisX插件
  • ShardingSphere

    • ShardingSphere_高性能架构模式
    • ShardingSphere 简介
    • ShardingSphere 主从同步
    • ShardingSphere_JDBC 读写分离
    • ShardingSphere-JDBC垂直分片
    • ShardingSphere-JDBC水平分片
    • 启动ShardingSphere-Proxy
    • ShardingSphere-Proxy读写分离
    • ShardingSphere-Proxy垂直分片
  • studynotes
  • database
  • HBase
wufan
2022-03-23
目录

HBase数据操作

# HBase数据操作

01

# put

  • 语法
put  '表名','行键','列族:列限定符','单元格值',时间戳
1
  • 描述
    • 必须指定表名、行键、列族、列限定符
    • 列族必须是已经创建的,否则HBase会报错
    • 列名是临时定义的,所以列族里的列是可以随意扩展的
    • 时间戳是可选参数,如不设置,则系统会自动插入当前时间为时间戳
    • 参数区分大小写,字符串使用单引号
    • 只能插入单个数据

02

  • 描述:如果指定的单元格已经存在,则put操作为更新数据;
    • 单元格会保存指定VERSIONS=>n的多个版本数据

03

# delete

  • 语法
delete  '表名','行键','列族<:列限定符>',<时间戳>
1
  • 描述:必须指定表名、行键和列族,列限定符和时间戳是可选参数;

    • delete最小删除粒度为单元格,且不能跨列族删除

04

注意

delete操作并不会马上删除数据,只是将对应的数据打上删除标记,只有在数据产生合并时,数据才会被删除。

# 数据查询

# get

  • 语法
get  '表名','行键',<'列族:列限定符',时间戳>
1

get 'student','001'

get 'student','001',{COLUMN=>'Grades'}

05

get 'student','001' ,{COLUMN=>'Grades',TIMERANGE => [1,2]}

get 'student','001' ,{COLUMN=>'StuInfo',VERSIONS=>2}

hbase(main):020:0> put 'student', '001', 'StuInfo:Name','jim green',2

0 row(s) in 0.0140 seconds

hbase(main):021:0> put 'student', '001', 'StuInfo:Name','jerry',3

0 row(s) in 0.0140 seconds

hbase(main):022:0> put 'student', '001', 'StuInfo:Name','curry',4

0 row(s) in 0.0690 seconds

hbase(main):023:0> get 'student','001',{COLUMN => 'StuInfo',VERSIONS => 2}

COLUMN CELL

StuInfo:Age timestamp=1541039335956, value=18

StuInfo:Name timestamp=4, value=curry

StuInfo:Name timestamp=3, value=jerry

StuInfo:Sex timestamp=1541039336280, value=Male

4 row(s) in 0.0240 seconds

# scan

  • 语法
scan  '表名',{< '列族:列限定符',时间戳>}
1
  1. 扫描全表:scan '表名'
  2. 指定列族名称:

scan 'student', {COLUMN=>'stuinfo'}

  1. 指定列族和列的名称

scan 'student', {COLUMN=>'stuInfo:Name'}

  1. 指定输出行数

scan 'student', {LIMIT => 1}

  1. 指定输出行键范围

scan 'student', {STARTROW =>'001',ENDROW => '003'}

  1. 指定组合条件查询

scan 'student', {COLUMN=>'stuinfo',STARTROW =>'001',ENDROW => '002'}

# 数据统计

  • 语法
count  '表名'
1

hbase(main):004:0> count ‘student’

3 row(s) in 0.0440 seconds

在关系型数据库中,有多少条记录就有多少行,表中的行数很容易统计。而在 HBase 里,计算逻辑行需要扫描全表的内容,重复的行键是不纳入计数的,且标记为删除的数据也不纳入计数。

执行 count 命令其实是一个开销较大的进程,特别是应用在大数据场景时,可能需要持续很长时间,因此,用户一般会结合 Hadoop 的 MapReduce 架构来进行分布式的扫描计数。

#HBase
上次更新: 2024/04/21, 09:42:22
HBase数据定义
HBase基本原理

← HBase数据定义 HBase基本原理→

最近更新
01
微信支付功能的实现与流程
11-21
02
购物车与结算区域的深入优化与功能完善
11-21
03
购物车与结算区域的功能实现与优化
11-21
更多文章>
Theme by Vdoing | Copyright © 2023-2024 EmmmuaCode | 黔ICP备2022009864号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式