0
点赞
收藏
分享

微信扫一扫

Druid简介

注1: 本文介绍的是Apache的Druid,而非阿里的Druid
注2: 本文内容主要来自官网文档翻译

什么是Druid

Druid是一个开源分布式的数据存储。


Druid的特点

  • 列式存储
  • 可扩展分布式系统
  • 大量并行处理
  • 实时或批量数据摄入
  • 自治愈、自平衡
  • 云原生、容错的架构
  • 高速过滤索引
  • 近似算法
  • 摄入时自动摘要

Druid的基本架构

架构图如下所示:


Druid的节点类型

  • 节点类型
    CoordinatorNodes
    OverlordNodes
    MiddleManagerNodes
    HistoricalNodes
    BrokerNodes
    RouterNods(可选的)

各节点都可以单独部署,也可以部署在同一台服务器上。下面是一种通用的部署方案,将节点分成三类:

  1. “数据”服务器中部署Historical节点和MiddleManager节点
  2. “查询”服务器中部署Broker节点(和可选的Router节点)
  3. “主”服务器中部署Coordinator节点和Overlord节点,Zookeeper也可以放在其中。
  • 外部依赖
    Deep Storage
    Metadata Store
    ZooKeeper

Druid中的数据源

Druid中的数据是用时间分割的一个个chunk,每个chunk中的数据被分成一个个segment,每个segment是一个单独的文件。
segment在MiddleManager中被创建,此时是可变且为提交的,然后segment会被周期性的提交和发布,从此就被写入到Deep Storage,成为不可变的,并从MiddleManager转移到Historical中。而关于这个segment的元数据就被存储到Metadata Store。Coordinator使用这些元数据来确定数据在哪个集群上。

Druid的查询处理

Broker会接收客户端的查询请求。
首先,Broker会确定哪些segment是与当前查询相关的。然后,Broker会找到相应的Historical和MiddleManager,并把查询请求进行分解,发送给相应的节点。最后,Broker会把Historical和Middle Manager的处理结果组合起来,返回给客户端。

举报

相关推荐

0 条评论