Druid Historical Node

Druid的Historical 节点主要负责加载深存储中或Real-time节点创建的不可变数据块(segment),这些节点不会相互感知,只知道如何加载(load)、删除(drop)、和操作segment。

Historical 节点通过zookeeper来记录它们的在线状态和保存它们维护的数据元数据信息,比如加载和删除指令包含的segment在深存储中的位置信息等。

在从深存储中加载一个segment时,Historical 节点会先检查本地缓存是否含有该segment信息,如果没有,就从深存储中加载,并将该segment的可以写到本地缓存中,待加载完成,该segment的位置信息会被写到zookeeper中,此时该segment才能够被查询。加载过程如下图:

Druid Historical Node_第1张图片

另外,根据数据的重要程度,可以对数据Historical 节点分组,称之为层级(tiers)。每个层级可以设置不同的性能和容错参数。比如那些被频繁访问的segment归入一个层,称之为hot tier,那些较少访问的segment归入一层,称之为cold tier。

由于Historical 节点使用zookeeper来保存一些元数据信息,如果zookeeper变得不可用,Historical节点将不能为新的数据提供服务,但是仍然可以对当前正在处理的数据提供查询,即不会影响当前数据的可用性。

 

你可能感兴趣的:(druid,druid,historical,node)