Skip to content

InfluxDB Writer

InfluxDB Writer 插件实现了将数据写入 InfluxDB 读取数据的功能。 底层实现上,是通过调用 InfluQL 语言接口,构建插入语句,然后进行数据插入。

示例

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

创建需要的库

通过以下命令来创建需要写入的库

bash
# create database
influx --execute "CREATE DATABASE addax"

创建 job 文件

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

json
{
  "job": {
    "setting": {
      "speed": {
        "channel": 1,
        "bytes": -1
      }
    },
    "content": {
      "reader": {
        "name": "streamreader",
        "parameter": {
          "column": [
            {
              "random": "2001-01-01 00:00:00, 2016-07-07 23:59:59",
              "type": "date"
            },
            {
              "random": "1,1000",
              "type": "long"
            },
            {
              "random": "1,10",
              "type": "string"
            },
            {
              "random": "1000,50000",
              "type": "double"
            }
          ],
          "sliceRecordCount": 10
        }
      },
      "writer": {
        "name": "influxdbwriter",
        "parameter": {
          "connection": {
            "endpoint": "http://localhost:8086",
            "database": "addax",
            "table": "addax_tbl"
          },
          "connTimeout": 15,
          "readTimeout": 20,
          "writeTimeout": 20,
          "username": "influx",
          "password": "influx123",
          "column": [
            {
              "name": "time",
              "type": "timestamp"
            },
            {
              "name": "user_id",
              "type": "int"
            },
            {
              "name": "user_name",
              "type": "string"
            },
            {
              "name": "salary",
              "type": "double"
            }
          ],
          "preSql": [
            "delete from addax_tbl"
          ],
          "batchSize": 1024,
          "retentionPolicy": {
            "name": "one_day_only",
            "duration": "1d",
            "replication": 1
          }
        }
      }
    }
  }
}

运行

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

bash
bin/addax.sh job/stream2influxdb.json

参数说明

配置项是否必须数据类型默认值描述
endpointstringInfluxDB 连接串
usernamestring数据源的用户名
passwordstring数据源指定用户名的密码
databasestring数据源指定的数据库
tablestring要写入的表(指标)
columnlist所配置的表中需要同步的列名集合
connTimeoutint15设置连接超时值,单位为秒
readTimeoutint20设置读取超时值,单位为秒
writeTimeoutint20设置写入超时值,单位为秒
preSqllist插入数据前执行的SQL语句
postSqllist数据插入完毕后需要执行的语句
retentionPolicymap设置数据库的 Retention Policy 策略

column

InfluxDB 作为时序数据库,需要每条记录都有时间戳字段,因此这里会把 column 配置的第一个字段默认当作时间戳

retentionPolicy

设定数据库的 Retention Policy 策略,依据给定的配置,在指定数据库上创建一条 Retention Policy 信息。 有关 Retention Policy 更详细的信息,可以参考 官方文档

类型转换

当前支持 InfluxDB 的基本类型

限制

  1. 当前插件仅支持 1.x 版本,2.0 及以上并不支持