2

HBASE基本概念

 1 year ago
source link: https://blog.51cto.com/u_15130867/6007978
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

HBASE基本概念

精选 原创

執孒の掱,與 2023-01-15 00:13:25 博主文章分类:大数据 ©著作权

文章标签 数据 时间戳 赋值 文章分类 其它 大数据 yyds干货盘点 阅读数354

  1. HBase以表的形式存储数据。表有行和列族组成。列族划分为若干个列。其结构如下:
HBASE基本概念_数据

二、Row Key:行键

  1. hbase本质上也是一种Key-Value存储系统。Key相当于RowKey,Value相当于列族数据的集合
  2. 与nosql数据库们一样,row key是用来检索记录的主键
  3. 访问hbase table中的行,只有三种方式:
  1. 通过单个row key访问
  2. 通过row key的range
  1. Row key行键 (Row key)可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes),在hbase内部,row key保存为字节数组
  2. 存储时, 数据按照Rowkey的字典序(byte order)排序存储。设计key时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。(位置相关性)

三、列族(列簇)

  1. hbase表中的每个列,都归属与某个列族
  2. 列族是表的schema的一部分(而列不是),列族必须在使用表之前定义
  3. 列名都以列族作为前缀。例如courses:history , courses:math 都属于 courses 这个列族
  4. 访问控制、磁盘和内存的使用统计都是在列族层面进行的。实际应用中,列族上的控制权限能帮助管理不同类型的应用:允许一些应用可以添加新的基本数据、一些应用可以读取基本数据并创建继承的列族、一些应用则只允许浏览数据(甚至可能因为隐私的原因不能浏览所有数据)

四、Cell与时间戳

  1. 由{row key, column( = + < label>), version} 唯一确定的单元
  2. cell中的数据是没有类型的,全部是字节码形式存贮
  3. 每个 cell都保存着同一份数据的多个版本,版本通过时间戳来索引
  4. 时间戳的类型是 64位整型。时间戳可以由hbase(在数据写入时自动 )赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值
  5. 如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳
  6. 每个 cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面
  7. 为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担,hbase提供了两种数据版本回收方式:
  1. 保存数据的最后n个版本
  2. 保存最近一段时间内的版本(比如最近七天)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK