HBase(2):HBase数据模型

news2024/9/21 0:51:36

1 简介

在HBASE中,数据存储在具有行和列的表中。这是看起来关系数据库(RDBMS)一样,但将HBASE表看成是多个维度的Map结构更容易理解。

表结构如下:

ROWKEY

C1列蔟

C2列蔟

rowkey

列1

列2

列3

列4

列4

列6

列簇结构如下:

rowkey

0001

C1(Map)

列1 => 值1

列2 => 值2

列3 => 值3

C2(Map)

列4 => 值4

列5 => 值5

列6 => 值6

列数据实例:

{
  "zzzzz" : "woot",
  "xyz" : "hello",
  "aaaab" : "world",
  "1" : "x",
  "aaaaa" : "y"
}

2 术语

2.1 表(Table)

  • HBase中数据都是以表形式来组织的
  • HBase中的表由多个行组成

在HBase WebUI(http://node1.itcast.cn:16010中可以查看到目前HBase中的表)

 

2.2 行(row)

  • HBASE中的行由一个rowkey(行键)和一个或多个列组成,列的值与rowkey、列相关联
  • 行在存储时按行键按字典顺序排序
  • 行键的设计非常重要,尽量让相关的行存储在一起
  • 例如:存储网站域。如行键是域,则应该将域名反转后存储(org.apache.www、org.apache.mail、org.apache.jira)。这样,所有Apache域都在表中存储在一起,而不是根据子域的第一个字母展开

后续,我们会讲解rowkey的设计策略。

2.3 列(Column)

  • HBASE中的列由列蔟(Column Family)和列限定符(Column Qualifier)组成
  • 表示如下——列蔟名:列限定符名。例如:C1:USER_ID、C1:SEX

2.4 列蔟(Column Family)

  • 出于性能原因,列蔟将一组列及其值组织在一起
  • 每个列蔟都有一组存储属性,例如:

        是否应该缓存在内存中

        数据如何被压缩或行键如何编码等

  • 表中的每一行都有相同的列蔟,但在列蔟中不存储任何内容
  • 所有的列蔟的数据全部都存储在一块(文件系统HDFS)
  • HBase官方建议所有的列蔟保持一样的列,并且将同一类的列放在一个列蔟中

 

2.5 列标识符(Column Qualifier)

  • 列蔟中包含一个个的列限定符,这样可以为存储的数据提供索引
  • 列蔟在创建表的时候是固定的,但列限定符是不作限制的
  • 不同的行可能会存在不同的列标识符

2.6 单元格(Cell)

  • 单元格是行、列系列和列限定符的组合
  • 包含一个值和一个时间戳(表示该值的版本)
  • 单元格中的内容是以二进制存储的

ROW    

COLUMN+CELL                                                           

1250995

column=C1:ADDRESS, timestamp=1588591604729, value=\xC9\xBD\xCE\xF7\xCA

1250995

column=C1:LATEST_DATE, timestamp=1588591604729, value=2019-03-28       

1250995

column=C1:NAME, timestamp=1588591604729, value=\xB7\xBD\xBA\xC6\xD0\xF9

1250995

column=C1:NUM_CURRENT, timestamp=1588591604729, value=398.5            

1250995

column=C1:NUM_PREVIOUS, timestamp=1588591604729, value=379.5           

1250995

column=C1:NUM_USEAGE, timestamp=1588591604729, value=19                

1250995

column=C1:PAY_DATE, timestamp=1588591604729, value=2019-02-26          

1250995

column=C1:RECORD_DATE, timestamp=1588591604729, value=2019-02-11       

1250995

column=C1:SEX, timestamp=1588591604729, value=\xC5\xAE                 

1250995

column=C1:TOTAL_MONEY, timestamp=1588591604729, value=114

3 概念模型

Row Key

Time Stamp

ColumnFamily

contents

ColumnFamily

anchor

ColumnFamily

people

"com.cnn.www"

t9

anchor:cnnsi.com = "CNN"

"com.cnn.www"

t8

anchor:my.look.ca = "CNN.com"

"com.cnn.www"

t6

contents:html = "<html>…"

"com.cnn.www"

t5

contents:html = "<html>…"

"com.cnn.www"

t3

contents:html = "<html>…"

"com.example.www"

t5

contents:html = "<html>…"

people:author = "John Doe"

  • 上述表格有两行、三个列蔟(contens、ancho、people)
  • “com.cnn.www”这一行anchor列蔟两个列(anchor:cssnsi.com、anchor:my.look.ca)、contents列蔟有个1个列(html)
  • “com.cnn.www”在HBase中有 t3、t5、t6、t8、t9 5个版本的数据
  • HBase中如果某一行的列被更新的,那么最新的数据会排在最前面,换句话说同一个rowkey的数据是按照倒序排序的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/466532.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学系统集成项目管理工程师(中项)系列13a_人力资源管理(上)

1. 基本情况 1.1. 项目团队成员的特征 1.1.1. 高学历、高素质、流动性强、年轻、个性独立 1.2. IT行业的显著特征 1.2.1. 工作强度大 1.3. 绩效评定、招聘、留用、劳工关系、健康与安全规定及其他与管理人力资源有关的技能 1.4. 项目团队成员是项目的人力资源 1.5. 项目…

后端要一次性返回我10万条数据

问题描述 面试官&#xff1a;后端一次性返回10万条数据给你&#xff0c;你如何处理&#xff1f;我&#xff1a;歪嘴一笑&#xff0c;what the f**k! 问题考察点 看似无厘头的问题&#xff0c;实际上考查候选人知识的广度和深度&#xff0c;虽然在工作中这种情况很少遇到... …

【unity项目实战】3DRPG游戏开发06——敌人和攻击

导入敌人素材 RPG Monster Duo PBR Polyart 拖入敌人,如果觉得他的亮度有点低,选择他本体,可以选择调节修改他材质球metllic alpha的值 我们新建一个敌人脚本,我们的所有敌人都会挂载这个脚本,如果我们希望每个敌人都挂载导航组件,一个添加无疑是很麻烦的,我们可以使…

基于ESP32的zigbee温湿度采集系统

一. 系统设计及框图&#xff1a; 本设计可以实现通过ZIGBEE传输温湿度信息和开关量信号到云端然后再通过手机APP显示。系统分为发射端和接收端&#xff0c;发送端采集温湿度信息后通过ZIGBEE发送到接收端&#xff0c;接收端接收到温湿度信息后上传到云端并通过手机APP显示。 …

import _jpype ImportError: DLL load failed: 找不到指定的模块

问题记录及解决思路 &#xff08;1&#xff09;问题记录 当python3需要调用java程序的需求时&#xff0c;需要使用到jpype这个库&#xff0c;尝试通过pip install jpype 进行安装&#xff0c;结果提示没有这个库&#xff0c;看网上教程提示pip install jpype1进行安装还是有问…

游戏测试的整个流程是什么

在游戏行业中&#xff0c;游戏测试是一个非常重要的岗位&#xff0c;并且游戏测试的内容是比较复杂的&#xff0c;除了对游戏的整体流程有一定的了解之外&#xff0c;还需要对一些细节部分有所了解。那么&#xff0c;一个完整的游戏测试流程是怎么样的呢? 游戏测试其实并不是一…

扎克伯格:同时专注AI和Metaverse,Quest 3将是下一个里程碑

自更名以来&#xff0c;Meta大张旗鼓的重磅投入元宇宙面临了一系列风波&#xff0c;市场经济不景气&#xff0c;广告利润下降&#xff0c;大幅裁员、重组等。 23年1季度Meta实现营收增长&#xff0c;好于预期&#xff0c;而此前三个季度同比都是下跌&#xff0c;可见“效率年”…

【AI实战】微小目标检测模型SSPNet--训练环境从零开始搭建

【AI实战】微小目标检测模型SSPNet--训练环境从零开始搭建 SSPNet介绍环境搭建安装依赖参考 SSPNet介绍 SSPNet: Scale Selection Pyramid Network for Tiny Person Detection from UAV Images 官方连接 https://github.com/MingboHong/SSPNetarxiv https://arxiv.org/abs/210…

ValueError: Please specify `target_modules` in `peft_config`解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

hive进阶——在centos7里面配置mysql,将原来hive的客户端扩展

系列文章目录 centos集群上安装hive客户端的操作步骤以及hive介绍 文章目录 一、启动hive客户端 二、在Hive上面安装MySQL 2.1、MySQL安装 1 检查当前系统是否安装过 MySQL 2 将 MySQL安装包拷贝到 /opt/software目录下 3 解压 MySQL安装包 ​4 在安装目录下执行 rpm …

泰迪杯|第十一届“泰迪杯”挑战赛作品提交仅剩2天了!

提交作品截止时间: 2023年4月28日 16:00:00 距离第十一届“泰迪杯”数据挖掘挑战赛提交作品结束时间只剩2天了&#xff0c;相信大家都在做着最后的更改。小编为大家整理了一些提交的步骤及注意事项&#xff0c;记得一定要调好闹钟&#xff0c;不要错过提交时间哦。 01 在作…

【Cpp】前K个高频单词-排序的稳定性

文章目录 题目思路1--使用sort排序并优化其稳定性方法一:方法二 思路2--multiset 题目 https://leetcode.cn/problems/top-k-frequent-words/description/ 思路1–使用sort排序并优化其稳定性 我们可以直接先将每个单词出现的次数用一个CountMap统计出来,然后放入一个vecto…

超级详细的华为OSPF实验及配置

什么是OSPF&#xff1f; 开放式最短路径优先OSPF&#xff08;Open Shortest Path First&#xff09;是IETF组织开发的一个基于链路状态的内部网关协议&#xff08;Interior Gateway Protocol&#xff09;。 目前针对IPv4协议使用的是OSPF Version 2&#xff08;RFC2328&#x…

【Linux】8、查看 Linux 主机运行状态、压缩和解压缩命令、Linux 的环境变量

目录 一、查看 Linux 系统资源占用二、硬盘信息监控三、网络监控命令四、Linux 文件上传和下载命令五、压缩和解压(1) 压缩格式(2) tar 命令 六、Linux 的环境变量 一、查看 Linux 系统资源占用 ✒️ 可通过 top 命令查看系统的 CPU、内存的使用情况&#xff08;类似 Windows …

超详细Redis入门教程——Redis 持久化

前言 本文小新为大家带来 超详细Redis入门教程——Redis 持久化 相关知识&#xff0c;具体内容包括持久化基本原理&#xff0c;RDB 持久化&#xff08;包括&#xff1a;持久化的执行&#xff0c;RDB 优化配置&#xff0c;RDB 文件结构&#xff0c;RDB 持久化过程&#xff09;&a…

台灯护眼灯哪个牌子好用?真正适合学生使用的护眼台灯

最近家里一款陪伴了多年的灯泡的台灯因为年久失修已经损坏了&#xff0c;导致不得不换个台灯&#xff0c;而换台灯就不得不仔细挑选&#xff0c;毕竟是需要长期使用的&#xff0c;对视力方面影响还是很大的&#xff0c;通常老式台灯的光照明显对视力都产生不了太大保护&#xf…

AI可以实现陪伴需求吗

在现代社会&#xff0c;科技日新月异&#xff0c;个性化AI定制服务已经成为一种新型的科技应用&#xff0c;被越来越多的人所接受和使用。个性化AI定制是一种基于人工智能技术的个性化服务&#xff0c;它可以帮助我们更好地规划生活&#xff0c;为我们提供情感上的陪伴和生活上…

Go 1.21新特性前瞻

Go 1.21版本[1]正在如火如荼地开发当中&#xff0c;按照Go核心团队的一年两次的发布节奏来算&#xff0c;Go 1.21版本预计将在2023年8月发布(Go 1.20版本[2]是在2023年2月份发布的)。 本文将和大家一起看看Go 1.21都会带来哪些新特性。不过由于目前为时尚早&#xff0c;下面列出…

AI绘图实战(七):室内设计线稿渲染、景观设计手绘稿改动、建筑照片转线稿|Stable Diffusion成为设计师生产力工具

S&#xff1a;AI能取代设计师么&#xff1f; I &#xff1a;至少在设计行业&#xff0c;目前AI扮演的主要角色还是超级工具&#xff0c;要顶替&#xff1f;除非甲方对设计效果无所畏惧~~ 预先学习&#xff1a; 安装及其问题解决参考&#xff1a;《Windows安装Stable Diffusion …

03.DolphinScheduler资源中心

文章目录 文件管理基础操作创建文件上传文件文件查看下载文件文件重命名删除文件 任务样例创建 shell 文件创建工作流执行文件查看结果 UDF管理函数管理任务样例编写 UDF 函数配置 UDF 函数使用 UDF 函数 任务组管理任务组配置新建任务组查看任务组队列任务组的使用 任务组的实…