如何在 MongoDB(大数据)中导出较小的集合?聚合超时! (非常感谢任何大数据帮助!)
How to export smaller collection in MongoDB (big data)? Aggregations time out! (any big data help MUCH appreciated!)
这是我第一次在 Whosebug 上创建帐户,所以如果我的问题真的很简单,我深表歉意。
我想做什么: 我有一个包含 1400 万个 Twitter 数据的文档数据库,我想对其进行分析。我试图仅查询那些使用特定语言的查询并将该查询导出到较小的集合,以便我可以实际对其进行分析。
我的问题: 我似乎无法 运行 没有 MongoDB 指南针超时或无限期地 运行 宁的完整查询- 我不知道如何缩小我的数据库,而且我无法 运行 在不过度使用 RAM 和计算机崩溃的情况下对其进行分析。
我试过的:
- 我尝试过使用 PyMongo,因为 Python 是我唯一知道的语言,但是没有足够的文档,所以我变得绝望并使用 GUI 所以 Compass
- 我尝试在较小的数据库上执行我的查询(简单查询,如 {language : {$eq : "en" } , "user.location" = "USA"} 并导出它以减小大小的数据库,它工作!当我在我真正的 32GB 大小的数据库上尝试同样的事情时,它要么给我一个超时错误,要么当我增加最大时间 ms 时,它永远 运行s 并且我无法导出任何东西.
- 我尝试使用数据库中的 $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
},
{
unique: false,
}
)
您无需更改查询即可使用索引,MonogDB 会为您解决。
这是我第一次在 Whosebug 上创建帐户,所以如果我的问题真的很简单,我深表歉意。
我想做什么: 我有一个包含 1400 万个 Twitter 数据的文档数据库,我想对其进行分析。我试图仅查询那些使用特定语言的查询并将该查询导出到较小的集合,以便我可以实际对其进行分析。
我的问题: 我似乎无法 运行 没有 MongoDB 指南针超时或无限期地 运行 宁的完整查询- 我不知道如何缩小我的数据库,而且我无法 运行 在不过度使用 RAM 和计算机崩溃的情况下对其进行分析。
我试过的:
- 我尝试过使用 PyMongo,因为 Python 是我唯一知道的语言,但是没有足够的文档,所以我变得绝望并使用 GUI 所以 Compass
- 我尝试在较小的数据库上执行我的查询(简单查询,如 {language : {$eq : "en" } , "user.location" = "USA"} 并导出它以减小大小的数据库,它工作!当我在我真正的 32GB 大小的数据库上尝试同样的事情时,它要么给我一个超时错误,要么当我增加最大时间 ms 时,它永远 运行s 并且我无法导出任何东西.
- 我尝试使用数据库中的 $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
},
{
unique: false,
}
)
您无需更改查询即可使用索引,MonogDB 会为您解决。