跳转至

InfluxDB2 Writer

InfluxDB2Writer 插件实现了将数据写入 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": "datax_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 要指定的 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 的基本类型