Hello,大家好,我是楼下小黑哥~ 如果给你一个包含一亿行数据的超大文件,让你在一周之内将数据转化导入生产数据库,你会如何操作? 上面的问题其实是小黑哥前端时间接到一个真实的业务需求,将一个老系统历史数据通过线下文件的方式迁移到新的生产系统。 由于老板们已经敲定了新系统上线时间,所以只留给小黑哥一周的时间将历史数据导入生产系统。 由于时间紧,而数据量又超大,所以小黑哥设计的过程想到一下解决办法: 拆分文件 多线程导入 拆分文件 首先我们可以写个小程序,或者使用拆分命令 split 将这个超大文件拆分一个个小文件。 -- 将一个大文件拆分成若干个小文件,每个文件 100000 行 split -l 100000 largeFile.txt -d -a 4 smallFile_ 这里之所以选择先将大文件拆分,主要考虑到两个原因: 第一如果程序直接读取这个大文件,假设读取一半的时候,程序突然宕机,这样就会直接丢失文件读取的进度,又需要重新开头读取。 而文件拆分之后,一旦小文件读取结束,我们可以将小文件移动一个指定文件夹。 这样即使应用程序宕机重启,我们重新读取时,只需要读取剩余的文件.... 30G 上亿数据的超大文件,如何快速导入生产环境? 并发编程