Python / Mongo的网络压缩

时间:2013-11-07 15:39:59

标签: python mongodb networking compression

我有一个查询远程MongoDB数据库的Python脚本。查询结果非常大(约650MB)。但是mongo发送的文件极其可压缩,因为它们有很多纯文本。有没有什么方法可以在我的Python脚本和Mongo服务器之间插入某种压缩“代理” - 通过修改代码或使用某种网络实用程序?

2 个答案:

答案 0 :(得分:1)

如果您想要简单的解决方案,可以通过压缩的ssh隧道连接到远程主机。假设您在默认端口上运行mongod,并且本地主机上的27017是免费的:

ssh -C -L 27017:127.0.0.1:27017 remote_user@mongohost

至少在虚拟数据上似乎工作得很好。您甚至可以使用paramiko创建ssh隧道(How to create a ssh tunnel using python and paramiko?)并将所有内容保存在Python代码中。

答案 1 :(得分:1)

MongoDB 3.4使用Snappy添加了对网络压缩的支持。虽然默认情况下未启用(使用networkMessageCompressors=snappy启用它)。

MongoDB 3.6 added support for zlib压缩,默认启用网络压缩。

要在drivers中使用它(例如pymongo),请在配置字符串中添加“compressors = zlib”:

mongodb://localhost/?compressors=zlib