2

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

4

2 回答 2

2

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

MongoDB 3.6 增加了对 zlib压缩的支持,并且默认启用了网络压缩。

要在驱动程序(例如pymongo)中使用它,请将“compressors=zlib”添加到您的配置字符串中:

mongodb://localhost/?compressors=zlib
于 2017-07-18T23:05:48.500 回答
1

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

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

至少在虚拟数据上似乎工作得很好。您甚至可以使用paramiko创建 ssh 隧道(如何使用 python 和 paramiko 创建 ssh 隧道?)并将所有内容都包含在 Python 代码中。

于 2013-11-07T17:12:59.857 回答