hbase数据类型,HBase基础概念知识学习?

营销圈公众号引导关注

一、基本概念

关于hbase它是来自于谷歌的论文bigtable衍生出来的,Google论文:BigTable。

HBase是一个构建在HDFS上的分布式列存储系统;

HBase是Apache Hadoop生态系统中的重要一员,主要用于海量结构化数据存储;

从逻辑上讲,HBase将数据按照表、行和列进行存储。

实际存储样式

hbase数据类型,HBase基础概念知识学习?

但用户的逻辑视图下面的样子

hbase数据类型,HBase基础概念知识学习?

二、nosql和关系型数据库

nosql型数据库,not only sql(不仅仅是数据库),常见的有:

mongodb,语言C++,基于文档存储,类似于json格式的格式存储;

hbase:apache开源的分布式数据库,也是hadoop生态圈的部分,存储量非常大,底层也是依赖于hdfs;

redis:基于内存,key-value形式,通过key快速得到value的值。

相对应的主流关系型数据库:

Oracle:针对于商业版,收费,端口号1521

MySQL :针对于社区版,免费,中小型企业居多,端口号3306

sql server:端口号1433 (目前还不能安装在linux中,不过慢慢的在靠拢)。

三、为什么要用HBase,而不直接用HDFS呢?

1.hdfs是分布式的文件系统,存储大量数据;hbase是数据库,构建与hdfs之上

2.hdfs不支持快速单个记录查找;hbase支持大表的快速查找

3.hdfs提供了高延迟批处理;hbase提供了单行记录低延迟随机访问

4.hdfs只提供数据按序访问;hbase内部是使用hash表提供的随机访问,在hdfs上存放索引文件,用于快速查找

四、Hbase表的特点

大:一个表可以有数十亿行,上百万列;

无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的

列;面向列:面向列(族)的存储和权限控制,列(族)独立检索;

稀疏:对于空(null)的列,并不占用存储空间,表可以设计的非常稀疏;

举例:

学生信息表(RDBMS)

hbase数据类型,HBase基础概念知识学习?

存数据的时候一般先给学号(ID),再给其它信息,如果这列没有值,就是NULL,也是占用空间的。

数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;

hbase数据类型,HBase基础概念知识学习?

数据类型单一:Hbase中的数据都是字符串,没有类型。

进一步理解:

hbase是面向列簇的数据库,所谓的列簇就是指一组列,适用于海量数据的随机读写

table中只定义了列簇,一个表可以包含多个列簇,列簇中的列可增可减,表按照行(row)存储

没有数据库的概念,有个namespace空间,所有的表都是依赖于一个namespace下的,类似database的概念

行键:没有主键,rowkey,类似主键的概念,唯一标识一行

列簇:column family在每个列簇中包含不同的字段,将相同属性的列划分一个组,建表的时候必须要指明一个列簇,可以不给字段

列:column在列簇里的字段

版本:version,【不是hbase版本】表示是单元格或者单元格组,默认显示最新的version

五、行存储与列存储

传统行式数据库

(1)、数据是按行存储的

(2)、没有索引的查询使用大量I/O

(3)、建立索引和物化视图需要花费大量时间和资源

(4)、面向查询的需求,数据库必须被大量膨胀才能满足性能要求

列式数据库

(1)、数据是按列存储-每一列单独存放

(2)、数据即是索引

(3)、只访问查询涉及的列-大量降低系统I/O

(4)、每一列由一个线索来处理-查询的并发处理

(5)、数据类型一致,数据特征相似-高效压缩

六、数据模型

网上有一些图,可以用来理解

hbase数据类型,HBase基础概念知识学习?

Rowkey与Column Family

Version和Value

(1)HBase schema可以有多个 Table

(2)每个表可由多个Column Family组成

(3)HBase 可以有 Dynamic Column

列名称是编码在cell中的,不同的cell可以拥有不同的列

hbase数据类型,HBase基础概念知识学习?

(1)version number 可由用户提供

无需以递增的顺序插入,每一行的rowkey必须是唯一的

(2)Table 可能非常稀疏

很多 cell 可以是空的

(3)Row Key是主键

七、Hbase支持的操作

(1)所有操作均是基于rowkey的;

 支持CRUD(Create、Read、Update和Delete)和Scan;

(2)单行操作

 Put

 Get

 Scan

(3)多行操作

 Scan

 MultiPut

(4)没有内置join操作,可使用MapReduce解决。

八、Hbase物理模型

(1)每个column family存储在HDFS上的一个单独文件中;

(2)Key 和 Version number在每个 column family中均由一份;

(3)空值不会被保存。

好了,这篇文章的内容营销圈就和大家分享到这里,如果大家对网络推广引流和网络创业项目感兴趣,可以添加微信:Sum8338 备注:营销圈引流学习,我拉你进直播课程学习群,每周135晚上都是有实战的推广引流技术和网络创业项目课程分享,当然是免费学!

版权声明:本站部分文章来源互联网用户自发投稿,主要目的在于分享信息,版权归原作者所有,不承担相关法律责任。如有侵权请联系我们反馈邮箱yingxiaoo@foxmail.com,我们将在7个工作日内进行处理,如若转载,请注明本文地址:https://www.yingxiaoo.com/135831.html