首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kafka数据压缩技术

Kafka数据压缩技术
EN

Stack Overflow用户
提问于 2020-11-10 14:36:24
回答 1查看 174关注 0票数 1

我将数据(选择性数据)从Oracle加载到Kafka,复制因子为1(所以,只有一个副本),Kafka中的数据大小为1TB。Kafka以压缩格式存储数据。但是,我想知道Oracle中的实际数据大小。由于我们选择了表和数据加载,所以我无法检查Oracle中的实际数据大小。是否有任何公式,我可以应用到估计在Oracle中的数据大小,为这个1TB的数据加载在Kafka?

Kafka版本- 2.1

同时,从甲骨文到卡夫卡的数据也花了4个小时。导线上的数据大小可能有所不同。如何估计线路上的数据和所消耗的带宽?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-19 18:09:41

到目前为止,还没有足够的数据给出一个有意义的答案。

卡夫卡支持GZip、LZ4和"Snappy“压缩,具有不同的压缩因子和不同的饱和阈值。所有三种方法都是“基于学习的”,即它们从流中消耗字节、构建字典和从字典中输出作为符号的字节。因此,短数据流不会被压缩很多,因为字典还没有学到很多东西。如果字典的特性不适合新的传入字节,则压缩比再次下降。

这意味着的数据结构可以完全改变的压缩性能。

总的来说,在具有合理数据的实际应用程序中(即不是DTM稀疏矩阵或PDF或Office文档存储系统),平均可以预期1.2x到2.0x之间。数据块越大,压缩越高。正如你所能想象的那样,“信息”的实际内容也有很大的分量。

然后,Oracle会在数据块中分配数据,这意味着您有一些空闲空间开销,但是还是it can those blocks。Oracle还在某些情况下执行去重复操作。

因此,一个有意义和合理精确的答案必须取决于我们在这里不知道的几个因素。

作为一个粗略的数字,我要说来自1 TB Kafka的实际“逻辑”数据应该在0.7到2 TB之间,我预计Oracle的占领范围将在0.9到1.2 TB之间,如果是Oracle侧的话,则是1.2 TB到2.4 TB。

但这完全是在黑暗中拍摄的。您可以存储压缩的二进制信息(例如XLSX或JPEG-2000文件或MP3歌曲),而当使用压缩时,这些信息实际上会增大。或者,您可能有大量稀疏的基础数据,这些数据可以轻松压缩20:1或更多,即使是最粗略的压缩。在第一种情况下,当压缩被移除时,1TB可能或多或少地保持1TB;在第二种情况下,相同的1TB可能同样容易增长到20 1TB或更多。

恐怕知道的最简单的方法是同时测量存储器和网络,并直接监测流量和数据使用情况。

一旦知道了数据库的参数,就可以推断出不同的存储量(也就是说,如果您知道1 TB Kafka需要2.5TB网络流量才能成为Oracle表空间的2.1 TB,那么2TB Kafka将需要5 TB流量并占据4.2TB Oracle侧).但是,即使在这里,也只是提供了数据的性质,在此期间并没有改变。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64770991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档