AVRO中基本类型的别名

  • 本文关键字:别名 类型 AVRO avro
  • 更新时间 :
  • 英文 :


我想为基本类型定义别名/逻辑名。但是如果我直接这样做,就像下面例子中的PartyId一样,Avro-Tools不接受这个:

protocol Test {
string PartyId;
record Header {
PartyId partyId;
}
}

在IDL或AVRO模式语言中可能吗?如何?作为变通方法,我可以定义:

record PartyId {
string _value;
}

虽然二进制看起来是等价的,但在语义上(例如在生成的Java代码中)这是不相同的- PartyId是结构化类型,而不是基本类型。

我可以为枚举和记录定义自定义名称,但在我看来,AVRO并没有提供混叠基本类型的方法。

Avro中的别名用于重新映射记录名称空间

记录和枚举的名称是因为它们是实际对象,而不是原语

就像你不能通过另一个类引用Java String一样,Avro也不需要这样的特性。您可以编写文档注释或适当地命名字段,以明确每个字段是什么

最新更新