返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >详解HBase表的数据模型
  • 387
分享到

详解HBase表的数据模型

2024-04-02 19:04:59 387人浏览 独家记忆
摘要

目录表(Table)1. rowkey行键2. Column Family列族3. Column列4. cell单元格5. Timestamp时间戳理解数据模型各概念的图HBase是

HBase是运行在hadoop集群上的一个数据库,与传统的数据库有严格的ACID(原子性、一致性、隔离性、持久性)要求不一样,HBase降低了这些要求从而获得更好的扩展性,它更适合存储一些非结构化和半结构化的数据。

下面给大家详细介绍HBase表的数据模型,内容如下所示:

表(Table)

HBase 中的数据以表的形式存储。同一个表中的数据通常是相关的,使用表主要是可以把某些列组织起来一起访问。表名作为 hdfs 存储路径的一部分来使用,在 HDFS 中可以看到每个表名都作为独立的目录结构。

HBase表的数据模型主要概念包括rowkey、Column Family、Column、cell、Timestamp。

1. rowkey行键

  • table的主键,table中的记录==按照rowkey 的字典序进行排序==
  • rowkey行键可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes)

2. Column Family列族

  • 被称为列族或列簇
  • HBase表中的每个列,都归属与某个列族
  • 列族是表的schema的一部分(而列不是),即建表时至少指定一个列族
  • 比如创建一张表,名为user,有两个列族,分别是userInfoaddressInfo,建表语句create 'user', 'userInfo', 'addressInfo'

3. Column列

  • 列肯定是表的某一列族下的一个列,用列族名:列名表示,如userInfo列族下的name列,表示为userInfo:name
  • 它属于某一个ColumnFamily,类似于我们Mysql当中创建的具体的列

4. cell单元格

  • 知道row key行键、列族、列,可以确定的一个cell单元格

  • cell中的数据是没有类型的,全部是以字节数组进行存储

5. Timestamp时间戳

  • 可以对表中的Cell多次赋值,每次赋值操作时的时间戳timestamp,可看成Cell值的版本号version number
  • 即一个Cell可以有多个版本的值

理解数据模型各概念的图

上表展示的是 HBase 中的用户信息表 user,有三行记录和两个列族(不考虑空白的列族,代表可以有很多列族),行键分别为 1、2 和 3,两个列族分别为 userInfo 和 addressInfo,每个列族中含有若干列,如列族 userInfo 包括 name、age、sex 3列,列族 addressInfo 包括 address、from、phone、email、ralary 5列。

在 HBase 中,列不是固定的表结构,在创建表时,不需要预先定义列名,可以在插入数据时临时创建。

从表的逻辑模型来看,HBase 表与关系型数据库中的表结构之间好像没什么差别,只不过多了列族的概念。但实际上是有很大差别的,关系型数据库中表的结构需要预先定义,如:列名及其数据类型和值域等内容。

当需要添加新列,则需要修改表结构,这会对已有的数据产生很大影响。同时,关系型数据库中的表为每个列预留了存储空间,即表中的空白 Cell 数据在关系型数据库中以“NULL”值占用存储空间。因此,对稀疏数据来说,关系型数据库表中就会产生很多“NULL”值,消耗大量的存储空间。

与面向行存储的关系型数据库不同,HBase 是面向列存储的,且在实际的物理存储中,列族是分开存储的,即表中的用户信息表将被存储为 userInfo 和 addressInfo 两个部分。

同时HBase存在时间戳,可以多次对一个cell赋值,可以存储多个版本的值,如上表中rowkey为1的数据存储了2个时间版本的数据。

到此这篇关于详解HBase表的数据模型的文章就介绍到这了,更多相关HBase数据模型内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 详解HBase表的数据模型

