我正在启动一个分析项目,它将处理数百万的地理定位数据。数据可能如下所示:
id{ userId, long, lat, time, appId }
我的主要行动:
我想使用Meteor.js,并需要接近实时性能(~0,5s至3smax)。
也许这是很重要的:我需要一个3-15米的精度在我的结果。
所以我看着:
Redis :接缝使用简单,有一个Redis插件。另外还有一个流星司机。
PostGIS :与条目的M+的实时性能?没有流星的司机。
PostGre :有流星的司机。
Hbase :为大表构建接缝。没有流星的司机。
你会用哪一个?(如有任何其他建议,将不胜感激。
发布于 2015-03-17 15:51:23
有一个postgres- nodejs的客户端,这应该可以用于流星。当涉及到PostGIS时,它就像一种魅力(在一些项目中自己使用)。但是,您必须处理输出(在设计查询时结合使用后置地理信息系统-输出函数(例如ST_AsGeoJSON)和数组)。
在空间查询方面,PostGIS可能是最好的选择。它是经过充分的测试,适当的维护,并在许多应用中使用。
我不能对你的表现做出任何断言--尽管如此。空间查询本质上是复杂的(例如:多边形交叉至多具有O(n^2)复杂性)。您可能可以减轻性能问题,但是索引和缓存的问题。一直为我工作,但我从来不需要处理严格的查询时间限制。
关于您的操作:除了第一个操作之外,所有操作都应该几乎不花费任何费用(从数据库到性能而言)。第一个查询可能有点棘手,因为您必须使用以下函数之一:ST_Intersects()、ST_Contains()或ST_Covers()。所有这些都具有大于O(n)的复杂性。可以设计您的查询,使其运行得非常快,但正如我所说:我不知道您的约束是否得到遵守。
https://stackoverflow.com/questions/29103252
复制相似问题