分布式存储入库过程本质上是建索引过程

不论对于什么数据库,druid es mysql hbase,凡是能实现秒级查询的数据库,无一不是借助将索引全部存入内存来加快索引。

所以入库的过程本质上就是建索引的过程,这个建索引过程就是有master节点发起的一个mapred任务。

索引只有两种:位图索引(druid hbase),倒排索引(es)

 

当开始调用java scala版本的插入数据,或者flink sink中的插入数据,本质上就是为单条数据生成索引,并写入数据的过程。

所以生成索引和写入数据的过程是最重要的,涉及到整个分布式存储的架构,实际上写入数据过程就是一个mapred过程。

至于查询很简单,就是根据过滤条件到位图索引中检索。

查索引只是高性能的表现,本质上是因为建索引机制的高效完善。

 

凡所有的数据库或者分布式存储,学习过程中问自己四个问题

1.数据是如何写的,包括api函数和写数据过程。写数据本质上是由master发起一个mapred任务。

2.数据是如何读的,包括api函数和读数据过程。读的原理简单,但api一般较多。

3.为啥读快,索引原理

4.为啥写快,日志结构合并树(druid hbase)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值