了解Apache Druid中的Supervisor-实时摄取、分析和监控数据

9,219次阅读
没有评论

共计 3392 个字符,预计需要花费 9 分钟才能阅读完成。

Supervisor 是 Apache Druid 内置的部分,用于更轻松地实时摄取、分析和监控数据。了解更多关于 Apache Druid 和 Supervisor 的信息,如何将其与 Apache Kafka 协同工作以及在数据管道场景中的应用。通过 Apache Druid 的高性能、列存储、实时分析数据库和 Apache Kafka 的分布式平台,你可以实现实时数据处理和分析的需求。

尽管 Apache Druid(https://druid.apache.org/)和 Apache Kafka 都是强大的开源数据处理工具,但它们具有多种用途。Druid 是一个高性能、列存储、实时分析数据库,而 Kafka 是一个用于事件流的分布式平台。但是,它们可以在典型的数据管道场景中协同工作,其中 Kafka 用作消息系统来摄取和存储数据 / 事件,而 Druid 则用于对该数据执行实时分析。简而言之,索引就是在 Druid 中加载数据的过程,Druid 从 Kafka 这样的流式源系统中读取数据,并最终将其存储在称为段的数据文件中。Druid 包含 Apache Kafka 索引服务,使 Druid 能够接受来自 Apache Kafka 的数据流,实时分析数据,并对数据建立索引以进行查询和分析。

Supervisor 是 Druid 的内置部分,可以更轻松地实时摄取、分析和监控数据。数据摄取生命周期由 Druid Supervisor 管理。它们处理的工作包括从流媒体源(如 Kafka 主题)读取信息、将其索引到 Druid 段以及跟踪摄取过程。Kafka 流式摄取的数据摄取由主管的规范配置。在配置 Apache Kafka Supervisor 时,必须提供 JSON 规范(通常称为 Supervisor 规范),该规范指定 Supervisor 如何使用来自 Kafka 的数据以及如何处理该数据并将其索引到 Druid 中。Kafka 索引任务使用 Kafka 自己的分区和偏移机制读取事件,以保证精确一次摄取。Druid 中的 Kafka Supervisor 从所提到的主题名称中实时读取数据,并根据提交的 Supervisor 规范将其转换为 Druid 事件。主管在将数据索引到 Druid 段之前对数据应用任何必要的转换或聚合。这些段本质上是 Druid 存储和组织数据以进行高效查询的方式。

Apache Druid

如果分段无法构建或摄取过程存在问题,可以将主管配置为采取纠正措施,例如重试摄取或向管理员发出警报。可以配置主管来处理可扩展性要求。为了分散工作负载并平衡摄取过程,随着数据量的增长,可能会添加更多主管职位。Druid 的 Kafka Supervisor 规范中通常可以找到的关键部分是:

  • type: 指定主管的类型,在本例中为“Kafka”。

  • dataSchema:指定数据将被摄取到的 Druid 数据源名称、主时间戳、维度、指标、转换和任何必要的过滤器。

  • ioConfig:解释 Kafka 连接设置的配置详细信息,例如 Supervisor 将从中消费数据的主题名称、事件 / 数据类型的输入格式以及用于建立与 Kafka 代理的初始连接的引导服务器 IP 地址和端口。并配置 Druid 如何解析数据。

  • tuningConfig:控制特定于每种摄取方法的各种调整参数,例如

    • Task Count:用于摄取数据的并行任务的数量。增加此数字可以增强并行性并增加摄取吞吐量。

    • Window Period: 事件被摄取并索引到 Druid 之前收集事件的每个窗口的持续时间。

    • Shard Spec:定义如何将数据划分为 Druid 段。

tuningConfig 不强制添加到主管规范中。通过利用上述选项的主管规范,我们可以向 Druid 指示如何从 Kafka 获取数据、处理数据并将其索引到 Druid 段中。您可以 在此处阅读 如何将 Kafka 与 Druid 集成,以将消息 / 数据从主题传输到 Druid 上的视图。

以下是示例主管规范,可实现 Apache Kafka 和 Druid 之间的平滑集成,以实现实时数据获取和分析。该 JSON 规范充当 Kafka Supervisor 的模型。

{
  "type": "kafka",
  "dataSchema": {
    "dataSource": "your_druid_data_source_name",
    "parser": {
      "type": "string",
      "parseSpec": {
        "format": "json",
        "timestampSpec": {
          "column": "timestamp",
          "format": "auto"
        },
        "dimensionsSpec": {"dimensions": ["dimension1", "dimension2"],
          "dimensionExclusions": [],
          "spatialDimensions": []}
      }
    },
    "metricsSpec": [
      {
        "name": "count",
        "type": "count"
      },
      {
        "name": "sum",
        "type": "doubleSum",
        "fieldName": "metricField"
      }
    ],
    "granularitySpec": {
      "type": "uniform",
      "segmentGranularity": "hour",
      "queryGranularity": "minute",
      "intervals": ["2010-01-01T00:00:00.000Z/2025-01-01T00:00:00.000Z"]
    }
  },
  "tuningConfig": {
    "type": "kafka",
    "taskCount": 1,
    "replicas": 1,
    "maxRowsPerSegment": 5000000,
    "maxRowsInMemory": 1000000,
    "intermediatePersistPeriod": "PT10m",
    "windowPeriod": "PT5m"
  },
  "ioConfig": {
    "topic": "your_kafka_topic",
    "consumerProperties": {
      "bootstrap.servers": "kafka-broker1:9092,kafka-broker2:9092",
      "group.id": "druid-kafka-ingestion"
    }
  },
  "filter": null,
  "tuning": {
    "type": "kafka",
    "maxRowsPerSegment": 5000000
  }
}

总而言之,Apache Druid Supervisor,尤其是 Kafka Supervisor,可以将 Kafka 主题中的数据无缝、实时地接收到 Druid 中,从而提供可靠、容错且有效的数据处理。

我希望您喜欢这篇文章。如果您觉得本文有价值,请点赞和分享。感谢您阅读本教程,希望它对您开始使用 Kafka 和 Druid 有所帮助!

文章来源地址 https://www.toymoban.com/diary/share/414.html

到此这篇关于了解 Apache Druid 中的 Supervisor- 实时摄取、分析和监控数据的文章就介绍到这了, 更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持 TOY 模板网!

原文地址:https://www.toymoban.com/diary/share/414.html

如若转载,请注明出处:如若内容造成侵权 / 违法违规 / 事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于1970-01-01发表,共计3392字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)