mysql - PutElasticsearchHttpRecord : Invalid char between encapsulated token and delimiter

标签 mysql apache apache-nifi

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

从数据库中获取特定记录

ES 处理器抛出 错误,作为 Java.IO.Exception Invalid char between encapsulated token and delimiter。

请查看附件中我的配置。如何解决这个问题? 我在“UpdateAttribute”之后的队列中得到了正确的结果,但无法将其推送到 ES。我已将 schema.name 属性添加到适当的架构中。 以下是我在 UpdateAttribute 处理器之后进入队列的正确结果。 如何修复Invalid character between token and delimiter的错误?

[ {
  "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

最佳答案

您需要在 PutElasticSearchHttpRecord 中配置 Avro Reader 而不是 CSV Reader 作为 QuerydatabaseTable processor outputs flowfile in Avro 格式

在 Avro Reader Controller 服务中使用嵌入式 avro 模式enter image description here

关于mysql - PutElasticsearchHttpRecord : Invalid char between encapsulated token and delimiter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52864793/

相关文章:

PHP - 如何检查当前日期/时间是否在两个工作日之间,包括时间(从 - 到)

docker - docker 卷中的文件未更新

amazon-s3 - 从 S3 获取文件并将其输入到 python 脚本中

命令中的 Powershell 变量不起作用

MySQL sum 给出不同的值

DB物理插入MySQL SELECT反向查询

apache - HTTPS 和 Zend 框架

php5.5 FreeBSD端口apache模块

eclipse - 为什么在 localhost 之后需要端口 8080?

hadoop - Nifi 收到全文推文