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

【大数据运维】Hbase shell 常见操作

文章目录

  • 一. DDL
    • 1. 表的DDL
      • 1.1. 创建表
      • 1.2. 删除表
    • 2. 列族的DDL
      • 2.1. 增加一个列簇
      • 2.2. 删除列族
      • 2.3. 修改列族版本(ing)
  • 二. DML
    • 1. 插入与更新数据
    • 2. 删除数据
    • 3. 清空表
  • 三. DQL
    • 1. scan:查一批数据
      • 1.1. 查询全部
      • 1.2. 过滤rowkey
      • 1.3. 过滤列
      • 1.4. 列族查询
    • 2. get:查询一条
      • 1.1. 指定rowkey
      • 1.2. 过滤值
      • 1.3. 过滤列

先进入到shell中 ./bin/hbase shell


-- 查看Hbase服务器状态
status-- 查看当前数据库中有哪些表
list-- 列出一些表的详细信息
describe 'book'

 

一. DDL

1. 表的DDL

1.1. 创建表


创建student表, 包含base_f1、base_f2两个列族create 'student', 'base_f1', 'base_f2' 
或者 
create 'user', {NAME => 'base_f1', VERSIONS => '1'},{NAME => 'base_f2'}

 

1.2. 删除表

-- 先disable 再drop hbase
disable 'student' 
drop 'student' -- 如果不进行disable,直接drop会报错 ERROR: Table student is enabled. Disable it first.

 

2. 列族的DDL

2.1. 增加一个列簇


alter 'book','date'

2.2. 删除列族

alter 'student', 'delete' => 'base_f1'

 

2.3. 修改列族版本(ing)


alter 'book',{NAME=>'date',VERSIONS=>3}}

 

二. DML

1. 插入与更新数据

-- put '表名称', 'rowkey', '列族:列名', '值'
-- 因为表中只定义了列族,所以列族下的新列可以直接在插入数据下添加
-- 向表中添加数据,在想HBase的表中添加数据的时候,只能一列一列的添加,不能同时添加多列。put 'staff1','0101','info2:nnn1','test'

更新操作同插入操作一模一样,只不过有数据就更新(实际是加了一个版本),没数据就添加

更新版本号


-- 将student表的 base_info 列族版本号改为5alter 'student', NAME => 'base_f1', VERSIONS => 5

 

2. 删除数据


-- 删除student表 rowkey为rk01,列标示符为 base_f1:name 的数据delete 'student', 'rk01', 'base_f1:name'-- 指定时间戳删除
delete 'student', 'rk01', 'base_f1:name', 1392383705316

 

3. 清空表


truncate 'book'

 

三. DQL

1. scan:查一批数据

1.1. 查询全部

scan 'staff1'ROW                         COLUMN+CELL0101                       column=info1:sea, timestamp=1711098585861, value=test0102                       column=info2:addr, timestamp=1711098585993, value=test10102                       column=info2:name, timestamp=1711098585923, value=test10102                       column=info2:sea1, timestamp=1711098585895, value=test1  -- 过滤查询
scan 'book',{LIMIT=>2}-- 包含STARTROW,不包含ENDROW
scan 'book',{STARTROW=>'1',ENDROW=>'3'}

1.2. 过滤rowkey

-- 查询student表中row key以rk字符开头的scan 'student',{FILTER=>"PrefixFilter('rk')"}

1.3. 过滤列

-- 查询student表中列族为 base_f1 和 base_f2且列标示符中含有aa字符的信息scan 'student', {COLUMNS => ['base_f1 ', 'base_f2'], FILTER => "(QualifierFilter(=,'substring:aa'))"}

1.4. 列族查询


-- 列族
scan 'student', {COLUMNS => ['base_f1', 'base_f2']} --列族:列
scan 'student', {COLUMNS => ['base_f1:name', 'base_f2:address']}-- 列族:列 并指定最新的三个版本
scan 'student', {COLUMNS => 'base_f1:name', VERSIONS => 3}

 

2. get:查询一条

1.1. 指定rowkey


--获取student表中row key为rk01的所有信息
get 'student', 'rk01'-- 获取user表中row key为rk0001,base_info列族的所有信息
get 'student', 'rk01', 'base_f1'-- 获取student表中row key为rk0001,base_info列族的name、age列标示符的信息
get 'student', 'rk01', 'base_f1:name', 'base_f2:address'

 

1.2. 过滤值

-- 获取student表中row key为rk01,值为zhangsan的信息get 'student', 'rk01', {FILTER => "ValueFilter(=, 'name:zhangsan')"}

 

1.3. 过滤列


-- 获取student表中row key为rk01,列中含有a的信息
get 'student', 'rk01', {FILTER => (QualifierFilter(=,'substring:a'))"}

 

http://www.lryc.cn/news/331627.html

相关文章:

  • LeetCode-217存在重复的元素
  • 基于两个单片机串行通信的电子密码锁设计
  • 产品经理功法修炼(3)之产品设计
  • Qt 的发展历史、现状与启示
  • Quiet-STaR:让语言模型在“说话”前思考
  • 【Kotlin】匿名类和伴生类
  • 【机器学习算法介绍】(3)决策树
  • 算法之查找
  • LInux脚本学习
  • JavaWeb基础(计网 socket 数据库 JDBC lombok Mybatis JUnit Maven)
  • 【HBase】
  • Vue3:使用Pinia存储、读取、修改数据
  • 基于 Quartz.NET 可视化任务调度平台 QuartzUI
  • 前端三剑客 —— CSS (第三节)
  • C# 系统学习(异步编程)
  • 前端工程师————CSS学习
  • C# 登录界面代码
  • 点云的Python均值采样
  • xss-labs 11-13通关记录
  • Unity类银河恶魔城学习记录12-2 p124 Character Stats UI源代码
  • 技术揭秘:如何打造完美互动的充电桩硬件与服务平台?
  • 【Django学习笔记(四)】JavaScript 语言介绍
  • IO和NIO的主要区别在哪里?
  • 爬虫部署平台crawlab使用说明
  • uniapp uni.scss中使用@mixin混入,在文件引入@include 样式不生效 Error: Undefined mixin.(踩坑记录一)
  • Redis的5大常见数据类型的用法
  • 刘小光本就疑心赵本山与他媳妇李琳有染,赵本山为证实清白便想起蛋糕上的字,结果呢?
  • Unity之PUN实现多人联机射击游戏的优化(Section 2)
  • 多叉树题目:N 叉树的层序遍历
  • 时序数据库IoTDB:功能详解与行业应用