Zip 文件 - 是否可以对文件数据进行分页?

Zip File - is it possible to paginate through the file data?

假设我有一个非常大的 zip 文件 (80GB),其中包含一个巨大的 CSV 文件 (> 200GB)。 是否可以获取 80GB 文件数据的一部分,修改中央目录,并提取那部分数据?

图示:

我的问题背景:

我有一个循环过程,它对存储在云中的大型压缩 CSV 文件的特定列进行求和。

我今天所做的是将文件流式传输到我的磁盘,提取它,然后逐行流式传输文件。这使得这是一个非常受磁盘限制的操作。磁盘肯定是瓶颈。

当然,我可以利用其他云服务更快地获得我需要的东西,但这不是免费的。

我很好奇是否可以通过仅使用 1GB 的 zip 子部分直到没有任何内容可读来提高速度。

我所知道的:

1: header 描述文件及其属性

2:压缩格式的原始文件数据

3: 中央目录列出了哪些文件开始和停止以及哪些字节

我不知道的:

您始终可以从头开始解压,解压到您喜欢的程度,一旦到达您想要的位置,只保留最后的空间,例如 1 GB。你不能只是在中间的某个地方开始解压缩。至少对于一个普通的 .zip 文件来说,它没有以某种方式为随机访问特别准备。

中心目录与单个条目的随机访问无关。它所能做的就是告诉您条目从哪里开始以及它有多长(压缩和未压缩)。

我建议您将 .zip 文件重新处理成包含许多 (~200) 个条目的 .zip 文件,每个未压缩的大小约为 1 GB。生成的 .zip 文件将非常接近相同的大小,但您可以使用中央目录从 200 个条目中选择一个,随机访问它,然后只解压缩那个。