Druid 的基础架构挺有意思的,适合搞实时或者数据湖这类项目的朋友。它用了一套多节点的架构,分工明确,各司其职。比如Coordinator管数据段分布,Overlord盯着数据摄入任务,Broker像前台小哥,接到查询就分发给对应节点,响应也快。
数据存在哪儿?那就得靠Historical,它负责真正持有数据段并查询,读取速度快。MiddleManager就是干活的工人节点,数据摄入、段合并都靠它,干完活就能下班,不像 Historical 那样长期在线。
DeepStorage是后备仓库,所有数据段都会备份到这儿,比如云存储或者 HDFS,等需要再加载回来也不慢。整体来说,Druid 的架构挺清晰,不会让你摸不着头脑。它还了 API,摄入数据灵活,比如直接用 HTTP 批量搞流式数据,也支持 SQL 查询。
你要是习惯 SQL,Druid 的 SQL 接口也比较顺手,查询方式也多,像时间序列、维度过滤、搜索查询都能搞定。如果你用过 MongoDB、Redis 或者 Hadoop,Druid 那套架构逻辑你肯定一看就懂。
如果你刚接触 Druid,建议先把几个核心组件的职责捋顺,再配合官方文档或者看看 Hulu 在会议上的分享,理解就快了。顺手也可以看看其他分布式系统的架构设计,会有不少共通的思路。
相关文章你可以参考这些:
如果你打算上线实时数据系统,Druid 会是个不错的选择。