dag*_*oin 2 postgresql hbase postgis geolocation redis
我正在启动一个分析项目,该项目将处理数百万个地理定位数据.数据可能是这样的:
id{
userId,
long,
lat,
time,
appId
}
我的主要业务:
我想使用Meteor.js并且需要近乎实时的性能(最多~0.5s到3s).
也许这很重要:我的结果需要3-15米之间的精度.
所以我看了看:
Redis:接缝简单易用,有一个Redis Geo插件.另外还有一个流星驱动程序.
PostGIS: M +条目的实时表现?没有流星的司机.
PostGre:有一个流星驱动程序.
Hbase:为大桌子构建接缝.没有流星的司机.
你会用哪一个?(任何其他建议将不胜感激.)
nodejs有一个postgres-client,这应该可以用于meteor.当它涉及PostGIS(在一些项目中自己使用它)时,它就像一个魅力.您必须处理输出(使用postGIS-output-functions(例如ST_AsGeoJSON),结合ARRAY,同时设计您的查询).
在空间查询方面,PostGIS可能是最佳选择.它经过了彻底的测试,得到了适当的维护,并在许多应用中得到了应用.
我不能对你的性能限制做出任何断言.空间查询本质上是复杂的(例如:多边形交集最多具有O(n ^ 2)复杂度).您可以通过索引和缓存来缓解性能问题.总是为我工作,但我从来没有处理严格的查询时间限制.
关于你的操作:除了第一个之外的所有操作都应该几乎没有成本(数据库性能明智).第一个查询可能有点棘手,因为您必须使用以下函数之一:ST_Intersects(),ST_Contains()或ST_Covers().所有这些都具有大于O(n)的复杂性.您的查询可以设计,以便它运行得非常快,但正如我所说:我不知道您的约束是否得到尊重.
| 归档时间: |
|
| 查看次数: |
1019 次 |
| 最近记录: |