如何将流数据保存到InfluxDB?

时间:2019-11-30 10:28:31

标签: database streaming influxdb

我正在尝试将数据以流方式(以最少的延迟)保存到我的InfluxDB数据库中。目前,我已批量保存它。

当前设置-基于间隔

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

所需的设置-连续

我想不是通过每5分钟保存一次数据,而是想通过Web套接字建立一个连接(我想)并在数据到达时进行保存。我以前从未做过,而且我实际上是如何混淆的?我有一些问题:

  • 一个我为此编写代码,是否像守护程序一样保持它正常运行?
  • 我是否需要使用Telegraf之类的东西,或者不是这种情况(example article
  • 我需要使用Apache Beam或Spark之类的东西代替Airflow(因为它是用于批处理)?

正如您所看到的,从所有这些方面,我对从哪里开始,应该阅读什么以及如何理解都颇为迷惑。任何关于设置方向和/或指导的建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那么您很想编写一个Java服务来处理传入的数据,因此解决方案之一是使用例如jetty来实现一个websocket。

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

我不知道气流以及如何生成数据,因此也许有内置工具(influxdb接收器)可以在您的环境中为您节省一些工作。

我希望这可以为您提供一些指导,以开始进行更多的挖掘。