使用 kafka-json-schema-console-consumer 使用 JSON 消息时打印密钥

Posted

技术标签:

【中文标题】使用 kafka-json-schema-console-consumer 使用 JSON 消息时打印密钥【英文标题】:Printing key when consuming JSON messages using kafka-json-schema-console-consumer 【发布时间】:2021-11-25 23:10:48 【问题描述】:

我正在尝试使用 kafka-json-schema-console-consumer 使用 JSON 消息(由 JSON 架构定义),但我没有得到 key解析/打印(但该值确实被打印出来)。

我在任何文档中都找不到属性标志,但我很确定我应该能够打印密钥。我可以确认我正在使用 JSON 模式成功生成消息,并且所有 Kafka 组件(zookeeper、kafka 代理、模式注册表都在工作)

下面是我正在使用的命令。有没有办法打印密钥?

kafka-json-schema-console-consumer \
--bootstrap-server http://kafka:9092 \
--topic source-1 \
--property value.schema='

  "definitions" : 
    "record:myrecord" : 
      "type" : "object",
      "required" : [ "timestamp", "data" ],
      "properties" : 
        "timestamp" : "type" : "string",
        "data" : "type" : "string"
      
    
  ,
  "$ref" : "#/definitions/record:myrecord"
' \
--property key.schema='

  "definitions" : 
    "record:mykey" : 
      "type" : "object",
      "required" : [ "id" ],
      "additionalProperties" : false,
      "properties" : 
        "id" : "type" : "integer"
      
    
  ,
  "$ref" : "#/definitions/record:mykey"
'

输出显示值被正确打印,但键没有被打印:

"timestamp":"10/05/2021 4:41:53 PM","data":"hello world"

【问题讨论】:

【参考方案1】:

应该是--property print.key=true

【讨论】:

以上是关于使用 kafka-json-schema-console-consumer 使用 JSON 消息时打印密钥的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)