【大数据学习 | HBASE】habse的表结构

在使用的时候hbase就是一个普通的表,但是hbase是一个列式存储的表结构,与我们常用的mysql等关系型数据库的存储方式不同,mysql中的所有列的数据是按照行级别进行存储的,查询数据要整个一行查询出来,不想要的字段也需要查询出来,hbase是列式存储的方式实现的,它的一个列的所有行都是存储为一份文件,在大数据场景中我们一般一个表的字段都会比较多,那么我们业务很多情况下是不需要查询出来所有的列的,所以列式存储会大大的减少数据查询带来的消耗问题,为我们的查询增加效率。

我们已经知道了hbase是列级别存储的,那么我们看具体的存储结构

a

表中的数据结构rowkey是hbase表自带的主键,每个表中都会存在这样一个主键,它的格式为存储为Byte数组,什么样的数据都可以充当为rowkey进行存储,但是在存储的时候要转换为byte数组进行存储,并且数据是按照rowkey的字典顺序进行排序的。

表中是存在列的,但是这个列以列族进行分类,比如info列族中存在三个列id,name,age 相应的列的存储数据类型也可以是任意的类型,但是都会以byte数组形式存储在hbase中。

我们在使用hbase的表的时候,我们就按照上图的表格显示进行使用就可以了,但是实际的底层存储却不是我们所看到的样子

首先我们先要知道,hbase的表的数据操作分为两个类型,一个是put一个是deleteput是更新或者插入新的数据都使用这个命令它会自己覆盖数据,delete是删除数据,hbase的底层数据存储是hdfs,hdfs中的数据是不允许我们随意的进行操作和修改的,那么我们的所有操作都必须要先放入到自己的内存中然后在将数据写出到hdfs中,和hdfs中的数据进行合并处理,所以我们在hbase中真正存储的数据并不是按照表的样子进行存储的,底层是按照k-v类型存储到hbase中的,并且写出到hdfs中。

我们在上面的表中可以看到数据的存储是按照表格形式存储的,但是表格形式的存储在hbase的底层数据中并不是真正存在的,而是kv类型存储的,其中存储的数据包含以下几个部分,key的组成是[rowkey主键,列族,列,时间戳和操作类型],其中rowkey是唯一性的主键,每个数据都必须和主键相关联,列族和列组成了相对应的存储描述,时间戳用于做数据的修改保存,用于识别最新的数据是什么,而不像是关系型数据库它的每个操作都会直接写出到数据上,我们只能在上层操作,并且操作完毕以后将数据一下写出到hdfs中进行最终保存,所以时间戳是必备项同于我们识别数据的版本,能够认识到数据的变化流程,找出最新的数据,type类型用户识别操作是什么,从而最后得出数据最新值,value是我们每次操作对应的值

而且因为数据在底层存储是按照kv类型进行存的,那么我们会发现在不同的行的数据可能字段并不相同,并不是像关系型数据库中,列是固定死的,从而我们发现hbase的数据存储中能够固定死的就只有列族信息。

在我们操作和使用hbase之前,先要知道以下几个比较重要的关键词

namespace

命名空间:相当于是关系型数据中的数据库概念。在hbase中可以根据不同的业务声明不同的命名空间,一个命名空间中会存在多个表,类似于数据库表的分类层级

table

hbase数据库中的表,和关系型数据库的表相同,但是这个表中我们只需要声明列族即可,不需要指定相应的列字段,因为不同的行中的数据是按照kv进行存储的,可以动态变化

row

hbase表中的一行内容,一行中会存在一个唯一的rowkey,以及很多用列族和列字段标识的值,hbase的表是列式存储的,那么一行中的不同列族是位于多个文件中的,在查询一整行内容的时候可能会需要用到多个底层存储文件才能获取到。

column family

列族:表中的列的固定部分,其中一个列族中会包含很多个列,每个列并不是真实存在的,只是存储数据时候的一个描述而已,更像是kv数据中的一个简单的描述值,一个列族会单独存储到一个文件中,这个列族中所有的列都是存在一个文件中的。

