Druid简介

作者: 三点水滴 | 来源:发表于2019-03-12 09:31 被阅读235次

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

    什么是Druid

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


    druid.png

    Druid的特点

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

    Druid的基本架构

    架构图如下所示:


    druid-architecture.png

    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的处理结果组合起来,返回给客户端。

    相关文章

      网友评论

        本文标题:Druid简介

        本文链接:https://www.haomeiwen.com/subject/hezwpqtx.html