HBase将HDFS无法快速查询单条数据这一令人困扰的痛点给解决了,然而它却时常被错误地看作仅仅是另外一种数据库,这样的认知偏差致使不少企业在进行选型的时候付出了超乎寻常的高昂试错成本。

HBase并非普通数据库

核心身份构建在HDFS之上的分布式列存储系统,专为海量结构化数据而生的是HBase,2006年谷歌发表BigTable论文之后,作为其开源实现迅速崛起的是HBase,与MySQL不一样的是,没有数据库概念,所有表都依赖于命名空间的是HBase,这种设计使得它能够管理数据规模为数十亿行、上百万列的是HBase。

Oracle、MySQL这类传统关系型数据库对待海量数据情况时,索引以及物化视图会耗费巨大资源,HBase借助行键对记录进行唯一标识,再搭配上列簇设计,达成了PB级数据的毫秒级随机访问,字节跳动于2024年的实践显示,其HBase集群中的单表突破500TB。

行存储与列存储的本质差异

对于传统行式数据库而言,它采用的是将一条记录的字段进行连续存储的方式,在查询的时候,哪怕仅仅只需要去获取其中的两列,也还是得把整行数据给读取出来。打个比方,要是存在一张包含30个字段的学生表,当仅仅只是去查询其中的姓名列以及年龄列的时候,行式存储模式依旧需要对整行的数据展开扫描,如此一来,I/O开销也就会变得极为巨大。像MySQL这种数据库,在处理类似于这样的场景之下,就算是已经有了索引,也还是必须要进行回表查询。

则将每个列簇进行单独存放采取的是列式存储,在HBase里,同一个列簇的数据在物理方面是连续存储的,查询的时候仅仅读取所需的列,阿里巴巴于2025年公开的技术资料表明其HBase集群凭借列式存储特性把某日志分析查询的I/O开销降低了83%,数据类型一致同样带来了10倍以上的压缩比。

稀疏存储如何节省成本

当关系型数据库存储学生信息之际,哪怕某一列是空值,那也必定得占位。假定有一张有着200列的表,平均下来每行仅仅50列有值,在Oracle里面150个空字段依旧占据着存储空间。某省级的教育平台往昔基于此每年额外支出300万存储费用。

HBase的稀疏之性质使得空列不会去占用任何的物理空间 实际上每个单元格存之时方写入文件 这样的这般设计致使表结构能够极其稀疏 美团在二零二三年进行重构订单系统这个举措时 把原本须要有一千二百列的表分成了三个列簇 空值的存储成本即刻变为零 每年能节省存在的开销超过五百万元。

多版本机制解决历史追溯

为时间戳自动标识的HBase每个单元格默认保存3个版本,这个特性对金融交易系统至关重要,2024年某股份制银行采用HBase存储用户账户流水,当发生账务争议时可免去额外开发快照系统,直接回溯任意时间点的余额状态。

版本数量能够依照业务需求进行动态调整,在存储航班动态之际的携程旅行网,把版本数设定为10,完整地保留了飞机起降整个过程的状态变更,这种设计相较于传统数据库借助日志回滚查询历史状态的方式,效率提升了将近百倍。

无模式设计应对业务变化

存在这样一种情况,传统数据库如果要修改表结构,那就必须要执行DDL语句,而要是在大表之上添加一列的话,极有可能致使数小时处于锁表状态。与之不同的是,HBase只要在客户端代码当中直接去写入新列就行,并且列簇下面的字段能够实现动态地进行增加或者减少。举例来说,在拼多多2024年大促期间,运营系统在一天之内动态添加了37个个性化推荐字段,最终是在没有停机的情况下完成了迭代。

这种灵活性是从HBase把列名编码在单元格里的设计而来的,同一张表的不同行呢,能够拥有全然不一样的列组合,字节跳动A/B测试平台借助这一特性,致使5000个实验组分别去定义独立的指标列,而不需要统一表结构。

物理存储与索引机制

数据库HBase安装_HBase与HDFS区别_HBase基本概念

HBase里,每个列簇被存储于HDFS的 solitary文件当中,在每个文件里,Key以及Value完整得以保存下来。这样的一种设计,使得数据能够进行分布式存放,然而它这也决定了它并不支持进行跨表join操作。在业界一般是依据Phoenix组件或者经由应用层代码来完成数据关联的。

HBase与HDFS区别_HBase基本概念_数据库HBase安装

HBase快速查找的关键在于索引文件,Region Server对行键的范围分区进行维护,内存里的MemStore率先写入,达到阈值过后再刷写到磁盘由此形成HFile,腾讯于2025年披露,其广告系统HBase集群借由优化HFile合并策略,把读写延迟控制在3毫秒以内。

身处你当下所调控范畴内且关联着各项事务的系统当中,究竟是哪些在针对数据进行查询操作时会面临的情景,正遭受着传统数据库于性能方面所存在的瓶颈而致使的困扰呢?而且倘若运用 HBase 去重新构建,你认为最先需要去迁移的是哪一张表呢?欢迎在评论区域内分享你自身有关技术选型这个层面所积累的经验。