Druid
Druid 简介
Druid 是一个高性能的实时分析数据库。它在 PB 级数据处理、毫秒级查询、数据实时处理方面,比传统的 OLAP 系统有显著的性能提升。
Druid 的官方网站是 http://druid.io
Druid 的三个设计原则
快速查询(Fast Query):部分数据的聚合(Partial Aggregate)+内存化(In-emory)+索引(Index)。
水平扩展能力(Horizontal Scalability):分布式数据(Distributed Data)+ 并行化查询(Parallelizable Query)
实时分析(Realtime Analytics):不可变的过去,只追加的未来(Immutable Past,Append-Only Future)
1. 快速查询(Fast Query)
对于数据分析场景,大部分情况下,我们只关心一定粒度聚合的数据,而非每一行原始数据的细节情况。因此,数据聚合粒度可以是1 分钟、5 分钟、1 小时或1 天等。部分数据聚合(Partial Aggregate)给 Druid 争取了很大的性能优化空间。
数据内存化也是提高查询速度的杀手锏。内存和硬盘的访问速度相差近百倍,但内存的大小是非常有限的,因此在内存使用方面要精细设计,比如Druid 里面使用了 Bitmap 和各种压缩技术。
另外,为了支持 Drill-Down 某些维度,Drui