我有一个 python 方法,它需要从 API 收集大量数据,将其格式化为 CSV,压缩它并将结果流回。
我一直在谷歌搜索,我能找到的每个解决方案要么需要写入临时文件,要么将整个存档保存在内存中。
内存绝对不是一种选择,因为我会很快得到 OOM。写入临时文件有很多与之相关的问题(此框目前仅使用磁盘存储日志,下载开始前的准备时间要长得多,文件清理问题等)。更不用说它只是令人讨厌的事实。
我正在寻找一个图书馆,它可以让我做类似的事情......
C = Compressor(outputstream)
C.BeginFile('Data.csv')
for D in Api.StreamResults():
C.Write(D)
C.CloseFile()
C.Close()
换句话说,在我写入数据时将写入输出流的东西。
我已经设法在 .Net 和 PHP 中做到这一点 - 但我不知道如何在 Python 中处理它。
从长远来看,通过“大量”数据,我的意思是我需要能够处理高达 ~10 Gb 的(原始明文)数据。这是大数据系统导出/转储过程的一部分。