elasticsearch 弹性搜索-Kafka Connect未将密钥的正确值发布为文档id
我正在尝试使用kafka connect将数据从kafka主题发布到弹性搜索。 下面是我的配置elasticsearch 弹性搜索-Kafka Connect未将密钥的正确值发布为文档id,elasticsearch,apache-kafka,apache-kafka-connect,elasticsearch,Apache Kafka,Apache Kafka Connect,我正在尝试使用kafka connect将数据从kafka主题发布到弹性搜索。 下面是我的配置 { “名称”:“elasticsearch_sink_19”, “配置”:{ “connector.class”:“io.confluent.connect.elasticsearch.ElasticsearchSinkConnector”, “tasks.max”:“1”, “主题”:“k-connect-status”, “connection.url”:”http://docker.for.ma
{
“名称”:“elasticsearch_sink_19”,
“配置”:{
“connector.class”:“io.confluent.connect.elasticsearch.ElasticsearchSinkConnector”,
“tasks.max”:“1”,
“主题”:“k-connect-status”,
“connection.url”:”http://docker.for.mac.host.internal:9200",
“type.name”:“connectstatus”,
“behavior.on.malformed.documents”:“忽略”,
“错误.公差”:“全部”,
“errors.log.enable”:“true”,
“errors.log.include.messages”:“true”,
“value.converter”:“org.apache.kafka.connect.json.JsonConverter”,
“key.converter”:“org.apache.kafka.connect.storage.StringConverter”,
“validate.non.null”:“false”,
“key.ignore”:“true”,
“schema.ignore”:“true”,
value.converter.schemas.enable:“false”
}
}
“key.ignore”true是使用错误的_id(不是预期的_id)发布数据
主题中的数据:
格式:JSON
{
“划船时间”:15917433742,
“ROWKEY”:“状态-连接器-弹性搜索\u水槽\u 31”,
“状态”:“正在运行”,
“跟踪”:空,
“工人id”:“连接:8083”,
“一代”:2
}
示例弹性搜索输出:
{
“_索引”:“k-connect-status”,
“_类型”:“连接状态”,
“_id”:“k-connect-status+1+17”,
“_分数”:1.0,
“_来源”:{
“一代”:11,
“跟踪”:空,
“状态”:“未分配”,
“工人id”:“连接:8083”
}
}
预期弹性搜索输出
{
“_索引”:“k-connect-status”,
“_类型”:“连接状态”,
“\u id”:“status-connector-elasticsearch\u sink\u 31”,
“_分数”:1.0,
“_来源”:{
“一代”:11,
“跟踪”:空,
“状态”:“未分配”,
“工人id”:“连接:8083”
}
}
ROWKEY作为弹性搜索的_id。至少有附加了主题名称的行键
“key.ignore”false不发布任何数据 “key.ignore”:“true”
正在做它应该做的事情。它忽略Kafka消息的键,而是使用topic+partition+offset的元组,这是您在引用的Elasticsearch输出中可以看到的:
"_id" : "k-connect-status+1+17",
如果要使用卡夫卡信息的密钥,需要设置“key.ignore”:“false”
查看本教程了解更多信息,并查看有关键的说明/
正在做它应该做的事情。它忽略Kafka消息的键,而是使用topic+partition+offset的元组,这是您在引用的Elasticsearch输出中可以看到的:“key.ignore”:“true”
如果要使用卡夫卡信息的密钥,需要设置"_id" : "k-connect-status+1+17",
查看本教程了解更多信息,并查看有关键的说明/“key.ignore”:“false”
- 默认情况下,通过连接:主题、分区和偏移来创建文档_id。它发生在你的位置上。
您应该设置
键。忽略
false上的
并传递正确的键 若您需要从消息值中提取一些信息并将其放入密钥中,则应使用适当的。我想您可以试试。默认情况下,通过连接主题、分区和偏移来创建文档id。它发生在你的位置上。 您应该设置
键。忽略
false上的
并传递正确的键
若您需要从消息值中提取一些信息并将其放入密钥中,则应使用适当的。我想你可以试试。为什么
应该在31
中?您希望实现哪种格式的\u id
?在弹性搜索中,消息的行键应该是\u id。为什么\u id
应该在31
中?您希望实现哪种格式的\u id
?消息的ROWKEY应该是弹性搜索上的_id。设置“key.ignore”:“false”不会将任何消息发布到弹性搜索。我没有看到任何例外。奇怪!JSON格式的值和键为字符串是否有问题?我会删除\u id
和“errors.tolerance”:“all”、
,并检查日志是否显示任何故障。如果键是String,则使用StringConverter。消息的值部分将不相关。问题在于弹性搜索的版本不兼容。通过将ES降级至6.7.2解决。异常:{“类型”:“非法参数\u异常”,“原因”:“操作/元数据行[1]包含未知参数[\u版本]”}您使用的是哪个版本的Elasticsearch和Kafka Connect ES连接器?带连接器v5.5的ES 7.5应能正常工作设置“key.ignore”:“false”不会向Elastic Search发布任何消息。我没有看到任何例外。奇怪!JSON格式的值和键为字符串是否有问题?我会删除“behavior.on.malformed.documents”:“ignore”
和“errors.tolerance”:“all”、
,并检查日志是否显示任何故障。如果键是String,则使用StringConverter。消息的值部分将不相关。问题在于弹性搜索的版本不兼容。通过将ES降级至6.7.2解决。异常:{“类型”:“非法参数\u异常”,“原因”:“操作/元数据行[1]包含未知参数[\u版本]”}您使用的是哪个版本的Elasticsearch和Kafka Connect ES连接器?带连接器v5.5的ES 7.5应能正常工作“behavior.on.malformed.documents”:“ignore”
- 默认情况下,通过连接:主题、分区和偏移来创建文档_id。它发生在你的位置上。
您应该设置