当前位置: 首页 > 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.yayakq.cn/news/917997/

相关文章:

  • nginx网站开发推广线上渠道
  • 怎样自己建个人网站上海小企业网站建设
  • asp.net mvc 5 网站开发之美微商软文大全
  • 上海营销网站设计wordpress 小说
  • 服务器网站模板苏州乡村旅游网站建设策划书
  • 美食网站开发计划青海建筑网站建设公司
  • 淘宝客网站一定要备案吗可以直接玩游戏的网站
  • 新泰高品质网站建设自己如何做网站建设
  • 微网站可以做商城吗总工会网站建设方案
  • 邢台做wap网站网站建设论坛社区
  • 潍坊市网站建设设计柳州网站建设公
  • 网站建设 网址导航产品宣传片
  • 网站做公司转发 wordpress 奖励
  • 做分类信息网站代码博客wordpress主题
  • 天津seo网站推广网站结构怎么做
  • 不用服务器怎么做网站wordpress站安装百度商桥
  • 沈阳做企业网站唐山制作手机网站
  • 对网站开发流程的了解wordpress人性化主题
  • 宁波市北仑区建设局网站在深圳注册公司需要什么资料
  • html5移动网站开发广州哪里可以做网站
  • 东莞有哪些好的网站建设公司衡阳网站备案
  • 上海闸北区网站建设站长工具排名分析
  • wordpress更新不成功济源新站seo关键词排名推广
  • 网站怎么装模版wordpress淘宝客pid插件
  • 泰安网站建设泽讯长沙房产网二手房出售信息
  • 网站开发 视频存储营销排名seo
  • php网站开发套模板步骤关于网站建设的职位
  • 免费网站建设多少钱网站开发和系统开发区别
  • 无锡公司网站建设电话贺卡网图
  • 展示型网站报价docker wordpress