Protocol buffers Avro尺寸太大?

Protocol buffers Avro尺寸太大?,protocol-buffers,avro,Protocol Buffers,Avro,我对我公司最好的数据交换格式做了一些研究。目前,我比较了协议缓冲区和ApacheAvro。 请求在我们的体系结构中的组件之间交换,但只能一个接一个地交换。我的印象是,当只逐个传输时,Avro比T协议缓冲区大得多。在avro文件中,模式总是存在的,并且我们的请求有很多可选字段,因此即使我们的数据很小,我们的模式也非常大。 但我不知道我是否遗漏了什么,到处都写着,比avro小,但对我们来说,似乎我们必须在一个文件中放入1000个请求,以获得PBuffers和avro的大小相等。 我错过了什么或者我的

我对我公司最好的数据交换格式做了一些研究。目前,我比较了协议缓冲区和ApacheAvro。 请求在我们的体系结构中的组件之间交换,但只能一个接一个地交换。我的印象是,当只逐个传输时,Avro比T协议缓冲区大得多。在avro文件中,模式总是存在的,并且我们的请求有很多可选字段,因此即使我们的数据很小,我们的模式也非常大。 但我不知道我是否遗漏了什么,到处都写着,比avro小,但对我们来说,似乎我们必须在一个文件中放入1000个请求,以获得PBuffers和avro的大小相等。 我错过了什么或者我的想法是真的?
谢谢

两种序列化格式产生的大小基本相同一点也不奇怪。这些不是压缩算法,它们只是结构。对于任何合适的格式,您的绝大多数数据都将是您的数据;它周围的结构(这是根据序列化格式而变化的部分)应该可以忽略不计。无论数据周围的序列化格式如何,数据的大小都不会改变

还要注意,任何声称一种格式总是比另一种格式小的人要么是在撒谎,要么就是不知道自己在说什么。每种格式都有优缺点,所以“最佳”格式完全取决于用例。使用您自己的数据测试每种格式很重要,以找出最适合您的格式--听起来您正在这样做,这很好!如果Protobuf和Avro在测试中的大小相等,那么您应该根据其他因素进行选择。例如,您可能需要测试编码/解码速度