由于时间戳的原因,在Apache Ni Fi中使用PutInfluxDatabaseRecord时出错



我创建了一个Apache Ni Fi流1,从MySQL服务器获取一个简单的表,并在进行一些数据转换后将其复制到InfluxDB中。

我使用PutInfluxDataRecord处理器将数据从AVRO格式转换为In Line协议,并将数据插入Influx(通过使用StandardInfluxDatabaseService 1.15.0-SNAPSHOT控制器服务(。

在Avro Reader 1.15.2控制器服务中,我选择了"模式访问策略:使用嵌入式Avro模式"选项。

在PutInfluxDataRecord处理器的属性中,我将Timestamp字段属性的值设置为"0";time_stamp";,其是处理器的输入流中包含时间戳的字段的名称。

当运行流时,我得到以下错误:

PutInfluxDatabaseRecord[id=6d21f785-017e-1000-e0da-0528ab2de725]由于处理流文件f0c553ef-7a4b-414c-bd9f-be2c6b7bf4f5失败对于输入字符串:";2021-01-11 09:00:00.0":java.lang.NumberFormatException:对于输入字符串:"2021-01-1109:00:00.0";

在PutInfluxDatabaseRecord处理器的属性选项卡中,在时间戳字段属性的帮助文本中,它表示支持的类型为:java.util.Date、java.lang.Number和java.lang.String.

有什么线索可以帮我解决吗?

谢谢,

Bernardo

Apache Ni Fi流

我通过更改用于从MySQL服务器获取数据的QueryDatabaseTable处理器中的设置来解决这个问题。我做了以下更改:

使用Avro逻辑类型:真正的

这阻止了Ni Fi将time_stamp设置为字符串。

最新更新