HBase数据模型

  • 数据模型解析
  • 专业术语
    • NameSpace:
    • Table:
    • RowKey:
    • Column Family:
    • Column Qualifier:
    • Cell:
    • Timestamp:
  • 小结

数据模型解析

数据类型:int,char… HBase不存在数据类型,字节存储

数据模型:行,列 HBase不仅有行列,HBase还有:RK,CF,TS,Q,cell

专业术语

NameSpace:

  • 命名空间是类似于关系数据库系统中的数据库的概念,他其实是表的逻辑分组。这种抽象为多租户相关功能奠定了基础。
    命名空间是可以管理维护的,可以创建,删除或更改命名空间。

  • HBase有两个特殊预定义的命名空间:

    • default-没有明确指定名称空间的表将自动落入此名称空间
    • hbase-系统命名空间,用于包含HBase内部表

Table:

  • Hbase的table由多个行组成

  • Row Key Time Stamp Column Family1 Column Family2 Column Family3
    111 t6 CF2:q1=val1 CF3:q3=val3
    112 t3 CF1:q2=val3
    t2 CF1:q8=val2

RowKey:

  • RowKey是用来检索记录的主键,是一行数据的唯一标识
  • RowKey行键(RowKey)可以是任意字符串(最大长度是64KB,实际应用中长度一般为10-100bytes),RowKey以字节数组保存。
  • 存储时,数据按照RowKey的字典序(byte order)排序存储。设计RowKey时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。

Column Family:

  • 列簇在物理上包含了许多的列与列的值,每个列簇都有一些存储的属性可配置。

    • 例如是否使用缓存,压缩类型,存储版本数等。在表中,每一行都有相同的列簇,尽管有些列簇什么东西也没有存。
  • 将功能属性相近的列放在同一个列族,而且同一个列族中的列会存放在同一个Store中。列族一般需要在创建表的时候就进行声明,而且一般一个表中的列族数不要超过3个
    • 这个和后期的优化相关
  • 列隶属于列族,列族隶属于表

Column Qualifier:

  • 列簇的限定词,理解为列的唯一标识。但是列标识是可以改变的,因此每一行可能有不同的列标识
  • 使用的时候必须列族:列
  • 列可以根据需求动态添加或者删除,同一个表中不同行的数据列都可以不同

Cell:

  • cell是由row,column family,column qualifier,version 组成的
  • cell中的数据是没有类型的,全部是字节码形式存贮。
    • 因为HDFS上的数据都是字节数组

Timestamp:

  • HBase中通过rowkey和column family,column qualifier确定的一个存贮单元称为cell。每个 cell都保存着同一份数据的多个版本。
  • 版本通过时间戳来索引。
    • 时间戳的类型是64位整型
    • 默认时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。
    • 如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。
  • 每个cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。
    • 查询数据的时候,如果不指定版本数,默认显示版本号最新(高)的数据
  • 为了避免数据存在过多版本中造成管理(包括存贮和索引)负担,HBASE提供了两种数据版本回收方式。
    • —是保存数据的最后n个版本
    • 二是保存最近一段时间内的版本(比如最近七天)

小结

HBase是一个稀疏的、分布式、持久、多维、排序的映射,它以行键(row key),列键(column key–>cfq)和时间戳(timestamp)为索引。
Hbase在存储数据的时候,有两个SortedMap,首先按照rowkey进行字典排序,然后再对Column进行字典排序。

照rowkey进行字典排序,然后再对Column进行字典排序。

