【HBase】HBase 宽表和高表

本文介绍了HBase中宽表和高表的概念,宽表适合行数据量大的场景,高表适用于行数据量小的情况。宽表查询性能相对较差,但利于事务处理;高表查询性能优越,但元数据开销大。在电子邮件系统中,高表可以避免单行数据过大问题,而在社区系统如BBS中,宽表则能有效存储大量回复。设计时应根据业务需求平衡宽表和高表的使用。
摘要由CSDN通过智能技术生成

本篇结构:

  • 宽表和高表定义
  • 宽表和高表的优劣
  • 宽表和高表的应用场景

一、宽表和高表定义

HBase 中的表可以设计为高表(tall-narrow table) 和 宽表(flat-wide table):

  • 宽表是指很多列较少行,即列多行少的表,一行中的数据量较大,行数少;
  • 高表是指很多行较少列,即行多列少,一行中的数据量较少,行数大。

二、宽表和高表的优劣

HBase的键分为两种:

  • 列键:包括了列族名和限定符,定位到列的索引
  • 行健:相当于关系型数据库中的主键,通过行健得到逻辑布局中一行的所有列

由于列键是由列族名和限定符组成的,属于定位具体 StoreFile 的,所以应该将需要查询的维度或者信息存储在 row key 中,因为用它来筛选数据效率最高!

Hbase 的 row key 是分布式的索引,也是分片的依据。Hbase 的 row key + column family + column qualifier + timestamp + value 是 HFile 中数据排列依据。

据此,在HBase中使用宽表、高表的优劣总结如下:

  • 查询性能:高表查询更好,因为查询条件都在 row key 中,是全局分布式索引的一部分。高表一行中的数据较少。所以查询缓存 BlockCache 能缓存更多的行,以行数为单位的吞吐量
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值