由于时间戳,在 Apache Ni-Fi 中使用 PutInfluxDatabaseRecord 时出错
Error when using PutInfluxDatabaseRecord in Apache Ni-Fi due to time stamp
我创建了一个 Apache Ni-Fi 流程 1 以从 MySQL 服务器获取一个简单的 table 并在一些数据转换后将其复制到 InfluxDB 中。
我使用 PutInfluxDataRecord 处理器将数据从 AVRO 格式转换为内联协议并将数据插入 Influx(通过使用 StandardInfluxDatabaseService 1.15.0-SNAPSHOT 控制器服务)。
在 Avro Reader 1.15.2 控制器服务中,我选择了模式访问策略选项:使用嵌入式 Avro 模式。
在 PutInfluxDataRecord 处理器的属性中,我将时间戳字段的值 属性 设置为“time_stamp”,这是包含输入流中时间戳的字段的名称处理器。
当运行流时,出现如下错误:
PutInfluxDatabaseRecord[id=6d21f785-017e-1000-e0da-0528ab2de725]
Failed procession flow file f0c553ef-7a4b-414c-bd9f-be2c6b7bf4f5 due
to For input string: "2021-01-11 09:00:00.0":
java.lang.NumberFormatException: For input string: "2021-01-11
09:00:00.0"
在 PutInfluxDatabaseRecord 处理器的 属性 选项卡中,在时间戳字段 属性 的帮助文本中,它表示支持的类型是:java.util.Date、java.lang.Number和 java.lang.String.
有什么提示可以解决这个问题吗?
谢谢,
贝尔纳多
Apache Ni-Fi flow
我通过更改用于从 MySQL 服务器获取数据的 QueryDatabaseTable 处理器中的设置解决了这个问题。我做了以下更改:
使用 Avro 逻辑类型:true
这阻止了 Ni-Fi 将 time_stamp 设置为字符串。
我创建了一个 Apache Ni-Fi 流程 1 以从 MySQL 服务器获取一个简单的 table 并在一些数据转换后将其复制到 InfluxDB 中。
我使用 PutInfluxDataRecord 处理器将数据从 AVRO 格式转换为内联协议并将数据插入 Influx(通过使用 StandardInfluxDatabaseService 1.15.0-SNAPSHOT 控制器服务)。
在 Avro Reader 1.15.2 控制器服务中,我选择了模式访问策略选项:使用嵌入式 Avro 模式。
在 PutInfluxDataRecord 处理器的属性中,我将时间戳字段的值 属性 设置为“time_stamp”,这是包含输入流中时间戳的字段的名称处理器。
当运行流时,出现如下错误:
PutInfluxDatabaseRecord[id=6d21f785-017e-1000-e0da-0528ab2de725] Failed procession flow file f0c553ef-7a4b-414c-bd9f-be2c6b7bf4f5 due to For input string: "2021-01-11 09:00:00.0": java.lang.NumberFormatException: For input string: "2021-01-11 09:00:00.0"
在 PutInfluxDatabaseRecord 处理器的 属性 选项卡中,在时间戳字段 属性 的帮助文本中,它表示支持的类型是:java.util.Date、java.lang.Number和 java.lang.String.
有什么提示可以解决这个问题吗?
谢谢,
贝尔纳多
Apache Ni-Fi flow
我通过更改用于从 MySQL 服务器获取数据的 QueryDatabaseTable 处理器中的设置解决了这个问题。我做了以下更改:
使用 Avro 逻辑类型:true
这阻止了 Ni-Fi 将 time_stamp 设置为字符串。