Hbase
Hbase具体原理可见前文记录
Hbase 是面向oltp的数据库,通过LSM机制来平衡写和读的性能。但是要注意Hbase的思想是oltp,所以注定重点是写,要牺牲读,更适合多写少读的场景。但是实际情况下大多数读写场景通过Hbase就可以完全满足,为什么呢?因为LSM和其他一套组合拳也大量提升了读的性能
最重要的就是LSM机制
为什么写快:
LSM机制本身的设计意义就是写数据直接先入内存中,不用立刻写磁盘。通过牺牲读来提高写
为什么读性能依然不算很差:
1 LSM批量写,存储延迟,复用磁盘寻址空间
多写少读的场景下,常规的B树为了维护本身数据结构会导致分裂等情况。
批量写入会将多次单页写变成单次多页写,复用磁盘寻址空间,提高性能
2 读数据可以获得更多的IO使用权
因为批量写的原因,大大减小的写磁盘的IO使用权,读取就可以获得更多的IO使用权,从而也提高了读性能5-10倍左右
3 LSM数据内存排序,可以通过索引二分查找提高读性能
4 查询磁盘前,增加布隆过滤器的判断
5 Compact 机制,LSM Tree的合并,优化读性能
等等,可以具体再看前文Hbase文章
OLAP
clickhouse等
属于rolap,ROLAP 是指关系数据的关系在线分析处理。
面向数据的分析,注重读,不在于写。Hbase适合多写的点查询,clickhouse用于数据的及时查询
clickhouse
除了数据库,也具备完备的数据库管理(元信息)系统,支持标准SQL查询
列式存储引擎,基于列级别的稀疏索引
默认LZ4算法压缩,总体压缩比8:1
向量化执行:原理是通过CPU寄存器层面的并行操作,达到消除程序中循环的优化
支持分区(多线程)分片(分布式)的快速查询
多主架构,交互式查询
Hbase则是LSM数据结构的面向列族的存储数据库,不算列式存储。再Hbase不能满足实时的读数据要求时则考虑olap引擎
kylin等
属于molap,MOLAP 被称为多维在线分析处理,它通过多个数据维度来实现。
通过提前预先计算好各个维度的数据,来提高查询效率
HOLAP
ROLAP和MOLAP的混合
大量数据处理能力取自 ROLAP,
查询速度方法取自 MOLAP,MOLAP 提供给作为标准化模型的 HOLAP