column

列:在一个列中的下一级的描述关键字。

timestamp

操作时间戳,用于在数据多次操作的时候记录每一次操作的时间,用于标识数据的版本

cell

单元格:一个由行和列进行定位的数据位置叫做单元格信息,其中包含一个确定的值,这个值其实只是kv存储的一个单独的value值,会根据上面的timestamp时间戳存在多个版本。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

泛微E9 OA与金蝶云的差旅费报销接口集成

FD001-差旅费报销申请 泛微>金蝶--498 集成案例分享 在企业日常运营中,差旅费报销申请的处理效率直接影响到员工满意度和财务管理的精确性。为了实现泛微OA-Http系统与金蝶云星空平台之间的数据无缝对接,我们设计并实施了FD001-差旅费报销申请集成方…

鸿蒙开发:ArkUI Toggle 组件

ArkUI提供了一套完整的UI开发工具集,帮助开发者高效完成页面的开发。它融合了语言、编译器、图形构建等关键的应用UI开发底座,为应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能以及实时界面预览工具等,可以支持…

ONLYOFFICE 文档8.2更新评测:PDF 协作编辑、性能优化及更多新功能体验

文章目录 🍀引言🍀ONLYOFFICE 产品简介🍀功能与特点🍀体验与测评ONLYOFFICE 8.2🍀邀请用户使用🍀 ONLYOFFICE 项目介绍🍀总结 🍀引言 在日常办公软件的选择中,WPS 和微软…

Webserver(5.6)服务器压力测试

目录 webbench是linux上一款知名的优秀的web性能压力测试工具。 测试处在相同硬件上,不同服务的性能以及在不同硬件上同一个服务的运行状况 展示服务器的两项内容:每秒钟响应请求数和每秒钟传输数据量 webbench首先fork多个子进程,每个子进程…

数据结构:顺序表(动态顺序表)

专栏说明:本专栏用于数据结构复习,文章中出现的代码由C语言实现,在专栏中会涉及到部分OJ题目,如对你学习有所帮助,可以点赞鼓励一下博主喔💓 博客主页:Duck Bro 博客主页系列专栏:数…

【ACM出版,九大高校联合举办, IEEE Fellow支持】2024年计算机视觉与艺术研讨会(CVA 2024,11月29-12月1日)

