【问题标题】:How to save streaming data to InfluxDB?如何将流数据保存到 InfluxDB?
【发布时间】:2019-11-30 10:28:31
【问题描述】:

我正在尝试将数据以流式传输方式(延迟最少)保存到我的数据库,即 InfluxDB。目前我是分批保存的。

当前设置 - 基于间隔

目前我有一个 Airflow 实例,我每 5 分钟从 REST API 读取数据,然后将其保存到 InfluxDB。

所需设置 - 连续

我不想每 5 分钟保存一次数据,而是想通过 Web-socket 建立连接(我猜)并在数据到达时保存数据。我以前从未这样做过,我很困惑它实际上是如何完成的?我的一些问题是:

  • 我为它编写代码,我是否像守护进程一样保持它?
  • 我是否需要为此使用 Telegraf 之类的东西,或者事实并非如此 (example article)
  • 我是否需要使用 Apache Beam 或 Spark 之类的东西来代替 Airflow(因为它用于批处理)?

如您所见,我对从哪里开始、阅读什么以及如何理解这一切感到迷茫。非常感谢任何有关设置方向和/或指导的建议。

【问题讨论】:

  • 我不知道 InfluxDB 是否支持数据流,但您可以通过单个 http 连接将 Influx 线路协议数据流式传输到 VictoriaMetrics。详情请见these docs

标签: database streaming influxdb


【解决方案1】:

如果我理解正确,您热衷于编写一个处理传入数据的 java 服务,因此解决方案之一是实现一个 websocket,例如jetty

例如,您从那里接收 json 格式的数据,并使用填充数据库的influxdb-java 框架处理数据。 Influxdb-java 将允许您创建和管理数据。

我不知道气流,以及您如何生成数据,所以也许有内置工具(influxdb sinks)可以在您的上下文中为您节省一些工作。

我希望这能给你一些指导,让你开始更多地挖掘。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 2014-05-01
    • 1970-01-01
    • 2018-05-26
    • 2012-09-22
    相关资源
    最近更新 更多