Hbase 理论知识讲解和常用语句

HBase理论知识详解

1.历史

HBase是属于非关系型数据库(NoSQL),他最早起源于Google发布的Bigtable,经过发展,他已经成为一种广泛应用于各种行业生产的成熟技术,它的用户包括Adobe,Twitter和雅虎等公司。

2.关于NoSQL

在我们了解HBase的时候我们要先去了解非关系型数据库,按常理说,关系型数据库能解决很多问题,但是随着社会的发展,数据量的增大和对性能的要求,同时还有数据格式的多样性,关系型数据库不能满足日常所需,在这种情况下NoSQL应运而生。

2.1 NoSQL数据库的分类

Nosql数据库分为四类,分别是键值(Key-Value)存储型数据库、列存储数据库、文档型数据库和图形(Graph)数据库。

1.键值(Key-Value)存储数据库
类似于Java中的Map,其数据库表中有一个特定的Key键和所指向的Value值。Key-Value的模型优势在于简单且容易部署,可以将程序中的数据直接映射到数据库中,比如Redis。

2.列式存储数据库
传统的关系型数据库是行存储的,而列式存储是以列家族的格式来存储,仅仅想要查询所需要的列,查询速度能大幅度提高。

3.文档型数据库
文档型数据库和键值对相似,该类型的数据模型是按照某些特定的格式进行存储,如Json格式就是属于Mongodb文档型数据库。

4.图形(Graph)数据库
跟其他数据库有非常大的不同,他是基于灵活的图形模型来进行排列并运行的

2.2应用场景和和关系型数据库的不同

非关系型数据库主要应用于一下几个方面:
1.数据量大、模型比较简单
2.对数据库性能要求比较高,需要接月成本和维护成本
3.对于key,比较容易映射复杂的环境,数据之间的关系性不强

非关系型和关系型的区别:
1.(成本):NoSQL容易部署,基本都是开源软件,比较便宜

2.(查询速度):NoSQL数据库将数据存储在缓存中,关系型数据库则是存储在硬盘中,自然查询速度NoSQL更胜一筹

3.(存储数据格式):NoSQL的存储数据格式有很多,就像我刚刚上面所写的那样

3.HBase基础

我们知道HDFS大型数据集分析处理的文件系统,具有高延迟的特点,他读取的是数据集而不是记录,所以当处理底延迟的用户请求时,HBase是更好的选择

HBase是一个基于Hadoop和ZooKeeper的列式数据库,是一个高可靠,高性能,面向列,可伸缩,实时读写的分布式数据库。HBase利用Hadoop作为文件存储系统,利用基于YARN的Mapreduce来处理HBase中的海量数据,利用Zookeeper作为分布式协同服务。
此外,如果数据量不够大,几百万或者几千万的时候还是建议使用传统关系型数据库,因为可能数据只在一个节点上,其他的节点没有使用,当数据上亿以后可以考虑使用。

3.1 HBase数据模型

1.行键(Row Key)
行键是字节数组,任何的字符串都可以作为行键,只是行键只能存储64KB的字节数据

2.列族(Column Family)
HBase中每个列都是归属于每一个列族的,列名均以列族为前缀,每一个列族可以拥有多个成员变量。如course:China,course:Japen等

3.时间戳(Timestamp)
就是指数据写入HBase时候会自动赋值

4.单元格(Cell)
是没有解析的字节数组,由行和列的坐标交叉决定

4.HBase的Shell操作(实战上手)

1.创建表

create '表名称''列族名称1''列族名称2'

create 'test1','cf1','cf2'

2.列出所有表

list

3.删除表

disable '表名称'

4.插入数据

put '表名称','ROW值','列族名称:列名','列值'

put 'test1','1','cf1:name','jobs'

5.查询数据

scan '表名称'

scan 'test1'

6.删除数据

delete '表名称','ROW值','列族名称:列名'

delete 'test1','1','cf1:name'

7.修改数据

put '表名称','ROW值','列族名称:列名','新列值'

put 'test1','1','cf1:name','Amy'

8.查看表

describe '表'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值