美文网首页
Druid 实时摄入方式

Druid 实时摄入方式

作者: zfylin | 来源:发表于2019-08-08 15:24 被阅读0次

Realtime Node

Realtime Node 可以直接配置Firehose从Kafka,RabbitMQ等消息队列中获取数据,数据一旦被摄入,很快就可以被查询到, 同时Realtime Node还会周期性的将摄入的数据合并成Segment,提交给DeepStorage并交由Historical Node加载,以达到提供实时数据的查询的功能。

缺点

Kafka 摄入缺陷

一旦Realtime Node宕机,那么该节点上未提交的数据将全部丢失。

数据丢失风险

假设你当前正在执行一个任务计算今日每个小时的数据汇总,同时你有一个批处理任务从离线集群获取数据重做Segment,并覆盖当前的Segment。
如果你在执行计算任务期间发生了Segment覆盖,那么在这个场景下很可能出现数据丢失。

Schema更新需重启节点

在Schema更新的时候,你需要重启Realtime Node以生效新的配置,这在大规模集群管理上效率非常低。

Tranquility

Tranquility 是在 Indexing Service 封装的一个类库,帮助我们从Kafka,Hadoop,HTTP,Storm,Samza,Spark Streaming或者自己的JVM程序发送数据给Indexing Service。

实现原理

Tranquility基于Indexing Service的EventReceiverFirehose来实现,该Firehose会暴露一个HTTP API供Tranquility实时Push数据给Indexing Service。

在解决分区与副本问题上,Tranquility会给每一个Segment+ partitionNum指派一个Task来进行数据摄入,在超过Window Period后,Task将会停止接收数据并合并Segment,然后提交到Deep Storage。

而副本的实现上,Tranquility将每个副本创建不同Task,相同的Segment与partitionNum,相同Segment与partitionNum的数据将会同事发给相同的副本的Task,副本的Task之间乎不通讯。

当Schema发生改变的时候,在 Indexing Service 必须重启任务才生效。 而Tranquility的做法是只会应用到新的时间段生成的Segment,旧的Segment讲保持不变。由此时间不停机修改Schema。

最后,我们通常需要启动实例进行数据处理并发送给Druid,Tranquility使用Zookeeper管理不同实例的任务协调,保证数据被正确想到相应的Task中。

缺点

  1. 超过Window Period的数据将会被丢弃,必须定时从离线集群中重做Segment来实现数据互补。
  2. Tranquility与Indexing Service的通讯异常会导致重试,无论是重试成功或失败,都可能导致数据丢失或者重复数据

Kafka Indexing Service

Kafka Indexing Service 是在Indexing Service上封装的一个扩展,使用Kafka自己的分区和偏移机制来读取数据,因此能够提供准确一次的服务保证。 解决Realtime Node摄入Kafka数据的缺陷。

与 Tranquility 对比的好处是,他能够读取来自Kafka的非近期的数据,并且不受窗口期(window period )对其他摄取机制的影响。支持管理索引任务的状态,以协调切换,管理故障,并确保维护可扩展性和复制要求。

相关文章

  • Druid 实时摄入方式

    Realtime Node Realtime Node 可以直接配置Firehose从Kafka,RabbitMQ...

  • Druid实时数据摄入参考

    1. 概述 Druid的数据摄入主要包括两大类:实时数据摄入和离线数据摄入 1.1. 实时输入摄入:包括Pull,...

  • Druid.io大查询分析思路

    Druid.io 是CPU和IO双密集型的大数据组件,因为Druid架构中无论是处理实时数据摄入的peon进程还是...

  • Apache Druid 命令执行漏洞复现(CVE-2021-2

    0x00简介 Druid 是一个分布式的、支持实时多维 OLAP 分析的数据处理系统。它既支持高速的数据实时摄入处...

  • Druid高效架构

    我们知道Druid能够同时提供对大数据集的实时摄入和高效复杂查询的性能,主要原因就是它独到的架构设计和基于Data...

  • Druid高效架构

    我们知道Druid能够同时提供对大数据集的实时摄入和高效复杂查询的性能,主要原因就是它独到的架构设计和基于Data...

  • Druid基础介绍和系统架构

    Druid介绍 Druid是什么 Druid("德鲁伊")是由广告公司MetaMarkets开源的实时大数据分析引...

  • Druid 使用Tranquility从kafka实时导入数据

    Druid 使用Tranquility从kafka实时导入数据 数据导入方式 通过前面的介绍我们知道在流式处理领域...

  • Druid数据摄入规范

    本篇文章主要是向读者介绍如何制定Druid摄入数据的规范,指出开发过程中需要注意的关键事项和规则,方便刚接触Dru...

  • Druid翻译三:加载数据

    选择提取方法 Druid支持流式(实时)和基于文件(批量)的数据提取方式。最常用的配置是: Files - 通过H...

网友评论

      本文标题:Druid 实时摄入方式

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