2013-10-09 76 views
0

我必须解压,然后(处理后)再压缩(存档)源文件。文件大小通常大约为200-250 GB(解压缩,.dat格式)(共96个文件)。 解压缩过程大约需要2个小时,而压缩过程又需要1:30到2个小时,这是无法承受的。 目前我正在使用“zcat”解压缩命令和“gzip -3”压缩文件。 磁盘空间不是问题,因为我们有1.5太字节安装到位。 请问建议一些更高效的模式做这个过程 ..如何最小化解压和压缩Unix文件的时间?

期待您的建议,谢谢 - 普什卡。

+0

您可以在线处理吗?即'gzcat file.gz | ./fixingScript | gzip -9 - > file.tmp.gz && mv file.tmp.gz file.gz'? (对不起,我没有时间查找用于'zip'实用程序的确切语法)。这应该从根本上缩短处理时间,缩短到更长的时间,解压缩或重新压缩。或者,如果这是你可以重新构建的东西,那么可以选择较小的文件,或者一些可以输入到大型并行处理系统,Hadoop等等的文件。祝你好运。 – shellter

+0

感谢您的回应!实际上,在解压之后,我将这些文件用作Informatica工具的输入。所以它不能一成不变。 – user2446876

+0

仍然不知道我理解你的用例,如果你没有处理数据,然后压缩修改后的版本备份,你有足够的磁盘空间,那么'cp file.zip file.orig.zip && unzip file .zip && load_to_informatica file && rm file && mv file.orig.zip file.zip'。因此,您需要保留压缩文件的副本,暂时解压缩,并且在解压缩文件加载后,您只需将其删除,然后将保存的.zip副本重命名为file.zip。祝你好运。 – shellter

回答

3

如果磁盘空间不是问题,那么根本就不要压缩。那么你永远不需要解压缩。

如果您有多个内核,您可以尝试pigz来加快速度。这是一个gzip的并行实现,它将特别加速压缩。

我不明白为什么你的解压缩比你的压缩速度慢。它应该快三到十倍。你能提供你正在做的事情的实际代码吗?那里一定有什么问题。

顺便说一句,您的术语是不正确的。压缩和解压缩是指.zip格式,而不是.gz格式。你只会说你压缩并解压gzip格式。