什么是计算 Avro 模式哈希的好方法?

What will be a good way to compute a hash of an Avro schema?

考虑为开发、测试和生产等每个阶段设置单独的架构注册表。

那么相同的架构将在每个注册表中具有不同的全球唯一架构标识符。

我们的想法是在所有阶段(模式是registered/evolved)拥有模式的稳定不变标识符——模式内容的计算散列。

计算这种哈希值的好方法是什么?选择特定的哈希算法在这里不是问题——模式转换可能是问题:是否应该删除文档字符串等?

Avro 规范实际上在有关解析规范形式的部分中讨论了这一点:https://avro.apache.org/docs/current/spec.html#Parsing+Canonical+Form+for+Schemas

该表格确实表示应该删除像 doc 这样的字段,并指定属性的顺序和其他内容以使所有模式保持一致。