第一章:HBase定义
HBase学习
第一章:HBase定义
文章目录
- 一、HBase定义
- 二、HBase数据模型
- 1、HBase逻辑结构
- 2、HBase 物理存储
- 3、数据模型
- 1)、Name Space
- 2)、Region
- 3)、Row
- 4)、Column
- 5)、Time Stamp
- 6)、Cell
- 三、HBase基本架构
一、HBase定义
HBase是一种分布式、可扩展、支持海量数据存储的NoSql数据库
二、HBase数据模型
逻辑上,HBase的数据模型和关系型数据库类似,数据存储在一张表中,有行有列,但HBase的底层物流存储结构(k-v)来看,更像是一个多维度Map。
1、HBase逻辑结构
列族:相当于文件夹,图中name\ctiy\phone表示同一类信息。类似于mysql中宽表的切分
RowKey:行键,
Region:一张表的横向切片,把一张表进行数据切分。类似于mysql中高表的切分。
store: 存储
2、HBase 物理存储
HBase的存储:
表中的每一列的值都需要存储,如上图,切列中多了TimeStamp时间戳,Type数据操作类型,如Put,插入。
上图中,倒数第一、第二条数据发现除了时间戳和value不同,其他都相同,表示更新操作,HBase更新数据是向表中Put一条新的数据,且时间戳大于上一次时间戳,
删除操作通更新,只是Type类型不同,如果Delete的类型的时间戳大于之前的,则不返回数据 。
查询数据默认返回最大版本的TimeStamp
3、数据模型
1)、Name Space
命名空间,类似于关系型数据库的database概念,每个命名空间下有多个表。Hbase有两个自带的命名空间,分别是hbase和default,hbase中存放的是HBase内置的表,default是用户默认的命名空间。
2)、Region
类似关系型数据库中表的概念。不同的是吗,HBase定义表的时候只需要声明列族即可,不需要声明具体的列。也就是说,往HBase写入数据的时候,字段可以使动态、按需指定。因此,和关系型数据库相比,HBase能够轻松应对字段变更的场景。
3)、Row
HBase中每行数据都有一个RowKey和多个Column组成,数据按照RowKey的字典顺序存储的,并且查询数据时候只能根据Rowkey进行检索,所以RowKey的设计十分重要。
4)、Column
HBase中的每个列都是由Column Family(列族)和Column Qualifier(列限定符)进行限定,例如:info:name, info:age。建表时,只需要指明列族,而列限定符无需预先定义。
5)、Time Stamp
用于标识数据不同的版本,每条数据写入时,如不指定时间戳,系统会自动为其加上该字段,并写入HBase时间。
6)、Cell
由{rowkey,Column Family;Column Qualifier,Time Stamp}唯一确定的单元,cell中的数据是没有类型的,全是字节码形式存储。
三、HBase基本架构
第一章:HBase定义相关推荐
- C# 线程手册 第一章 线程定义 .NET 和 C# 对线程的支持
由于.NET Framework 支持自由线程,所以自由线程在所有.NET 语言中都存在,包括C#和VB.NET. 在下一部分,我们将着重关注如何提供这种支持以及更多关于线程是如何做到的,而不再关注线 ...
- 数据库原理与应用(SQL Server)笔记 第一章 数据定义语言和数据操纵语言
文章目录 前言 一.基本介绍 二.在SQL里执行T-SQL语句 三.数据定义语言(DDL) (一)概述 (二)数据定义语言用于数据库 1.创建数据库 2.修改数据库 3.使用数据库 4.删除数据库 5 ...
- 第一章----雷达定义和术语(一)
文章目录 什么是雷达 雷达分类之不同波段 高频(HF)和甚高频(VHF)雷达(A和B频带) 超高频(UHF)雷达(C波段) L波段雷达(D波段) S波段雷达(E和F波段) C波段雷达(G波段) X和K ...
- 《HBase 不睡觉》第一章 - 初识 HBase
<HBase 不睡觉书>是一本让人看了不会睡着的HBase技术书籍,写的非常不错,为了加深记忆,决定把书中重要的部分整理成读书笔记,便于后期查阅,同时希望为初学 HBase 的同学带来一些 ...
- VBScript教程-第一章. 脚本的定义和术语
最近一直很郁闷一件事, 大学毕业开始就有的一本微软脚本指南的书到现在也一点没看. 所以突发奇想想把它读完, 原书为英文, 看起来稍稍有些不爽, 准备顺便翻译并根据这几年积累的那么一点点知识添加和注释一 ...
- Java定义变量x初始值为3,JAVA 第一章
第一章 1.注释: 一个好的开发习惯,应该是多编写注释,这样程序的可读性增强. 单行注释 // 单行注释 ,只注释当前行 多行注释 /* 多行注释 多行注释 */ javadoc 注释 /** jav ...
- 怎么利用c 语言编程进行进制计算,编程达人 《汇编、C语言基础教程》第一章 进制1.1 进制的定义(连载)...
第一章进制 进制跟我们生活是息息相关的,比如时钟是60进制.24进制,星期是7进制等,最常见的就是十进制了.而计算机也离不开进制,计算机是通过二进制进行操作和运算的. 我们为什么要学习进制? 方便我们 ...
- 游戏感:虚拟感觉的游戏设计师指南——第一章 定义游戏感
这是一本游戏设计方面的好书 转自天:天之虹的博客:http://blog.sina.com.cn/jackiechueng 感谢天之虹的无私奉献 Word版可到本人的资源中下载 第一章定义游戏感 游戏 ...
- 用Latex写毕业论文-- 用 ctexset 重定义标题(如:第一章)
最开始我用的 \CTEXsetup[nameformat={第, 章}]{chapter}%\bfseries\songti 命令来试图重定义 chapter 标题为 第一章 这样的形式,然而并没有 ...
最新文章
- java之字符串学习记录
- 配置oracle 11g环境,oracle 11g 的安装环境的配置
- 一个例子理解什么是RPC?
- [密码学] 数字签名基础
- 《SAP CRM管理与实施指南》一一2.2 SAP CRM基础功能
- cygwin 编译 android vlc,Cygwin 编译 VLC 问题
- java8-2-Lambda表达式
- snmp是什么层协议_率先拥抱TSN——CC-Link发布新一代网络协议CC-Link IE TSN
- 群晖 root_群晖洗白简单教程
- 【Webcam设计】相机底层工作流程,编程模型
- 将json字符串转换成html,根据json字符串生成Html的一种方式
- 字符串大小写字母转换c 语言,C语言中对字母进行大小写转换的简单方法
- 支付宝免签 个人支付宝到银行卡
- 6种时间管理方法概要
- 双河市谷歌高清卫星地图下载
- 关于c4d默认渲染器的玻璃材质调试
- NLP情感分析基础知识
- PHP高级计算器的过程,PHP使用栈完成高级计算器-接上文模拟栈
- 九连环问题(Java)
- html+php教程,HTML入门教程