PutElasticsearchHttpRecord:封装的令牌和定界符之间的无效字符

时间:2018-10-17 23:06:07

标签: mysql apache apache-nifi

我正在尝试使用 QueryDatabaseTable-> UpdateAttribute-> PutElasticSearchHttpRecord

从数据库中获取特定记录

ES处理器以Java.IO.Exception的形式抛出 错误。封装的令牌和定界符之间的字符无效。

请找到附件我的配置。该如何解决? 我在'UpdateAttribute'之后的队列中得到了正确的结果,但是无法将其推入ES。我已将schema.name属性添加到适当的架构。 以下是我在UpdateAttribute处理器之后进入队列的正确结果。 如何解决令牌和定界符之间无效字符的错误?

[ {
  "TimeOfDay" : "2018-09-20T18:10:36.941",
  "BMU_Debug_Pack_BlkVolt_Max2" : 4114.0,
  "BMU_Debug_Pack_BlkVolt_Max1" : 4114.0,
  "BMU_Debug_Pack_BlkVolt_Max3" : 4114.0,
  "BMU_Debug_Pack_BlkVolt_Max0" : 4116.0,
  "BMU_Debug_Pack_CTemp_Min" : 21.0,
  "BMU_Debug_Pack_CurrVolt_Curr" : 2.0,
  "BMU_Debug_Pack_Blk_Volt_Delta" : 6.0,
  "total_Difference" : 15.0
} ]

谢谢!请帮助我该更改什么?

QueryDatabaseTable

QueryDatabaseTable SQL

ElasticSearch

Elasticsearch Config

ES Schema

1 个答案:

答案 0 :(得分:2)

您需要在 PutElasticSearchHttpRecord 中配置 Avro Reader 而不是CSV Reader,因为Querydatabase表处理器以 Avro格式输出流文件

在Avro Reader控制器服务中使用embedded avro schemaenter image description here