如何在Avro Schema中合规添加示例值?官方规范有无相关说明?
Avro Schema 添加示例值的合规方式
Avro 官方规范没有定义专门的examples字段来存储字段示例值,你自定义的examples键虽然不会导致 Schema 解析报错,但不属于标准规范范畴,不同 Avro 工具对这类自定义字段的支持程度不一致,可能出现兼容性问题。
以下是两种符合规范的实现方式:
1. 利用规范内置的doc字段
doc是 Avro 明确支持的字段,用于存储字段描述信息,虽然仅支持单一字符串,但可以将示例值嵌入其中,所有兼容 Avro 的工具都能识别展示:
{ "namespace": "example.avro", "type": "record", "name": "User", "fields": [ { "name": "name", "type": "string", "doc": "用户姓名,示例:John Smith" } ] }
2. 使用带前缀的自定义属性
Avro 允许添加自定义扩展属性,为了避免和未来官方新增字段冲突,建议给自定义字段加上x-这类约定前缀,适合需要结构化存储多示例值的场景:
{ "namespace": "example.avro", "type": "record", "name": "User", "fields": [ { "name": "name", "type": "string", "doc": "用户姓名", "x-examples": ["John Smith", "Jane Doe"] } ] }
注意:这种方式需要你使用的 Avro 工具支持读取自定义属性才能生效。
内容的提问来源于stack exchange,提问作者fab
相关产品推荐
相关产品推荐

