传统开发读写优化与HBase

传统开发读写优化与HBase-CSDN博客

传统开发读写优化与HBase

一、传统开发数据读写性能优化

1、Mysql 分表、主从复制与读写分离

2、Redis(缓存型数据库)主从复制与读写分离

缓存数据库:哨兵【主从复制】,集群

后端查询都从Redis走
【定期】将关系型数据库数据【同步】到Redis:实时性(一致性)

具体过程参考:Redis主从复制、哨兵、Cluster三种模式摸透

主从复制存在一定的数据延迟,大数据不强调一致性,只需最终一致性

二、HBase

HBase是一个建立在HDFS之上的分布式,提供高可靠性,高性能,列存储,可伸缩,实时读写NoSQL的数据库系统。

Hbase 本身就是集群 主要优点之一:吞(写)吐(读)量大

1、HBase列存储优点

  1. 大数据时代 数据维度 数据本身变得越来越复杂,不能用简单的数据二维数据表格

  2. 支持大量稀疏存储,即允许大量列值为空,并不占用任何存储空间。这与传统数据库不同,传统数据库对于空值的处理要占用一定的存储空间,这会造成一定程度的存储空间浪费。因此可以使用HBase存储多至上百万列的数据,即使表中存在大量的空值,也不需要任何额外空间

2、HBase为什么吞吐量大

吞:
    每一个列族,对应一个存储区 一个store file 对应一个列族,对应一个name store 写到store就行了,并型写,内存写,支持批量操作
    批量导入:采取峰值80-90%,以这个批次往数据库里放  
    写入MS 之前先写一份到Hlog 
    HRegionServer   
    如果内存数据丢了。核心词:Hlog (write ahead log) 
    日志:先写入Hlog write ahead log预写日志机制Hlog落地 
    通过Hlog恢复	
    m store -> store file 
吐:
    新数据在MS  
    将经常读的数据读到BlocakCache 
    核心词:MS -> BlockCache(快缓存) - 
    第一次读从store file里读到BlockCache 
    第二次读从BlockCache快
    BloomFilter 不容过滤器,数据定位问题
    通过BloomFilter 快速判定


传统开发读写优化与HBase
https://leaf-domain.gitee.io/2024/03/07/hbase-start/
作者
叶域
发布于
2024年3月7日
许可协议