2024年计算机视觉与艺术研讨会(CVA 2024) 2024 Seminar on Computer Vision and Art 基本信息 会议官网:www.icadi.net 2024 Seminar on Computer Vision and Artwww.icadi.net(CVA为ICADI分会,网站沿用主会议;议程、…

若依框架-添加测试类-最新

1、在【ruoyi-admin】的pom.xml下添加依赖 <!-- 单元测试--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-test</artifactId><scope>test</scope></dependency><dependency>…

用 Python 从零开始创建神经网络(二)

用 Python 从零开始创建神经网络&#xff08;二&#xff09; 引言1. Tensors, Arrays and Vectors&#xff1a;2. Dot Product and Vector Additiona. Dot Product &#xff08;点积&#xff09;b. Vector Addition &#xff08;向量加法&#xff09; 3. A Single Neuron with …

信息安全工程师(76)网络安全应急响应技术原理与应用

前言 网络安全应急响应&#xff08;Network Security Incident Response&#xff09;是针对潜在或已发生的网络安全事件而采取的网络安全措施&#xff0c;旨在降低网络安全事件所造成的损失并迅速恢复受影响的系统和服务。 一、网络安全应急响应概述 定义&#xff1a;网络安全应…

JavaScript:点击导航栏未显示完整的tab自动滚动并显示完整

提醒 本文实例使用vue开发的 一、需求场景 开发商品分类页面需求如下&#xff1a; 顶部显示商品分类导航栏&#xff0c;可左右自由滑动&#xff0c;点击左边或右边未显示完整的tab自动滚动显示完整&#xff1b;点击顶部显示商品分类导航栏tab&#xff0c;下面列表数据显示对应的…

【C++】详解RAII思想与智能指针

&#x1f308; 个人主页&#xff1a;谁在夜里看海. &#x1f525; 个人专栏&#xff1a;《C系列》《Linux系列》 ⛰️ 丢掉幻想&#xff0c;准备斗争 目录 引言 内存泄漏 内存泄漏的危害 内存泄漏的处理 一、RAII思想 二、智能指针 1.auto_ptr 实现原理 模拟实现 弊端…

力扣: 144 二叉树 -- 先序遍历

二叉树 – 先序遍历 描述&#xff1a; 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例&#xff1a; 先序遍历&#xff1a;根左右 何解&#xff1f; 1、递归 : 无需多言一看就懂 2、遍历法 中序查找时&#xff0c;最先出入的节点是左子树中的最左侧二叉…

从0开始搭建一个生产级SpringBoot2.0.X项目(十)SpringBoot 集成RabbitMQ

前言 最近有个想法想整理一个内容比较完整springboot项目初始化Demo。 SpringBoot集成RabbitMQ RabbitMQ中的一些角色&#xff1a; publisher&#xff1a;生产者 consumer&#xff1a;消费者 exchange个&#xff1a;交换机&#xff0c;负责消息路由 queue&#xff1a;队列…

github高分项目 WGCLOUD - 运维实时管理工具

GitHub - tianshiyeben/wgcloud: Linux运维监控工具&#xff0c;支持系统硬件信息&#xff0c;内存&#xff0c;CPU&#xff0c;温度&#xff0c;磁盘空间及IO&#xff0c;硬盘smart&#xff0c;GPU&#xff0c;防火墙&#xff0c;网络流量速率等监控&#xff0c;服务接口监测&…

CDN到底是什么?

文章目录 CDN到底是什么&#xff1f;一、引言二、CDN的基本概念1、CDN的定义2、CDN的作用3、代码示例&#xff1a;配置CNAME记录 三、CDN的工作原理1、请求流程2、代码示例&#xff1a;DNS解析过程3、完整的CDN工作流程 四、总结 CDN到底是什么&#xff1f; 一、引言 在互联网…

DeFi 4.0峥嵘初现:主权金融时代的来临

近年来&#xff0c;Web3领域的创新似乎遇到了瓶颈&#xff0c;DeFi&#xff08;去中心化金融&#xff09;从热潮的巅峰逐渐进入了一个沉寂期。我们再也没有见到像DeFi Summer那样的行业兴奋&#xff0c;资本市场的动荡和Meme币的出现&#xff0c;似乎让人们忘记了曾经的区块链技…

Linux:调试器 gdb/cgdb 的使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、调试前的预备二. 使用&#xff08;gdb的常用命令&#xff09;三. 推荐安装cgdb总结 前言 本文主要讲解如何在Linux环境下面来对代码进行调试 一、调试前的…

知识中台赋能法律咨询服务:八大核心优势

法律咨询服务领域&#xff0c;知识中台以其独特的功能和优势&#xff0c;为行业发展注入了新的活力。以下是知识中台在法律咨询服务中展现的八大核心优势&#xff1a; 一、法律知识资源的全面整合 知识中台致力于收集、整理和整合各类法律知识资源&#xff0c;包括法律法规、…

03集合基础

目录 1.集合 Collection Map 常用集合 List 接口及其实现 Set 接口及其实现 Map 接口及其实现 Queue 接口及其实现 Deque 接口及其实现 Stack类 并发集合类 工具类 2.ArrayList 3.LinkedList 单向链表的实现 1. 节点类&#xff08;Node&#xff09; 2. 链表类&a…

VBA高级应用30例应用3在Excel中的ListObject对象:插入行和列

《VBA高级应用30例》&#xff08;版权10178985&#xff09;&#xff0c;是我推出的第十套教程&#xff0c;教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开&#xff0c;这套教程案例与理论结合&#xff0c;紧贴“实战”&#xff0c;并做“战术总结”&#xff0c;以…