【问题标题】:Avro Schema - what is "avro.java.string": "String"Avro Schema - 什么是“avro.java.string”:“String”
【发布时间】:2018-04-23 05:55:24
【问题描述】:

我已将 AUTO_REGISTER_SCHEMAS 的 Kafka Streams 处理配置设置为 true。

我注意到在这个自动生成的模式中,它创建了以下 2 种类型

{
      "name": "id",
      "type": {
        "type": "string",
        "avro.java.string": "String"
      }
},

有人可以解释一下为什么它会创建 2 种类型以及 "avro.java.string": "String" 到底是什么。

谢谢

【问题讨论】:

  • 只有一种类型。它是一个字符串,但它被澄清到一个特定的子类
  • 当 Python 客户端尝试使用此架构时,这是否会成为问题?
  • 类生成器通过用 Java 特定的逻辑类型替换 AVRO 字符串来修改模式的行为是一个错误:issues.apache.org/jira/browse/AVRO-2838 因为它确实成为与 Python 和其他语言的互操作性的问题

标签: avro


【解决方案1】:

默认情况下,Avro 使用CharSequence 表示字符串,以下语法允许您覆盖默认行为并使用 java.lang.String 作为这样声明的字段实例的字符串类型

"type": {
        "type": "string",
        "avro.java.string": "String"
      }

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 2018-09-27
    • 1970-01-01
    相关资源
    最近更新 更多