哪个(接近)实时空间数据库可容纳1M以上的条目



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

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

我的主要业务:

  • 获取区域中包含的所有数据
  • 查找属于某个userId的所有点
  • pub/sub显示所有新条目
  • 在所有数据上添加/删除字段(或仅添加少量)

我想使用Meteor.js,需要接近实时的性能(最大约0.5秒至3秒)。

也许这很重要:我的成绩需要在3-15米之间。

所以我看了看:

Redis:接缝使用简单,有一个Redis-Geo插件。此外,还有一个流星的司机。

PostGIS:M+条目的实时性能?没有流星的司机。

PostGre:流星有一个驱动程序。

Hbase:为大桌子构建接缝。没有流星的司机。

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

nodejs有一个postgres客户端,它应该可以与流星一起使用。当谈到PostGIS时,它就像一种魅力(我自己在一些项目中使用过它)。不过,在设计查询时,您必须处理输出(使用postGIS输出函数(例如ST_AsGeoJSON),并结合ARRAY)。

PostGIS可能是空间查询的最佳选择。它经过彻底的测试,维护得当,并在许多应用中使用。

不过,我不能断言您的性能限制。空间查询本质上是复杂的(例如:多边形交集的复杂度最多为O(n^2))。不过,您可能能够通过索引和缓存来缓解性能问题。一直为我工作,但我从不需要处理紧张的查询时间限制。

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

最新更新