本文链接: https://lsjlt.com/news/149020.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 详解HBase表的数据模型
    目录表(Table)1. rowkey行键2. Column Family列族3. Column列4. cell单元格5. Timestamp时间戳理解数据模型各概念的图HBase是...
    99+
    2024-04-02
  • HBase的数据模型讲解
    本篇内容主要讲解“HBase的数据模型讲解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HBase的数据模型讲解”吧!ROW KEY决定一行数据按照字典顺序排序的。Row key只能存储64k的...
    99+
    2023-06-03
  • HBase表的数据模型是什么
    本篇内容主要讲解“HBase表的数据模型是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HBase表的数据模型是什么”吧!HBase是运行在Hadoop集群上的一个数据库,与传统的数据库有严...
    99+
    2023-06-30
  • HBase支持哪些数据模型的操作
    HBase支持以下数据模型的操作: 列族数据模型:HBase使用列族(Column Family)来组织数据,每个列族包含多个列...
    99+
    2024-03-11
    HBase
  • HBase中数据分布模型是怎么样的
    这篇文章主要为大家展示了“HBase中数据分布模型是怎么样的”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HBase中数据分布模型是怎么样的”这篇文章吧。数据分...
    99+
    2024-04-02
  • Python数据类型详解(二)列表
    一.基本数据类型   整数:int   字符串:str(注:t等于一个tab键)   布尔值: bool   列表:list (元素的集合)   列表用[]   元祖:tuple   元祖用()   字典...
    99+
    2022-06-04
    详解 数据类型 列表
  • SQL的常用数据类型列表详解
    数据类型 描述 CHARACTER(n) 字符/字符串。固定长度 n。 VARCHA&...
    99+
    2024-04-02
  • hbase怎么修改表中数据
    要修改HBase表中的数据,可以使用以下方法之一: 使用put命令:使用put命令将新的值插入或更新到指定的行和列族中。语法如下...
    99+
    2023-10-28
    hbase
  • mysql的数据类型详解
    ################################# 分类标准: 分类: 数值数据类型:() 字符串数据类型 日期时间数据类型 json数据类型 空间数据类型   数值数据类型:   整数(精确值): 1)tinyint,占...
    99+
    2017-04-27
    mysql的数据类型详解 数据库入门 数据库基础教程 数据库 mysql
  • Redis 数据类型的详解
    Redis 数据类型的详解 概要: Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 String(字符串...
    99+
    2022-06-04
    详解 数据类型 Redis
  • Java数据结构之图的基础概念和数据模型详解
    目录图的实际应用图的定义及分类图的相关术语图的存储结构邻接矩阵邻接表图的实现图的API设计代码实现图的实际应用 在现实生活中,有许多应用场景会包含很多点以及点点之间的连接,而这些应用...
    99+
    2022-11-13
    Java数据结构 图 Java 图
  • hbase中如何查看表数据量
    要查看HBase表的数据量,可以使用HBase Shell或HBase API来执行计数操作。以下是几种方法: 使用HBase S...
    99+
    2024-04-02
  • HBase 与Hive数据交互整合过程详解
    Hive和Hbase整合理论1、为什么hive要和hbase整合2、整合的优缺点优点:(1).Hive方便地提供了Hive QL的接口来简化MapReduce的使用,  而HBase提供了低延迟的...
    99+
    2024-04-02
  • 大数据开发phoenix连接hbase流程详解
    目录一、安装phoennix添加配置二、启动phoenix服务三、phoenix常用语法四、Java代码集成phoenix一、安装phoennix添加配置 1、将phoenix-server-hbase-2.4-5.1...
    99+
    2022-11-20
    phoenix连接hbase 大数据phoenix
  • hbase如何查询表中的全部数据
    要查询HBase表中的全部数据,可以使用Scan类来扫描整个表。以下是一个示例代码,用于查询名为"mytable"的HBase表中的...
    99+
    2023-10-28
    hbase
  • pytorch模型转onnx模型的方法详解
    目录学习目标学习大纲学习内容1 . pytorch 转 onnx2 . 运行onnx模型3.onnx模型输出与pytorch模型比对总结学习目标 1.掌握pytorch模型转换到on...
    99+
    2024-04-02
  • MySQL数据库的数据类型decimal详解
    在MySQL数据库中,decimal数据类型用于存储精确的小数值。它比其他浮点类型(如float和double)更适合用于存储货币金...
    99+
    2023-09-14
    MySQL
  • 一文详解Python数据分析模块Numpy基础数据类型
    Numpy简介​NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy​ 是一个运行速度非常快的数学库,主要用于数组计算,包含...
    99+
    2023-05-14
    Python Numpy 数组
  • SQL数据类型详解
    一、数据类型简介 数据表由多列字段构成,每一个字段指定了不同的数据类型,指定了数据类型之后,也就决定了向字段插入的数据内容; 不同的数据类型也决定了 MySQL 在存储它们的时候使用的方式,以及在使用它...
    99+
    2024-04-02
  • 【mysql】—— 数据类型详解
    序言: 本期我将大家认识关于 mysql 数据库中的基本数据类型的学习。通过本篇文章,我相信大家对mysql 数据类型的理解都会更加深刻。 目录 (一)数据类型分类 (二)数值类型 1、tinyint类型 2、bit类型 3、小数类型 ...
    99+
    2023-08-31
    mysql 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作