大数据压缩原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AIX 上总有一种压缩方式适合你

当今世界每天产生大量的数据,有些数据我们需要进行压缩,压缩数据的好处不言而喻:节省空间;方便传输;加密保护等等。很多压缩工具应运而出,每种工具都有自己的特点。对于 AIX 平台上的压缩方法也很多 compress、pack、gzip、 pax、tar 等等。本文将首先简单介绍一下压缩的基本原理然后详细介绍 AIX 平台的常用压缩工具并针对它们各自的特色进行比较,让读者对对 AIX 平台的压缩有针对性的认识,从而能够根据不通的需要选择合适的压缩工具。

数据压缩的原理

数据压缩是指在不丢失信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率的一种技术方法。或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间。数据压缩包括有损压缩和无损压缩。无损压缩是可逆的;有损压缩是不可逆的。

计算机处理信息是以二进制数(0 和 1)的形式表示的,压缩软件把二进制信息中相同的字符串以特殊字符标记起来,从而实现缩小文件大小来达到压缩的目的。压缩的理论基础是信息论。从信息的角度来看,压缩就是去除掉信息中的冗余,即去除掉确定的或可推知的信息,而保留不确定的信息,也就是用一种更接近信息本质的描述来代替原有的冗余的描述,这个本质的东西就是信息量。

数据压缩的硬件和软件工具也非常多,本文将针对 AIX 平台常见的几种数据压缩工具进行介绍和比较并提供常用的示例进行解说,希望您能从中选择合适的压缩工具进行压缩。

AIX 平台上,通常我们看到的 .Z .gz .z .ar .tar 后缀的文件都是压缩文件。通过 compress 可以生成 .Z 压缩文件,通过 compress、uncompress、gzip 可以解压 .Z 格式的压缩文件;通过 gzip 可以生成 .gz 压缩文件,通过 gzip 可以解压 .gz 格式的压缩文件;通过 pack 可以生成 .z 压缩文件,通过 unpack、gzip 可以解压 .z 格式的压缩文件;通过 pax 可以生成 .ar 压缩文件,通过 pax 可以解压 .ar 格式的压缩文件;通过 pax、tar 可以生成 .tar 压缩文件,通过 pax、tar、untar、可以解压 .tar 格式的压缩文件。图 1 描述了各种类型文件的压缩及解压可以选择的 AIX 工具。

图 1. 不同文件类型的压缩及解压

下面我们将详细介绍 AIX 上主要压缩工具的特点已经用法。

回页首compress

compress 是一个相当古老的 UNIX 档案压缩指令,利用自适应的 Lempel-Zev 编码来减少文件大小。

每一个被参数 File 指定的原文件将被可能的压缩文件所代替,压缩后的档案会加上一个 .Z。延伸档名以区别未压缩的档案,压缩后的档案可以以 uncompress 解压。值得注意的是执行 compress 需要有相应的权限来替换文件。

压缩量依赖于输入大小、由 Bits 变量指定的单位编码的比特数和公共子串的分布。典型地,源代码或英文文本将减少 50% 到 60%。

特点

•如果调用压缩进程有适当的权限,压缩文件将保留与原文件相同的所有权、方式和修改时间。

•如果指定的文件的路径大于 1023 字节,该命令不工作。

•如果没有指定文件,标准输入将被压缩到标准输出。

•如果压缩没有减少文件大小,将对标准错误写一个消息而不替换原文件。•compress 命令的压缩一般比利用哈夫曼编码或自适应哈夫曼编码实现的压缩更紧凑,计算时间更少,(哈夫曼编码在 pack 命令中被使用)。

•若要将数个档案压成一个压缩档,必须先将档案 tar 起来再压缩。

常用示例

1.$compress -v dsm.opt

该命令压缩 dsm.opt 文件,-v 参数将程式执行的讯息印在荧幕上。标准输出显示压缩百分比为 14 %。dsm.opt 文件被压缩并重命名为 dsm.opt.Z。

2.$compress -b 12 dsm.old

该命令指定文件中公共子串的比特的最大值为 12。-b 参数设定共同字串数的上限,以位元计算,可以设定的值为 9 至 16 bits 。由于值越大,能使用的共同字串就越多,压缩比例就越大,所以一般使用预设值 16 bit。

3.$compress – df dsm.opt.

该命令将 dsm.opt.Z 解压成 dsm.opt,若档案已经存在 -df 程式则会自动覆盖档案。

由于系统会自动加入 .Z 为延伸档名,所以该命令中 dsm.opt.Z 写成 dsm.opt 也会当作 dsm.opt.Z 来处理。

Z

回页首

uncompress

Compress 的解压也可以由 uncompress 来完成。uncompress 命令恢复由 compress 命令压缩的原文件。

uncompress 命令恢复由 compress 命令压缩的原文件。每个由 File 参数指定的压缩文件被除去而由展开后的副本所替换。展开后的文件与压缩的版本名字相同,但没有 .Z 扩展名。如果用户有 root 用户权限,展开后的文件保留与原文件相同的所有者、组、方式和修改时间。如果用户没有 root 用户权限,则文件保留相同的方式和修改时间,但获取新的所有者和组。如果没有指定文件,则标准输入将展开为标准输出。

示例

该命令解压 dsm.opt.Z 文件,并重命名为 dsm.opt。

回页首pack

pack 命令以压缩格式存储由 File 参数指定的文件。输入文件由一个原文件名附加 .z 后缀的压缩文件所代替。压缩文件维持了同原始文件同样的访问方式、访问和修改日期和所有者。输入文件名包含不超过 253 个字节,以允许有空间添加 .z 后缀。如果 pack 命令成功执行,原始文件就被除去。

如果 pack 命令不能创建更小的文件,它就停止处理并报告不能节省空间。(节省空间失败通常发生于小文件或者是统一字符分布的文件。)空间节省的数额取决于输入文件的大小和字符分布频率。由于译码树形成了每个 .z 文件的第一部分,因此对于小于 3 个块的文件不会节省空间。典型情况下,文本文件减少 25 %到 40 %。

文件位置

/usr/bin/pack

特色

•采用 Huffman 编码来压缩文件。因此 pack 命令始终只能压缩小于 8MB 的文件。•pack 命令在下列任何一个条件下都不能压缩:文件已经压缩过;输入文件名超过了253 个字节;文件有;文件是目录;文件不能打开;不能通过压缩节省存储块;名称为 File.z 的文件已经存在;.z 文件不能创建;处理中发生 I/O 错误。

相关文档
最新文档