跳转至

InfluxDB2 Writer

InfluxDB2 Writer 插件实现了将数据写入 InfluxDB 2.0 及以上版本的数据库的功能。

注意,如果你的 InfluxDB 是 1.8 及以下版本,则应该使用 InfluxDBWriter 插件

示例

以下示例用来演示该插件从内存读取数据并写入到指定表

创建 job 文件

创建 job/stream2influx2.json 文件,内容如下:

{
  "job": {
    "setting": {
      "speed": {
        "channel": 1,
        "bytes": -1
      }
    },
    "content": {
      "reader": {
        "name": "streamreader",
        "parameter": {
          "column": [
            {
              "incr": "2021-10-17 22:40:00,1,s",
              "type": "date"
            },
            {
              "random": "1,1000",
              "type": "long"
            },
            {
              "random": "1,10",
              "type": "string"
            },
            {
              "random": "1000,50000",
              "type": "double"
            }
          ],
          "sliceRecordCount": 10
        }
      },
      "writer": {
        "name": "influxdb2writer",
        "parameter": {
          "connection": {
            "endpoint": "http://localhost:8086",
            "org": "com.wgzhao",
            "bucket": "test",
            "table": "addax_tbl"
          },
          "token": "YOUR_SECURE_TOKEN",
          "tag": [
            {
              "location": "east"
            },
            {
              "lat": "23.123445"
            }
          ],
          "interval": "ms",
          "column": [
            "c_long",
            "c_string",
            "c_double"
          ],
          "batchSize": 1024
        }
      }
    }
  }
}

运行

执行下面的命令进行数据采集

bin/addax.sh job/stream2influx2.json

参数说明

配置项 是否必须 数据类型 默认值 描述
endpoint string InfluxDB 连接串
table string 要写入的表(指标)
org string 指定 InfluxDB 的 org 名称
bucket string 指定 InfluxDB 的 bucket 名称
token string 访问数据库的 token
column list 所配置的表中需要同步的列名集合
tag list<map> 要指定的 tag
interval string ms 指定时间间隔,可以指定 s,ms,us, ns
batchSize int 1024 批量写入的大小

column

InfluxDB 作为时序数据库,需要每条记录都有时间戳字段,因此会把每条的记录的第一个字段当作时间戳来处理。 column 只需要指定除了第一个字段外的其他字段。 比如示例中,streamreader 设置了4个字段,但在 influxdb2writer 中的 column 只指定了三个字段,就是因为第一个字段已经默认作为时间戳了。

tag

用于指定指标(这里当作表)的 标签,每个 tag 使用 map 方式指定,比如示例中:

{
  "tag": [
    {
      "location": "east"
    },
    {
      "lat": 23.123445
    }
  ]
}

map中的 key 表示标签的名称,value 表示标签值

interval

设置时间戳的间隔频率,该字段的定义来源于 influxdb-client-java 中的 WritePrecision.java 其字符串表达的含义分别为:

  • s : 秒
  • ms : 毫秒
  • us : 微秒
  • ns : 纳秒

类型转换

当前支持 InfluxDB 2.0 的基本类型