大佬教程收集整理的这篇文章主要介绍了没有 Schema 的 JSON 和 Avro 反序列化,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在尝试在没有融合模式注册表的情况下实现 Avro 反序列化。快速 research 显示我可以在将记录发送到主题之前将模式嵌入到标题中。但是在嵌入到标头之前,必须再次将架构序列化为字节,这再次使这成为问题。有没有办法做到这一点?
这种方法的缺点是什么。
confluent 如何从数据中提取模式并将其存储在模式注册表中?我知道模式注册表在将数据发送到主题时在记录头中嵌入了模式 ID。数据在发送到模式注册表之前不是序列化的吗?
再次看一下 Confluent JsonDeserialzier,它在没有任何模式的情况下反序列化数据并与 JsonNode 一起工作。为什么 Avro 不可能有类似的机制?
一项快速研究表明,我可以在将记录发送到主题之前将模式嵌入到标题中
如果您使用 BinaryEncoder 将任何对象序列化为 Avro,这是默认行为,是的。
在嵌入到标头之前,必须再次将架构序列化为字节
不确定您的意思是“再次”。对于每条消息,是的,并且没有办法解决这个问题,但不能在序列化单个记录的同一个过程中。
这种方法的缺点是什么。
有大量关于使用注册表的优点的文档。缺点包括维护额外的基础设施,并非所有工具都可以与其集成。
confluent 如何从数据中提取模式并将其存储在模式注册表中?
参考source code (extract scheR_338_11845@a as text)然后POST scheR_338_11845@a text to the registry to get the ID and embed in the record
数据在发送到架构注册表之前不是序列化的吗?
如果“序列化”是指 Avro,那么可以,但架构是 UTF8 序列化的
JsonDeserialzier,它在没有任何模式的情况下反序列化数据并与 JsonNode 一起使用。为什么 Avro 不可能有类似的机制?
我认为您应该比较 JsonscheR_338_11845@aDeserializer 类。显然,普通的 JSON 没有模式的概念。 Avro 需要一个用于反序列化的读取器架构,但有一个类似的机制 - GenericRecord
的操作类似于 JsonNode
以上是大佬教程为你收集整理的没有 Schema 的 JSON 和 Avro 反序列化全部内容,希望文章能够帮你解决没有 Schema 的 JSON 和 Avro 反序列化所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。