一个200G大文件的搬运经历

最近来了一个急活儿,要求如下:

(1)需要把一个占用200多GB空间的SQL数据库里的2000多万篇文章转换为Json格式并且传到Linux服务器中。数据库文件有两个文件,一个主文件(180G),一个日志文件(20G)。

(2)需要在三天内完成。

(3)目前存在本地数据库中,并且数据所在计算机算力不高。

考虑再三,由于数据量大,如果在本地把数据生成json格式后通过FTP传到Linux服务器上,这么短的时间可能来不及。之前跑别的数据,一个星期才生成了不到100万条数据,现在的要求是三天内就要搞定。跟领导反映了目前状况,领导同意申请一台阿里云服务器,用来生产json文件并且传输到Linux服务器上。

怎么把200G的文件传到服务器上去?

方案有:

(1)直接ftp上传

通过计算:200(gb)*1024(m)/2(m/s)/60(s)/60(min)=28(小时)。如果传输文件就需要一天多,剩下的时间还需要把文件转换为json,传输耗费时间太多。最后放弃了。

(2)通过压缩软件,把一个大文件压缩成若干个小文件,创建多个FTP通道,同时传输多个文件,经过测试FTP每条通道有限制速度,并且就算创建再多的通道也会受限于总的带宽上行速度。所以我考虑把一部分数据拷回家再传到服务器上。这样至少有两条线路同时上传数据,每条线路开三个通道,一共六个ftp通道,一个晚上就能够搞定。

我开始通过360zip分卷压缩。每个文件4GB,压缩了大半天,下班的时候还没压缩好,我就找了个硬盘先把已经压缩好的部分文件拷回家了。

回到家后,插上硬盘,安装ftp软件,开始传输文件。再看看公司那边剩下的那部分数据也已经压缩完了,一共有45个文件。同样通过ftp,把公司的那部分文件传输到服务器上,一切都很顺利。

第二天到公司后,发现都传好了。到目前为止一切都很顺利。

多亏了压缩软件的分卷压缩的功能,如果没有这个软件,我可能就没办法在这么短的时间内把一个200G的文件传输到服务器上去了。

很高兴一切按计划进行中,虽然压缩文件都传到服务器,下一步就是解压文件了。还是用的360zip压缩软件。开始解压文件,大概半个小时后,数据库日志文件解压成功,在解压主文件时发生了错误,提示xxxx.zip.001文件损坏,无法解压。此路不通,另寻他路。

刚开始我以为是在ftp传输过程中发生了错误,检查了文件大小,发现大小没错。我重新通过ftp吧001这个压缩文件传了一遍。半个小时后,文件传完了,重新尝试解压文件。又过去了半个小时,数据库日志文件成功解压出来,主文件发生错误,提示的错误信息同上一次一样。看来不是这个文件有问题。此路不通,另寻他路。

我又想了想,分卷后一共有45个压缩文件,怎么样才能快速的对比出来,线上线下的文件是否相同的呢?何不采用对比两个文件的md5值?马上找了一个可以右键查看文件md5值的工具。因为文件比较大每次查看文件的md5值都需要花费好几分钟,对比了前面5个之后,发现线上线下的文件都一致的,没有错误。这样又过去了半个小时。45个都对比一遍也需要花费2~3个小时,我选择了放弃。此路不通,另寻他路。

会不会是解压软件的问题,导致的失败。7z是开源的解压缩软件,所以我尝试用7z解压软件来解压这个文件,半个小时后,依旧错误,提示错误同360zip,估计360zip是从开源的7z的基础上修改的。那就用收费的rar试试看,大约半小时后,还是失败,此路不通,另寻他路。

难道是权限的原因,解压软件没有权限读取数据库文件?

难道是文件太大,C盘无法缓存临时文件导致无法解压,还是读取文件过程中导致内存溢出,导致最后失败?

文件解压到临时文件夹后,能不能不要校验文件的一致性?

。。。

研究了各个压缩软件的设置后,发现rar软件的款目最多,好多都是360zip软件上没有的款目。Rar软件上有一项是忽略错误解压文件,我抱着试试看的心态点了一下,万万没想到大概半个小时以后居然成功了。

马上把解压出来的数据文件附加到数据库上,生成json文件,最后顺利的把文件传输到Linux服务器中。

通过这个大文件压缩→传输→解压这件事情,你看到了什么?

为何免费的360zip的设置没有RAR的多?

为何RAR能解决360zip解决不了的问题?

为何以前收费的rar软件不再收费了?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • •此刻,在宿舍床上的我,靠在小猫上,已经想不起种种不是了。只记得在老师讲各种狂人是真假的无聊问题与学生胡乱作答时,...
    加思阅读 506评论 0 0
  • 我们一直生活在一个焦虑的世界里,早上起床担心是否会迟到,傍晚担心今天的任务是否已经完成,焦虑——它用来概括担心...
    卡卡嘻阅读 408评论 0 2
  • 日本山下英子著的《断舍离》中提到幸福取决于我们和自己的思想相处的能力。在快节奏的生活中,头脑中有意或无意地出现很多...
    拾光小世界阅读 392评论 0 0