如何解决如何在 MongoDB大数据中导出较小的集合?聚合超时! 非常感谢任何大数据帮助!
这是我第一次在 Stackoverflow 上创建帐户,所以如果我的问题非常简单,我深表歉意。
我想做什么:我有一个 1400 万个文档数据库,我想分析 Twitter 数据。我试图仅查询使用特定语言的那些并将该查询导出到较小的集合中,以便我可以实际对其进行分析。
我的问题:如果 MongoDB Compass 超时或无限期运行,我似乎无法运行完整查询 - 我不知道如何使我的数据库更小,而且我无法运行我对它的分析没有我的 RAM 被过度使用和我的电脑崩溃。
我尝试过的:
- 我尝试过使用 PyMongo,因为 Python 是我知道的唯一语言,但没有足够的文档,所以我很绝望,所以我使用了 GUI,所以 Compass
- 我尝试在较小的数据库上执行我的查询(简单的查询,如 {language : {$eq : "en" },"user.location" = "USA"} 并导出它以减小数据库的大小和它有效!当我在我真正的 32GB 大小的数据库上尝试同样的事情时,它要么给我一个超时错误,要么当我增加最大时间毫秒时,它永远运行并且我无法导出任何东西。
- 我曾尝试使用数据库上的 $match 和 $project 在 MongoDB Compass 中聚合它,但它也超时了,我不知道如何从聚合中导出它。
请帮助我我真的很沮丧我所有的分析技能都是无用的,因为我似乎无法获得数据,因为数据太庞大了:(
如果您有任何其他提示,例如不要使用 MongoDB,在 windows 或 smth 上使用 R 或 Hadoop,请告诉我,在这一点上,如果我能掌握这个数据集,我愿意自学任何东西!
谢谢!
解决方法
Add an index 到您要查询的字段,并增加集群中的内存等。要在您的集合上创建索引字段,请使用以下 shell 命令一次:
db.collection.createIndex(
{
"language": 1
},{
unique: false,}
)
db.collection.createIndex(
{
"user.location": 1
},}
)
您无需更改查询即可使用索引,MonogDB 会为您整理。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。