
druid
qiruiduni
这个作者很懒,什么都没留下…
展开
-
Druid 存储格式
Druid 的数据表是由一组分布在集群中不同的historical节点上和实时节点上的segment组成,一个segment包含了一定时间段内的数据,所有的读写操作都发生在segment上,它是Druid操作的最小单元。Real-time节点在生成segment时,segment的名称由数据源(表)、起始时间、结束时间、版本号四部分组成,作为segment的唯一标识。版本号越大,数据越新(疑问:版...原创 2018-08-03 16:48:00 · 1322 阅读 · 0 评论 -
Druid Real-time Node
Druid的Real-time 节点,主要负责实时数据索引的创建。源源不断的数据流已增量的方式填充到JVM的heap中,写到堆中的索引是可以直接被查询的。为防止堆溢出,Real-time节点会定期或在达到一定大小限制时,将JVM堆中的索引持久化到磁盘上,每个被持久化的索引是不可变的,并且Real-time节点会将持久化的索引加载到堆外的内存中来保证继续被查询到。Real-time节点的流程图如...原创 2018-08-01 21:49:59 · 1236 阅读 · 0 评论 -
Druid 集群体系架构
一个Druid集群包含多个不同类型的节点,这些节点被设计用来执行特定的操作。不同类型的节点相互独立,即使某个节点不可用,对其他节点也不会有太大影响,数据仍然可用。节点类型主要有:Real-time Nodes:负责实时数据的摄取和索引构建 Historical Nodes:固化节点,负责加载深存储系统中或Real-time节点中产生的不可变数据块(segment)。 Broker ...原创 2018-08-02 10:10:32 · 541 阅读 · 0 评论 -
Druid Historical Node
Druid的Historical 节点主要负责加载深存储中或Real-time节点创建的不可变数据块(segment),这些节点不会相互感知,只知道如何加载(load)、删除(drop)、和操作segment。Historical 节点通过zookeeper来记录它们的在线状态和保存它们维护的数据元数据信息,比如加载和删除指令包含的segment在深存储中的位置信息等。在从深存储中加载一个...原创 2018-08-02 11:39:57 · 1007 阅读 · 0 评论 -
Druid Broker Nodes
Druid集群的Broker节点主要负责客户端请求的路由和合并查询结果返回给客户端。Broker节点在启动时会加载zookeeper中segment的位置信息,在客户端请求到来时,会根据这些segment的位置信息,将请求路由到响应的historical节点或real-time节点。每个Broker节点都有一个本地缓存,用来缓存最近查询的结果,并采用LRU失效策略来淘汰数据。每次Broke...原创 2018-08-02 15:02:03 · 700 阅读 · 0 评论 -
Druid Coordinator Nodes
Druid的Coordinator 节点主要负责segment的管理以及为historical节点分配segment。Coordinator节点会告诉historical节点去加载新的数据、删除过时的数据、备份数据、移动数据以达到负载平衡。为提供一个稳定一致的视图,Coordinator节点使用一个多版本并发控制交换协议(multi-version concurrency control sw...原创 2018-08-03 11:03:51 · 635 阅读 · 0 评论