哪个(近)实时空间数据库用于 1M+ 条目?

Which (near) realtime spatial database for 1M+ entries?

我正在启动一个分析项目,该项目将处理数百万个地理定位数据。 数据可能是这样的:

id{ userId, long, lat, time, appId }

我的主要操作:

我想使用 Meteor.js 并且需要接近实时的性能(~0.5s 到 3s 最大值)。

也许这很重要:我的结果需要 3-15 米的精度。

所以我看了:

Redis : seams使用简单,有一个Redis Geo插件。另外还有meteor的驱动。

PostGIS : M+ 条目的实时性能?没有流星的驱动程序。

PostGre : meteor 有驱动。

Hbase : 为大表构建接缝。没有流星的驱动程序。

你会用哪一个? (任何其他建议将不胜感激。)

有一个postgres-client for nodejs,这个应该可以用在meteor上。当涉及到 PostGIS 时,它就像一个魅力(我自己在一些项目中使用过)。不过,您必须注意输出(在设计查询时结合 ARRAY 使用 postGIS 输出函数(例如 ST_AsGeoJSON))。

就空间查询而言,PostGIS 可能是最佳选择。它经过全面测试、妥善维护并在许多应用程序中使用。

不过我无法对您的性能限制做出任何断言。空间查询本质上是复杂的(例如:多边形交集最多具有 O(n^2) 复杂度)。不过,您也许可以通过索引和缓存来缓解性能问题。一直为我工作,但我从来不必处理严格的查询时间限制。

关于您的操作:除了第一个操作之外,所有操作都应该几乎没有成本(数据库性能方面)。第一个查询可能有点棘手,因为您必须使用以下函数之一:ST_Intersects()ST_Contains()ST_Covers()。所有这些都具有大于 O(n) 的复杂性。可以设计您的查询,使其运行得相当快,但正如我所说:我不知道您的约束是否得到尊重。