gzip压缩会导致数据损坏吗?

时间:2017-10-26 20:27:16

标签: compression gzip lossless-compression

我试图提出一个解压缩程序,以压缩我将拥有的数据存储在AWS S3中的数PB。我正在考虑使用gzip压缩,并想知道压缩是否会破坏数据。我尝试过搜索,但无法找到gzip压缩实际损坏数据的任何特定实例,使其不再可恢复。

我不确定这是否是此类问题的正确论坛,但我是否需要验证数据是否已正确压缩?此外,任何具体的示例/数据点都会有所帮助。

4 个答案:

答案 0 :(得分:1)

我不建议一次性对大量数据直接使用gzip。 很多时候,我使用类似于 dd if=/dev/sda conv=sync,noerror | gzip > /media/backup/sda.gz 当我尝试还原数据时,数据将无法使用。我已经恢复为不使用压缩

答案 1 :(得分:0)

gzip在世界各地不断被广泛使用,并在可靠性方面赢得了很高的声誉。但没有软件是完美的。也不是任何硬件,也不是S3。您是否需要验证数据最终取决于您的需求,但我认为硬盘故障比此时的gzip损坏更可能。

答案 2 :(得分:0)

GZIP压缩与任何其他常用的数据压缩算法一样,是无损的。这意味着当您解压缩压缩数据时,您会得到原始的精确副本(而不是类似的东西,如JPEG用于图像或MP3用于音频)。

只要您使用众所周知的程序(例如,gzip)进行压缩,在可靠的硬件上运行,并且在您的计算机上没有恶意软件,压缩的可能性就会介绍数据损坏基本上都是零。

答案 3 :(得分:0)

如果您关心这些数据,那么我建议您将其压缩,并在删除原始数据之前将其解压缩与原始数据进行比较。这会检查一堆可能的问题,例如内存错误,大容量存储错误,cpu错误,传输错误,以及所有这些问题中最不可能发生的gzip错误。

像Unix中的gzip -dc < petabytes.gz | cmp - petabytes这样的方法可以做到这一点,而无需再次存储原始数据。

此外,如果丢失一些数据仍然会使剩下的大部分数据变得有用,我会将其分解成碎片,这样如果丢失一部分,其余部分就可以恢复。 gzip文件的任何部分都需要所有之前的内容才能使用并正确解压该部分。