Skip to content

InfluxDB Reader

InfluxDBReader 插件实现了从 InfluxDB 读取数据。底层实现上,是通过调用 InfluQL 语言查询表,然后获得返回数据。

示例

以下示例用来演示该插件如何从指定表(即指标)上读取数据并输出到终端

创建需要的库表和数据

通过以下命令来创建需要读取的表以及数据

bash
# create database
influx --execute "CREATE DATABASE NOAA_water_database"
# download sample data
curl https://s3.amazonaws.com/noaa.water-database/NOAA_data.txt -o NOAA_data.txt
# import data via influx-cli
influx -import -path=NOAA_data.txt -precision=s -database=NOAA_water_database

创建 job 文件

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

json
{
  "job": {
    "content": {
      "reader": {
        "name": "influxdbreader",
        "parameter": {
          "column": [
            "*"
          ],
          "where": "1=1",
          "connection": {
            "endpoint": "http://localhost:8086",
            "database": "NOAA_water_database",
            "table": "h2o_feet"
          },
          "connTimeout": 15,
          "readTimeout": 20,
          "writeTimeout": 20,
          "username": "influx",
          "password": "influx123"
        }
      },
      "writer": {
        "name": "streamwriter",
        "parameter": {
          "print": "true"
        }
      }
    },
    "setting": {
      "speed": {
        "bytes": -1,
        "channel": 1
      }
    }
  }
}

运行

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

bash
bin/addax.sh job/influxdb2stream.json

参数说明

配置项是否必须数据类型默认值描述
endpointstringInfluxDB 连接串
usernamestring数据源的用户名
passwordstring数据源指定用户名的密码
databasestring数据源指定的数据库
tablestring所选取的需要同步的表名
columnlist所配置的表中需要同步的列名集合,详细描述见 rdbmreader
connTimeoutint15设置连接超时值,单位为秒
readTimeoutint20设置读取超时值,单位为秒
writeTimeoutint20设置写入超时值,单位为秒
wherestring针对表的筛选条件
querySqlstring使用 SQL 查询获取数据,如配置该项,则 tablecolumn 配置项无效

类型转换

当前实现是将所有字段当作字符串处理

限制

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