程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了没有 Schema 的 JSON 和 Avro 反序列化大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决没有 scheR_338_11845@a 的 JSON 和 Avro 反序列化?

开发过程中遇到没有 scheR_338_11845@a 的 JSON 和 Avro 反序列化的问题如何解决?下面主要结合日常开发的经验,给出你关于没有 scheR_338_11845@a 的 JSON 和 Avro 反序列化的解决方法建议,希望对你解决没有 scheR_338_11845@a 的 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,请注明来意。