Apache Druid入门与实践
OLTP VS OLAP
- OLTP(联机事务处理):传统数据库的主要应用,面向最基本的CRUD操作,特点是实时性高,数据量小,可以修改删除数据,要求严格的事务。
- OLAP(联机分析处理):支持复杂的分析操作,对决策的支持,特点是数据量大,吞吐量大,只支持查询
Apache Druid
- Druid是OLAP系统,是开源的分布式支持实时数据分析的数据存储系统,能快速的实现查询和数据分析,高可用、高拓展能力
使用场景
- 查询多修改少
- 查询以聚合或分组为主
- 快速查询
- 需要支持离线和实时数据源
基本特点
- 高拓展使用列式存储的分布式系统
- 高容错,自平衡,保证查询延迟和数据完整性
- 自动聚合,索引数据,提供多种算法优化查询效率
Apache Druid架构图
初步运行理解,ZK关键
-
Overload
Overload进程负责监控MiddleManager进程,它负责将摄取任务分配给MiddleManager并协调segment的发布;它就是数据摄入到Dirid的控制器
-
Coordinator
Coordinator进程负责监控Historical进程,它负责将segment分配到指定的Historical服务上,确保所有Historical节点的数据均衡
-
MiddleManager
MiddleManager进程负责将新的数据摄入到集群中,将外部数据源数据转换为Druid所识别的segment
-
Broker
Broker进程负责接受Client的查询请求,并将查询转发到Historical和MiddleManager中;Broker会接受所有的子查询的结果,并将数据进行合并然后返回给Client
-
Historical
Historical是用于处理存储和查询历史数据的进程,它会从Deep Storage中下载查询区间数据,然后响应该段数据的查询
-
Router
Router进程是一个可选的进程,它为Broker、Overload和Coordinator提供统一的API网关服务。如果不启动该进程,也可以直接连接Broker、Overload和Coordinator服务