首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB和使用DBRef处理空间数据

MongoDB和使用DBRef处理空间数据
EN

Stack Overflow用户
提问于 2015-06-13 04:35:51
回答 1查看 221关注 0票数 8

我收藏了一亿份几何文献。

我有第二个集合,其中包含与每个其他几何图形相关联的时间数据。这将是365 * 96 *1亿或3.5万亿个文档。

与其存储超过所需的1亿个条目(365*96)倍,我希望将它们保存在单独的集合中,并在MongoDB中执行某种类型的连接/DBRef/。

首先,也是最重要的,我希望使用geoIntersection从几何集合中获取GUID列表。这将把它过滤到1亿到5000。然后,使用这5000个几何guids,我想根据我指定的5000个目标和额外的日期标准来过滤3.5万亿个文档,并聚合数据并求出平均值。对于您指定的日期条件,剩下的是5000个几何图形和5000个平均值。

这基本上是一个连接,因为我知道它在SQL中,这在MongoDB中是可能的吗?它可以在不到10秒的时间内以最佳方式完成吗?

澄清:据我所知,这就是DBrefs的用途,但我读到它根本没有效率,而且对于处理如此多的数据,它并不是很合适。

EN

回答 1

Stack Overflow用户

发布于 2015-06-21 11:09:06

如果您要一起处理几何图形及其时间序列数据,则将它们存储在同一文档中是有意义的。以15分钟为增量的一年的数据并不是致命的-而且您肯定不希望每个时间序列条目都有一个文档!由于您可以将想要操作的所有内容作为一个几何文档进行检索,因此这是一个巨大的胜利。请注意,这还可以让您对缺少的数据进行稀疏。如果数据是稀疏的,那么您可以对数据进行不同的编码,而不是索引到35040槽阵列中。

然而,在一大堆几何数据上的$geoIntersects将是一个性能问题。确保你有一些索引(比如2dsphere)来加快速度。

如果有任何方法可以在查询中构建额外的限定符,从而以较低的成本从更昂贵的搜索中消除成员,那么您可以让事情变得更灵活。比方说搜索会在美国各州展开。您可以首先将搜索与州边界相交,以查找包含地理数据的州,然后使用类似邮政编码的内容来限定文档。这将是对50个文档的快速预搜索。如果一个搜索边界首先被确定为达到两个州,并且地理数据记录包括一个州字段,那么在查询的更昂贵的地理部分之前,您只需要筛选出9600万条记录(所有条件都是相同的)。如果您与较小的网格坐标相交,则可以在考虑地理数据之前对其进行进一步筛选。

当然,走得太远会增加开销。如果您能够正确地将系统调整到1亿个几何图形的密度,您可能能够将时间降低到相当低的水平。但是,如果不实际处理问题的具体细节,就很难知道。如此多的数据可能需要一些特定的实验,而不是依赖于一般的解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30811785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档