程序员技术栈简友广场程序员

Druid简介

2019-03-12  本文已影响235人  三点水滴

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

什么是Druid

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


druid.png

Druid的特点

Druid的基本架构

架构图如下所示:


druid-architecture.png

Druid的节点类型

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

  1. “数据”服务器中部署Historical节点和MiddleManager节点
  2. “查询”服务器中部署Broker节点(和可选的Router节点)
  3. “主”服务器中部署Coordinator节点和Overlord节点,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的处理结果组合起来,返回给客户端。

上一篇 下一篇

猜你喜欢

热点阅读