【Druid】Druid 简介

Apache Druid 是一个分布式内存实时分析系统,用于进行数据源管理与监控,解决如何在大规模数据集下进行快速的、交互式的查询和分析的问题。Apache Druid 由 Metamarkets 公司(一家为在线媒体或广告公司提供数据分析服务的公司)开发,在2019年春季被捐献给 Apache 软件基金会。

 

Apache Druid 具有以下特点:

  • 亚秒级 OLAP 查询,包括多维过滤、Ad-hoc 的属性分组、快速聚合数据等等。
  • 实时的数据消费,真正做到数据摄入实时、查询结果实时。
  • 高效的多租户能力,最高可以做到几千用户同时在线查询。
  • 扩展性强,支持 PB 级数据、千亿级事件快速处理,支持每秒数千查询并发。
  • 极高的高可用保障,支持滚动升级。

应用场景

实时数据分析是 Apache Druid 最典型的使用场景。该场景涵盖的面很广,例如:

  • 实时指标监控
  • 推荐模型
  • 广告平台
  • 搜索模型

这些场景的特点都是拥有大量的数据,且对数据查询的时延要求非常高。在实时指标监控中,系统问题需要在出现的一刻被检测到并被及时给出报警。在推荐模型中,用户行为数据需要实时采集,并及时反馈到推荐系统中。用户几次点击之后系统就能够识别其搜索意图,并在之后的搜索中推荐更合理的结果

Apache Druid 架构

Apache Druid 拥有优秀的架构设计,多个组件协同工作,共同完成数据从摄取到索引、存储、查询等一系列流程。

下图是 Druid 工作层(数据索引以及查询)包含的组件。

 

  • Realtime 组件负责数据的实时摄入。
  • Broker 阶段负责查询任务的分发以及查询结果的汇总,并将结果返回给用户。
  • Historical 节点负责索引后的历史数据的存储,数据存储在 deep storage。Deep storage 可以是本地,也可以是HDFS 等分布式文件系统。
  • Indexing service 包含两个组件(图中未画出)。
    • Overlord 组件负责索引任务的管理、分发。
    • MiddleManager 负责索引任务的具体执行。

下图是 Druid segments(Druid 索引文件)管理层所涉及的组件。

  • Zookeeper 负责存储集群的状态以及作为服务发现组件,例如集群的拓扑信息、overlord leader 的选举、indexing task 的管理等等。
  • Coordinator 负责 segments 的管理,如 segments 下载、删除以及如何在 historical 之间做均衡等等。
  • Metadata storage 负责存储 segments 的元信息,以及管理集群各种各样的持久化或临时性数据,例如配置信息、审计信息等等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值