Apache Druid是一个高性能的实时分析型数据库
-
云原生、流原生的分析型数据库
- Druid专为需要快速数据查询与摄入的工作流程而设计,在即时数据可见性、即时查询、运营分析以及高并发等方面表现非常出色。在实际中众多场景下数据仓库解决方案中,可以考虑将Druid当做一种开源的替代解决方案。
-
可轻松与现有的数据管道进行集成
- Druid原生支持从Kafka、Amazon Kinesis等消息总线中流式的消费数据,也同时支持从HDFS、Amazon S3等存储服务中批量的加载数据文件。
-
较传统方案提升近百倍的效率
- Druid创新地在架构设计上吸收和结合了数据仓库、时序数据库以及检索系统的优势,在已经完成的基准测试中展现出来的性能远远超过数据摄入与查询的传统解决方案。
-
解锁了一种新型的工作流程
- Druid为点击流、APM、供应链、网络监测、市场营销以及其他事件驱动类型的数据分析解锁了一种新型的查询与工作流程,它专为实时和历史数据高效快速的即席查询而设计。
-
可部署在AWS/GCP/Azure,混合云,Kubernetes, 以及裸机上
- 无论在云上还是本地,Druid可以轻松的部署在商用硬件上的任何*NIX环境。部署Druid也是非常简单的,包括集群的扩容或者下线都也同样很简单。
Druid最常被当做数据库来用以支持实时摄取、高性能查询和高稳定运行的应用场景,同时,Druid也通常被用来助力分析型应用的图形化界面,或者当做需要快速聚合的高并发后端API,Druid最适合应用于面向事件类型的数据。
Druid特征
- 列式存储
- 可扩展的分布式系统
- 大规模并行处理
- 实时或批量摄取
- 自修复、自平衡、易于操作
- 不会丢失数据的云原生容错架构
- 用于快速过滤的索引
- 基于时间的分区
- 近似算法
- 摄取时自动汇总整合
Druid使用场景
-
数据插入频率比较高,但较少更新数据
-
大多数查询场景为聚合查询和分组查询,同时还有一定得检索与扫描查询
-
将数据查询延迟目标定位100毫秒到几秒钟之间
-
数据具有时间属性(Durid针对时间做了优化和设计)
-
在多表场景下,每次查询仅命中一个大的分布式表,查询又可能命中多个较小的lookup表
-
场景中包含高基维度数据列(例如URL,用户ID等),并且需要对其进行快速计数和排序
-
需要从Kafka、HDFS、对象存储(如Amanzon S3)中加载数据