2 HBase数据模型相关推荐

  1. 2021年大数据HBase(三):HBase数据模型!!!【建议收藏】

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Hbase数据模型 术语: 系列历史文章 2021年大 ...

  2. 带你了解 HBase 数据模型和 HBase 架构

    摘要:HBase 是一个面向列的 NoSQL 数据库. 本文分享自华为云社区<HBase 架构:HBase 数据模型 & HBase 读/写机制>,作者: Donglian Lin ...

  3. HBase数据模型解析和基本的表设计分析

     编辑 删除 最近在学习HBase的使用,并仔细阅读了一篇官方推荐的博客,在这里就以一边翻译一边总结的方式和大家一起梳理一下HBase的数据模型和基本的表设计思路. 官方推荐的博客原文地址:htt ...

  4. Hbase数据模型入门

    在HBase中,数据存储在具有行和列的表中.这是与关系数据库(RDBMS)的术语重叠,但这并不是一个有用的类比.相反,将HBase表视为多维映射会有所帮助. HBase数据模型术语 表 一个HBase ...

  5. HBase数据模型与整体架构

    目录 1.HBase的特点 2.HBase数据模型 2.1.HBase逻辑架构 2.2.HBase物理存储 3.HBase整体架构 HBase原理深入: HBase原理深入_李嘉图呀李嘉图的博客-CS ...

  6. 【Hadoop】HBase 数据模型(Data Model)

    Data Model 在HBase中,数据是存储在有行有列的表格中.这是与关系型数据库重复的术语,并不是有用的类比.相反,HBase可以被认为是一个多维度的映射. HBase数据模型术语 Table( ...

  7. Hbase(四)hbase 数据模型进阶

    1.4 hbase 数据模型进阶 row key timestamp CF1 CF2 CF3 11248112 t3   CF2:m1=val1 CF3:k3=val3 t2 CF1:q2=val2 ...

  8. Hbase数据模型与存储结构

    一.Hbase简介 Hbase是一个高可靠性.高性能.面向列.可伸缩.实时读写的分布式数据库.依托Hadoop-HDFS作为其文件存储系统,利用MapReduce来处理海量数据,用Zookeeper作 ...

  9. HBase数据模型和读写原理

    Hbase的数据模型和读写原理: ​ HBase是一个开源可伸缩的分布式数据库,他根据Google Bigtable数据模型构建在hadoop的hdfs存储系统之上. ​ HBase是一个稀疏.多维度 ...

最新文章

  1. HDU2925(约瑟夫环问题)
  2. Yoshua Bengio团队通过在网络「隐藏空间」中使用降噪器以提高深度神经网络的「鲁棒性」
  3. 延展信息按单制造ERP荣获2012中国软件优秀解决方案奖
  4. [转载]使用C#的BitmapData
  5. CSS垂直翻转/水平翻转提高web页面资源重用性
  6. SSD安装及训练自己的数据集
  7. 笔试小结---非对称加密算法
  8. [转]C#操作XML方法详解
  9. Linux 命令简单介绍第二课笔记
  10. jpa 原生sql 查询返回一个实体_spring data系列之jpa
  11. 中国医学史(第三章 中医药理论体系的初步形成)
  12. 家园2简易地图编辑器
  13. 基于Qt开发的AES文件加解密工具
  14. deepin 更新企业微信最新版本方法
  15. 如何让div靠右_div对齐 CSS实现DIV居中对齐 div居右对齐 div居左对齐
  16. 神经网络 语音识别,神经网络语音合成
  17. Disk-expansion
  18. 想做自媒体,做什么样的内容呢,怎么做呢--第006期博文
  19. 2020年百度运维工程师笔试真题(附答案)
  20. 信号的时域相位、频域相位

热门文章

  1. sqlite3 表里插入系统时间(时间戳)
  2. 装linux时可用空间只有1929k,求Linux命令习题
  3. 织梦地方php分类信息,织梦标签:infolink 分类信息地区与类型快捷链接
  4. 重磅嘉宾公布,第四范式AI新品发布会进入报名倒计时
  5. 操作系统设计与实现第3版笔记与minix3心得(3)-操作系统发展历史(1)
  6. 一文读懂中国互联网的30年(整合版)
  7. 斯坦福大学CS229数学基础(线性代数、概率论)中文翻译版.pdf
  8. 【论文解读】EfficientNet强在哪里
  9. 【NLP】通俗讲解从Transformer到BERT模型!
  10. 【Python基础】Python基础语法14个知识点大串讲