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

手机网站建立免费平台广州搜发网络科技有限公司

手机网站建立免费平台,广州搜发网络科技有限公司,番禺做网站公司,在微信上做网站一、 HBase 定义 Apache HBase™ 是以 hdfs 为数据存储的,一种分布式、可扩展的 NoSQL 数据库。 二、 HBase 数据模型 HBase 的设计理念依据 Google 的 BigTable 论文,论文中对于数据模型的首句介绍。 Bigtable 是一个稀疏的、分布式的、持久的多维排…

一、 HBase 定义

Apache HBase™ 是以 hdfs 为数据存储的,一种分布式、可扩展的 NoSQL 数据库。

二、 HBase 数据模型

HBase 的设计理念依据 Google 的 BigTable 论文,论文中对于数据模型的首句介绍。
Bigtable 是一个稀疏的、分布式的、持久的多维排序 map。
之后对于映射的解释如下:
该映射由行键、列键和时间戳索引;映射中的每个值都是一个未解释的字节数组。
最终 HBase 关于数据模型和 BigTable 的对应关系如下:
HBase 使用与 Bigtable 非常相似的数据模型。用户将数据行存储在带标签的表中。数
据行具有可排序的键和任意数量的列。该表存储稀疏,因此如果用户喜欢,同一表中的行可
以具有疯狂变化的列。
最终理解 HBase 数据模型的关键在于稀疏、分布式、多维、排序的映射。其中映射 map
指代非关系型数据库的 key-Value 结构。

在这里插入图片描述

1)Name Space
命名空间,类似于MSYQL的数据库,每个命名空间下有多个表。HBase 两
个自带的命名空间,分别是 hbase 和 default,hbase 中存放的是 HBase 内置的表,default

2)Table
类似于MYSQL的表。不同的是,HBase 定义表时只需要声明列族即可,不需
要声明具体的列。因为数据存储时稀疏的,所有往 HBase 写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,HBase 能够轻松应对字段变更的场景。
3)Row
类似于MYSQL中的每一行。HBase 表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照 RowKey
的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重
要。
4)Column
类似于MYSQL中创建表需要指定的字段。HBase 中的每个列都由 Column Family(列族)和 Column Qualifier(列限定符)进行限定,例如 info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义
5)Time Stamp
用于标识数据的不同版本(version),每条数据写入时,系统会自动为其加上该字段,
其值为写入 HBase 的时间。时间戳用来定义数据的状态,hbase底层是hdfs所有没有真正意义上的删除和修改。修改:主要是通过底层插入新的数据,通过时间戳覆盖旧的数据实现数据的修改。删除:也是是通过底层插入新的数据,通过时间戳覆盖旧的数据实现数据的修改,只不过数据的类型是delete。
6)Cell
由{rowkey, column Family:column Qualifier, timestamp} 唯一确定的单元。cell 中的数
据全部是字节码形式存贮。

三、HBase 逻辑结构

逻辑结构类似于MYSQL:

在这里插入图片描述

四、物理存储结构:

以下是实际操作演示,可以更加直观的看到数据的存储方式:

在bigdata的项目空间里面创建一张有persional_info,office_info两个列族的teacher表。

create 'bigdata:teacher','persional_info','office_info'

根据hbase创建表的方式就可以看出,hbase只要求指定列族,而不需要指定具体的列(也就是mysql中的字段名),从而也可以得处hbase为什么支持列动态扩展。
在这里插入图片描述


put 'bigdata:teacher','1001','persional_info:name','zhangsan'
put 'bigdata:teacher','1001','persional_info:city','shanghai'
put 'bigdata:teacher','1001','persional_info:phone','18100070908'
put 'bigdata:teacher','1001','office_info:tel','010-1111111'
put 'bigdata:teacher','1001','office_info:address','dongfangmingzhu'

在这里插入图片描述

get 'bigdata:teacher','1001'

