HBase:(二)基本操作

news/2024/11/25 7:56:20/

1.数据模型

术语解释
Name Space命名空间,类似于关系型数据库的 database 概念,每个命名空间下有多个表。HBase 两个自带的命名空间,分别是 hbase 和 default,hbase 中存放的是 HBase 内置的表,default表是用户默认使用的命名空间。
 
Table类似于关系型数据库的表概念。不同的是,HBase 定义表时只需要声明列族即可,不需要声明具体的列。因为数据存储时稀疏的,所有往 HBase 写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,HBase 能够轻松应对字段变更的场景。
 
RowHBase 表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照 RowKey的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重要。
ColumnHBase 中的每个列都由 Column Family(列族)和 Column Qualifier(列限定符)进行限定,例如 info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义。
Time Stamp用于标识数据的不同版本(version),每条数据写入时,系统会自动为其加上该字段,其值为写入 HBase 的时间。
Cell由{rowkey, column Family:column Qualifier, timestamp} 唯一确定的单元。cell 中的数据全部是字节码形式存贮。

2.HBase基本操作

2.1namespace

2.1.1创建命名空间

        使用 help 语法查看命令如何使用

 help 'create_namespace'

创建 命名空间语法 如下: 

 举例:

create_namesapce 'bigdata'

2.1.2查看所有命名空间

list_namespace

2.2DDL语句

2.2.1创建表

        创建表有两种情况:

                1.多个列族,且有列族属性

                2.单个列族,且无列族属性

                3.多个列族,且无列族属性

情况1:创建表格 student,两个列族。info 列族数据维护的版本数为 5

 create 'bigdata:student',{NAME => 'info',VERSIONS => 5},{NAME => 'msg'}

情况2:创建表格 studen1,1个列族。info默认版本数为 1

 create 'bigdata:student1','info'

情况3:创建表格 studen2,1个列族。info,msg默认版本数为 1

 create 'bigdata:student2','info','msg'

*****默认版本数与指定版本数区别:

2.2.2查看表

查看所有表

list

查看单表详情

 describe 'bigdata:student'

2.2.3修改表

(1)增加列族和修改信息都使用覆盖的方法

 alter 'bigdata:student1', {NAME => 'msg', VERSIONS => 3}

之前 bigdata命名空间下的 student1 只有一个info列族,上面新增列族之后如图:

 (2)删除列族

#第一种方式alter 'bigdata:student1', NAME => 'msg', METHOD => 'delete'#第二种方式alter 'bigdata:student1', 'delete' => 'msg'

2.2.4删除表

#方式一:
disable 'bigdata:student2'#方式二:
drop 'bigdata:student2'

2.3DML语句

2.3.1写入数据

        hbase创建表时,不需要创建列,直接写入即可。

        如果重复写入相同 rowKey,相同列的数据,会写入多个版本进行覆盖。

 put 'bigdata:student','1001','info:name','zhangsan'put 'bigdata:student','1001','info:name','lisi'put 'bigdata:student','1001','info:age','22'

2.3.2读取数据

 读取数据有2种方式:get 、scan

        get 最大范围是一行数据,也可以进行列的过滤,读取数据的结果为多行 cell
get 'bigdata:student','1001'get 'bigdata:student','1001' , {COLUMN => 'info:name'}

        读取版本数,查出student这张表 的name 字段两个版本,2.3.1中 put写入数据 第一次1001 name 为张三,第二次写入1001 name 为lisi

get 'bigdata:student','1001' , {COLUMN => 'info:name', VERSIONS => 2}

        scan可以扫描数据,能读取多行数据,使用startRow 和 stopRow 来控制读取的数据,默认范围左闭右开。

scan 'bigdata:student',{STARTROW => '1001',STOPROW => '1002'}

2.3.3删除数据

        删除数据的方法有两个:delete deleteall
        delete 表示删除一个版本的数据,即为 1 cell ,不填写版本默认删除最新的一个版本
        
 delete 'bigdata:student','1001','info:name'

        deleteall 表示删除所有版本的数据,即为当前行当前列的多个 cell

 deleteall 'bigdata:student','1001','info:name'

实际开发中使用 shell 的机会不多

http://www.ppmy.cn/news/145486.html

相关文章

MySQL InnoDB缓存池

缓存池的作用 缓存表数据与索引数据,把磁盘上的数据加载到缓冲池,避免每次访问都进行磁盘IO,起到加速访问的作用。 为什么不把所有数据放到缓冲池中 凡事都具备两面性,抛开数据易失性不说,访问快速的反面是存储容量…

Thinkpad X200 换屏记

妈蛋,前几天屏幕废了(闪屏->昏暗->变黑),于是只能外界机房的显示器 作为一个计(xiu)算(dian)机(nao)学院的学生怎能被这点小事难倒,果断去某宝买了一块AFFS屏幕(我不是来打广告的),货到了过后果断换之。。。。 换前 swaping...... test…

CTEX下载安装教程

读研期间发表期刊,导师一般会要求学会使用CTEX排版,一般是要求CTEX2.9.2版本,下面是具体安装教程: 首先:浏览器搜索CTEX,便可以出现 点击进入 注意选择稳定版本进行下载,我选择下载的是清华开…

x200换屏_手把手教你更换二手X200/X200T笔记本的内置硬盘包含SSD支架

首先我们需要先简单了解下带T和不带T的区别,也就是X200T和X200前者是可以支持屏幕旋转的平板电脑,一般来说运行操作系统配合笔来操控,主要面对一些专业的人士比如说医疗教育以及公司会议等,当然一些朋友自己买回去也是一款非常那个…

ThinkPad X200开启VT

1. VT简介 被称为Vanderpool的虚拟技术简称VT,是英特尔公司处理器市场策略的一部分,英特尔公司的策略是向用户提供的实用功能而不是增长的性能。VT能够使用户在他们的个人电脑上建立多套虚拟的运行环境以便能够使同一台个人电脑上能够运行不同的…

x270

https://thinkpad.lenovo.com.cn/product/93964.html

Thinkpad T450 安装固态硬盘及内存条

Thinkpad T450 安装固态硬盘及内存条实践 Thinkpad T450 安装固态硬盘及内存条了解电脑配置安装内存条安装固态硬盘如何拆机系统迁移(SSD作系统盘)小结 Thinkpad T450 安装固态硬盘及内存条 T450有双内存槽、双硬盘位,因此可以在原配的基础上…

华硕 X201E 拆机

每次笔记本拆机,装好之后,就会发现多了几个螺丝,忘了从哪拧下来了 下面记录下华硕 X201E 清灰拆机过程 1:电脑正面图 2:背面图,一共9个螺丝 3:背面的9个螺丝拧下来,把后盖沿着缝隙扣下来 4&…