AVRO的二进制编码会压缩数据吗?

朋友

在我们的一个项目中,我们使用带有AVRO的Kafka在跨应用程序之间传输数据。数据被添加到AVRO对象,并且该对象被二进制编码以写入Kafka。我们使用二进制编码,因为与其他格式相比,二进制编码通常被认为是一种最小的表示形式。

数据通常是JSON字符串,当保存在文件中时,它会使用多达10 Mb的磁盘。但是,在压缩文件(.zip)时,它仅使用几个KB。我们担心将这些数据存储在Kafka中,因此尝试在写入Kafka主题之前进行压缩。

当测量二进制编码消息的长度(即字节数组的长度)时,它与数据字符串的长度成正比。因此,我假设二进制编码不会减小任何大小。

有人可以告诉我二进制编码是否压缩数据?如果没有,如何应用压缩?

谢谢!

zhaown

二进制编码是否可以压缩数据?

是和否,这取决于您的数据。

根据avro二进制编码是的,因为它只为每个.avro文件存储一次架构,而不管该文件中有多少数据,因此节省了一些空间,而无需多次存储JSON的键名。而avro序列化则通过存储int并利用可变长度的 之字形编码(仅适用于较小的值)来进行位压缩对于其余的内容,avro不会“压缩”数据。

,在某些极端情况下,avro序列化数据可能会比原始数据大。例如。一个.avro文件,其中一个Record只有一个字符串字段。架构开销可能会破坏不需要存储键名的原因。

如果没有,如何应用压缩?

根据avro编解码器,avro具有内置的压缩​​编解码器和可选的压缩编解码器。编写对象容器文件时只需添加一行:

DataFileWriter.setCodec(CodecFactory.deflateCodec(6)); // using deflate

要么

DataFileWriter.setCodec(CodecFactory.snappyCodec()); // using snappy codec

要使用它,snappy您需要将snappy-java包含到您的依赖项中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AVRO模式也被编码为二进制部分吗?

来自分类Dev

使用 Expo 构建二进制文件会压缩应用程序的大小吗?

来自分类Dev

将坐标编码为二进制和压缩

来自分类Dev

我可以使用Izo压缩二进制数据的缩放源吗?

来自分类Dev

二进制数据上的 Http 压缩

来自分类Dev

Python Thrift二进制类型需要编码吗?

来自分类Dev

JSON和二进制数据-编码

来自分类Dev

从Avro获取二进制内容

来自分类Dev

压缩二进制矩阵

来自分类Dev

长二进制数组压缩

来自分类Dev

URL #anchor可以包含二进制数据吗?

来自分类Dev

高效的struct二进制编码

来自分类Dev

二进制到DNA编码

来自分类Dev

二进制编码DNA链

来自分类Dev

ZPL:二进制B64和压缩的Z64编码

来自分类Dev

压缩\解压缩二进制文件

来自分类Dev

如何使用HTTP作为传输读取通过Avro序列化的二进制数据?

来自分类Dev

根据数据帧的因素元数据的级别创建二进制编码的列

来自分类Dev

将二进制数据打包和解压缩到列表中的最快方法

来自分类Dev

我们为什么不使用简单的二进制值来压缩数据

来自分类Dev

如何在Node JS中解压缩二进制数据

来自分类Dev

在Julia中解压缩具有特定格式的二进制数据

来自分类Dev

Python解压缩二进制数据,长度为12的数字

来自分类Dev

将二进制数据打包和解压缩到列表中的最快方法

来自分类Dev

nodejs zlib 从套接字解压缩二进制数据

来自分类Dev

websockets中的二进制Opcode编码和解码实现特定吗?

来自分类Dev

ISO 8583消息中打包的二进制数据和解压缩的二进制数据是什么?

来自分类Dev

ISO 8583消息中打包的二进制数据和解压缩的二进制数据是什么?

来自分类Dev

如何将我的json字符串进行avro二进制编码为字节数组?

Related 相关文章

  1. 1

    AVRO模式也被编码为二进制部分吗?

  2. 2

    使用 Expo 构建二进制文件会压缩应用程序的大小吗?

  3. 3

    将坐标编码为二进制和压缩

  4. 4

    我可以使用Izo压缩二进制数据的缩放源吗?

  5. 5

    二进制数据上的 Http 压缩

  6. 6

    Python Thrift二进制类型需要编码吗?

  7. 7

    JSON和二进制数据-编码

  8. 8

    从Avro获取二进制内容

  9. 9

    压缩二进制矩阵

  10. 10

    长二进制数组压缩

  11. 11

    URL #anchor可以包含二进制数据吗?

  12. 12

    高效的struct二进制编码

  13. 13

    二进制到DNA编码

  14. 14

    二进制编码DNA链

  15. 15

    ZPL:二进制B64和压缩的Z64编码

  16. 16

    压缩\解压缩二进制文件

  17. 17

    如何使用HTTP作为传输读取通过Avro序列化的二进制数据?

  18. 18

    根据数据帧的因素元数据的级别创建二进制编码的列

  19. 19

    将二进制数据打包和解压缩到列表中的最快方法

  20. 20

    我们为什么不使用简单的二进制值来压缩数据

  21. 21

    如何在Node JS中解压缩二进制数据

  22. 22

    在Julia中解压缩具有特定格式的二进制数据

  23. 23

    Python解压缩二进制数据,长度为12的数字

  24. 24

    将二进制数据打包和解压缩到列表中的最快方法

  25. 25

    nodejs zlib 从套接字解压缩二进制数据

  26. 26

    websockets中的二进制Opcode编码和解码实现特定吗?

  27. 27

    ISO 8583消息中打包的二进制数据和解压缩的二进制数据是什么?

  28. 28

    ISO 8583消息中打包的二进制数据和解压缩的二进制数据是什么?

  29. 29

    如何将我的json字符串进行avro二进制编码为字节数组?

热门标签

归档