【问题标题】:Support for import in avpr file from avsc schema file支持从 avsc 模式文件导入 avpr 文件
【发布时间】:2016-01-29 17:29:13
【问题描述】:

我有两个架构文件

首先是 position.avsc

{
"type":"enum", "name": "Position", "namespace": "avro.examples.baseball",
    "symbols": ["P", "C", "B1", "B2", "B3", "SS", "LF", "CF", "RF", "DH"]
}

其次是 player.avsc

{
"type":"record", "name":"Player", "namespace": "avro.examples.baseball",
  "fields": [
   {"name": "number", "type": "int"},
   {"name": "first_name", "type": "string"},
   {"name": "last_name", "type": "string"},
   {"name": "position", "type": {"type": "array", "items": "avro.examples.baseball.Position"} }
  ]
}

我可以在avdl中导入这些架构

@namespace("avro.examples.baseball")
protocol Baseball {
   import schema "position.avsc";
   import schema "player.avsc";
}

但我想在 json 中定义上述协议并将这些模式导入协议文件中。 这将有助于模式的可重用性

【问题讨论】:

    标签: java maven schema avro


    【解决方案1】:

    可以使用两种类型的文件指定 Avro idl 架构

    1. avpr
    2. avdl

    如果是 avpr 文件,我们不能导入外部模式。所有必需的架构都必须存在于同一个文件中。

    对于 avdl ,我们可以从 avsc 文件中导入外部模式。

    我已经为avro 1.7.7验证了这一点

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      • 2021-07-23
      • 1970-01-01
      • 2018-02-10
      • 2020-05-01
      • 1970-01-01
      相关资源
      最近更新 更多