查询插入的表数据,可以发现hbase内部的存储结构:
列族:字段名 时间戳 值
看到下面这张图,相信大家应该也能理解,hbase为什么叫列式存储,key-value结构。
在这里插入图片描述
其实我们可以先简单想象成,无非就是把每列抽出来,然后关联上rowkey。这个叫列式存储
在这里插入图片描述

当然要想实现增删改查,每一列只关联上rowkey是无法实现的,还需要有ColumnFamily(列族)+Column Qualifier(列修饰符)+TimeStamp(时间戳–版本)+KeyType(类型)。
并且hbase的key也不是单单指rowkey而是:
Key由RowKey(行键)+ColumnFamily(列族)+Column Qualifier(列修饰符)+TimeStamp(时间戳–版本)+KeyType(类型)组成,而Value就是实际上的值。

下面是hbase每条数据的内部结构图:
在这里插入图片描述
这个hbase查询全表返回的数据格式,类似于MYSQL的select * from teacher;
在这里插入图片描述
对比上面的例子,其实很好理解,因为我们修改一条数据其实上是在原来的基础上增加一个版本的,那我们要准确定位一条数据,那就得(RowKey+Column+时间戳)。
KeyType是什么?我们上面只说了「修改」的情况,你们有没有想过,如果要删除一条数据怎么做?实际上也是增加一条记录,只不过我们在KeyType里边设置为“Delete”就可以了。

**修改操作:**可以看出添加一条新的数据就会覆盖了旧的数据。
在这里插入图片描述
删除操作:从图中大家可以看出,虽然删除了那条数据却出现了一条新的数据,不过时间戳小于刚刚的那条数据。其实这就是hbase的删除机制,数据没有真正的删除只不过是类型状态修改为Delete,修改也没有真正意义的修改,只不过是新插入一条数据覆盖了旧的数据。当新的数据被定义为删除的时候,就会看到旧的数据。hbase的查询都是根据状态为未删除的最新时间戳的一条数据为准。
在这里插入图片描述

http://www.hkea.cn/news/432348/

相关文章:

  • web网站开发能使用c 吗免费建立个人网站申请
  • 织梦网站修改教程视频网站优化培训学校
  • 南沙区交通和建设局网站中国十大网络销售公司
  • 免费建设网站的方法百度网址大全 官网
  • 手机网站设计制作公司微信推广费用一般多少
  • 建设网站需要什么注册域名费用一般多少钱
  • 女性门户网站源码百度指数功能有哪些
  • 怎么帮公司做网站建设谷歌搜索引擎免费入口 香港
  • 请写出网站建设前期需要做的准备外贸定制网站建设电话
  • 南京门户网站建设网络营销优秀案例
  • 2012服务器如何做网站周口网络推广哪家好
  • 贵阳搜索玩的网站网络舆情软件免费入口
  • 前端自己写代码建网站要花多少钱游戏推广在哪里接活
  • 网站建设中+网页代码nba最新排名东西部
  • 东莞企业建设网站官网有限公司百度推广深圳分公司
  • 海外推广工作内容搜索引擎优化seo是什么
  • wordpress 发短信西安网络优化大的公司
  • dreamweaver个人网站南宁求介绍seo软件
  • 网站常用素材企业培训视频
  • 北京市通州区建设委员会网站网站新站整站排名
  • 太原网站推广只选中联传媒推广排名seo
  • 企业网站建设的常见流程为百度互联网营销顾问
  • 养殖企业网站网络营销策划名词解释
  • 如何进行电子商务网站推广?百度网盘app
  • 做情趣网站需要什么资质sem推广外包
  • 国外网站做任务赚钱的最近新闻有哪些
  • 建设部网站查资质中裕隆百度推广登录平台网址
  • 黄页网站大全免费山东网络推广优化排名
  • 网站文字代码常见的网络营销工具
  • 计算机毕设网站建设怎么改长沙网站设计拓谋网络