Skip to main content

InfluxDB Sink

一、介绍

influxdb sink,不支持断点续传,只能根据time排序,而time非主键不唯一,如果你批量写入数据点,并且所有的写入点没有显示的 timestamp,那么它们将被以相同的 timestamp 写入。

二、支持版本

influxDB 1.x

三、插件名称

Syncinfluxdbsink、influxdbwriter
SQL

四、参数说明

1、Sync

  • connection

    • 描述:数据库连接参数,包含jdbcUrl、database、measurement等参数

    • 必选:是

    • 参数类型:List

    • 默认值:无

      "connection": [{
      "url": ["http://127.0.0.1:8086"],
      "measurement": ["measurement"],
      "database":"public"
      }]

  • url

    • 描述:连接influxDB的url
    • 必选:是
    • 参数类型:string
    • 默认值:无
  • database

    • 描述:数据库名
    • 必选:是
    • 参数类型:string
    • 默认值:无
  • measurement

    • 描述:目的表的表名称。目前只支持配置单个表,后续会支持多表
    • 必选:是
    • 参数类型:List
    • 默认值:无
  • username

    • 描述:数据源的用户名
    • 必选:是
    • 参数类型:String
    • 默认值:无
  • password

    • 描述:数据源指定用户名的密码
    • 必选:是
    • 参数类型:String
    • 默认值:无
  • rp

    • 描述:influxdb中的数据保留多长时间、数据保留几个副本(开源版只能保留一个)、每个shard保留多长时间的数据,创建一个retentionPolicy的要素:
      • DURATION:这个描述了保留策略要保留多久的数据。这个机制对于时序型的数据来讲,是非常有用的。
      • SHARD:这个是实际存储influxdb数据的单元。每个shard保留一个时间片的数据,默认是7天。如果你保存1年的数据,那么influxdb会把连续7天的数据放到一个shard中,使用好多个shard来保存数据。
      • SHARD DURATION:这个描述了每个shard存放多数据的时间片是多大。默认7天。需要注意的是,当数据超出了保留策略后,influxdb并不是按照数据点的时间一点一点删除的,而是会删除整个shard group。
      • SHARD GROUP:顾名思义,这个一个shard group包含多个shard。对于开源版的influxdb,这个其实没有什么区别,可以简单理解为一个shard group只包含一个shard,但对于企业版的多节点集群模式来讲,一个shard group可以包含不同节点上的不同shard,这使得influxdb可以保存更多的数据。
      • SHARD REPLICATION:这个描述了每个shard有几个副本。对于开源版来讲,只支持单副本,对于企业版来讲,每个shard可以冗余存储,这样可以避免单点故障。
    • 必选:否
    • 参数类型:String
    • 默认值:influxdb默认retention policy
  • writeMode

    • 描述:由于influxdb优先考虑create和read数据的性能而不是update和delete,对现有数据的更新是罕见的事件,持续地更新永远不会发生。时间序列数据主要是永远不更新的新数据。因此我们只支持insert操作
    • 必选:否
    • 参数类型:String
    • 默认值:insert
  • enableBatch

    • 描述:是否开启batch写入
    • 必选:否
    • 参数类型:boolean
    • 默认值:true
  • bufferLimit

    • 描述:批次,InfluxData建议每个buffer的大小在5000~10000个数据点
    • 必选:否
    • 参数类型:int
    • 默认值:10000
  • flushDuration

    • 描述:写入间隔,开启批次写入是从buffer flush进磁盘的间隔(毫秒)
    • 必选:否
    • 参数类型:int
    • 默认值:1000
  • flushDuration

    • 描述:与timestamp字段搭配使用,设置所提供的Unix时间的精度。如果您不指定精度,TSDB For InfluxDB®假设时间戳的精度为纳秒。
    • 必选:否
    • 可选值:ns,u,ms,s,m,h
    • 参数类型:string
    • 默认值:ns
  • tag

    • 描述:哪些字段是tag(measurement的tag对应的key)

    • 必选:否

    • 参数类型:list

    • 默认值:无

      "tags":["id","no"],

五、数据类型

是否支持类型名称
支持SMALLINT、BINARY_DOUBLE、CHAR、VARCHAR、VARCHAR2、NCHAR、NVARCHAR2、INT、INTEGER、NUMBER、DECIMAL、FLOAT、DATE、RAW、LONG RAW、BINARY_FLOAT、TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE、TIMESTAMP WITH TIME ZON、INTERVAL YEAR、INTERVAL DAY

六、脚本示例

见项目内flinkx-examples文件夹。