node.js 如何实时流式传输 22GB 的 gzip 文件解压缩

node.js how to stream 22GB gzipped file uncompress on the fly

我需要遍历 22GB 压缩文件中的行。展开后,文件大小为250GB。(是Google Freebase db dump)

我对流不太了解。有没有一种方法可以流式传输文件并在我运行时对其进行压缩?

这是相反的方向:

var r = fs.createReadStream('file.txt');
var z = zlib.createGzip();
var w = fs.createWriteStream('file.txt.gz');
r.pipe(z).pipe(w);

这里是用zlib.createGunzip代替zlib.createGzip的反向操作:

var r = fs.createReadStream('file.txt.gz');
var z = zlib.createGunzip();
var w = fs.createWriteStream('file.txt');
r.pipe(z).pipe(w);