elasticsearch kafka avro elasticsearch消费者允许未知密钥,elasticsearch,apache-kafka,avro,confluent-platform,elasticsearch,Apache Kafka,Avro,Confluent Platform" /> elasticsearch kafka avro elasticsearch消费者允许未知密钥,elasticsearch,apache-kafka,avro,confluent-platform,elasticsearch,Apache Kafka,Avro,Confluent Platform" />

elasticsearch kafka avro elasticsearch消费者允许未知密钥

elasticsearch kafka avro elasticsearch消费者允许未知密钥,elasticsearch,apache-kafka,avro,confluent-platform,elasticsearch,Apache Kafka,Avro,Confluent Platform,有没有办法允许Kafka Avro接受来自生产者的所有密钥,即使它们没有在生产者模式中定义?目前,我正在与 ./bin/kafka-avro-console-producer --broker-list localhost:9092 --topic elasticsearch-sink --property value.schema='{"type":"record","name":"myRecord", "fields":[{"name":"esKey", type":"string"}]}'

有没有办法允许Kafka Avro接受来自生产者的所有密钥,即使它们没有在生产者模式中定义?目前,我正在与

./bin/kafka-avro-console-producer --broker-list localhost:9092 --topic elasticsearch-sink --property value.schema='{"type":"record","name":"myRecord", "fields":[{"name":"esKey", type":"string"}]}'
并传入
{“esKey”:“keyExample”,“undefinedKey”:“empty”}

消费者只会显示
{“esKey”:“keyExample”}

因此,未定义的密钥也不会发送到ElasticSearch。 我宁愿不定义模式,因为输入非常大且不可预测


编辑:使用Confluent 4.1.1时,您的模式不允许使用其他字段

"fields":[{"name":"esKey", type":"string"}]
您需要将
undefinedKey
添加到此字段中,该字段才会出现。基本上,Avro反序列化程序没有理由认为其他字段应该存在

我宁愿不定义模式,因为输入非常大且不可预测


不清楚这意味着什么,但如果您有不可预测的数据,那么可能Avro或任何严格定义的模式协议不是最佳选择?

您的模式不允许其他字段

"fields":[{"name":"esKey", type":"string"}]
您需要将
undefinedKey
添加到此字段中,该字段才会出现。基本上,Avro反序列化程序没有理由认为其他字段应该存在

我宁愿不定义模式,因为输入非常大且不可预测


不清楚这意味着什么,但如果您有不可预测的数据,那么可能Avro或任何严格定义的模式协议不是最佳选择?

对,如果我知道创建模式时的
undefinedKey
是什么,那么我可以将其包括在内。我希望有一种方法在创建生产者时不包含完整的模式(或任何模式),并允许将所有输入发送到ElasticSearch(通过普通生产者}并直接发送JSON。这是您能够在atm工作时获取异构消息的唯一方法,因此我不能重申这一点,但当使用普通生产者时,数据并不像avro生产者那样发送到ElasticSearch。这是正常的还是我遗漏了什么?如果您的记录或模式正确,请感谢帮助如果缺少一个字段,那么任何消费者都不应该能够看到这些字段。我不经常使用Elastic sink,因此我不知道我是否能提供更多帮助。如果我知道创建模式时的
undefinedKey
是什么,那么我可以将其包括在内。我希望有一种方法可以不包括完整的模式(或任何模式)创建生产者时,允许将所有输入发送到ElasticSearch。当然,可以使用无模式数据(通过普通生产者}并直接发送JSON。这是您能够在atm工作时获取异构消息的唯一方法,因此我不能重申这一点,但当使用普通生产者时,数据并不像avro生产者那样发送到ElasticSearch。这是正常的还是我遗漏了什么?如果您的记录或模式正确,请感谢帮助如果缺少一个字段,那么消费者就不能看到这些字段。我不经常使用弹性水槽,所以我不知道我是否能提供更多帮助