做这个工作的原因是因为书籍和论文给的相关架构已经过时,最明显的就是移除了Real-Time Node.
(一)What is Druid ?
Druid是一个高性能的OLAP时序分析数据库,最常用于GUI分析应用或者是需要快速聚合的高并发API后端.Druid常用领域包含:
1. 网站点击流量分析
2. 网络流量分析
3. 服务器指标存储
4.应用性能指标
5.数字营销分析
6.商业智能/ OLAP
Druid的关键特征有:
1.列式存储格式
2.可扩展的分布式系统
3.大规模的并行处理
4.实时和批量摄入
5.自愈、自平衡、易操作
6.可容错的架构(不会丢失数据)、Cloud-native
7.快速过滤的索引:Druid使用CONCISE或Roaring压缩位图索引来创建索引,这些索引可以跨多个列进行快速过滤和搜索。
8.近似算法:Druid包含各种近似的聚合计算,可以节省内存,当然也提供了精确计算
9.在摄取时自动汇总数据: 实质上就是一个预计算的过程.节省成本提高性能
(二)When should i use Druid?
1.插入速率特别快但是很少需要更新的时候
2.查询经常是聚合查询或者分组查询
3.要求查询延时在100ms ~ 数秒之间
4.数据自带时间戳属性
5.高基数数据列,并且需要快速计数和排名
(三) 架构
Druid是一个多进程的分布式架构,易操作,每个Druid进程类型可以独立进行配置和扩展,这样可以给集群提供最大的伸缩性,这样的设计同时也提供了增强的容错能力,一