一
我是GeoSpark的作者。我的个人网站的Talk section里面有非常详细的教程讲解GeoSpark到底是做什么的。简单来说:
GeoSpark provides distributed index and query.on spatial vector data in Apache Spark. Spatia vector data includes point polygon linestrings trajectories.
GeoMesa是一个基于Apache Accumulo key value store的spatial index, also for spatial vector data. GeoMesa里面的Spark核心部分是GeoSpark算法的再造轮子(GeoMesa的作者当面告诉我的)
GeoTrellies provides distributed query and map algebra on spatial raster data such as satellite imagery data.
二
①PostGis为PostgreSql提供了空间数据类型,空间函数,空间索引,作为插件使PostGreSql成为了一个空间关系型数据库。
②Ganos同理为Hbase提供空间能力,使得Hbase成为了一个空间分布式数据库,但是不仅仅如此,数据库仅仅是存储,而Ganos还通过Spark进行数据分析。
③PolarDb底层通过存储集群的方式实现了按存储容量收费,避免Mysql按照2T的实例购买。首先抛开原理谈优点,相比Mysql实现了容量大,高性价比,分钟级弹性,读一致性,毫秒级延迟,无锁备份,复杂Sql查询加速。说白了是对标于Mysql的竞争产品。
④GeoHash通过一定的规则把经纬度二维坐标转换成一维编码,从而更加高效,同时在个别场景下有更好的用途。实质是个算法。
⑤GeoMesa被阿里进一步封装,形成了Ganos。GeoMesa同样是基于Hbase或者其他分布式数据库进行存储,基于Spark进行时空数据分析,两者说白了就是使用一定的方法(添加时空数据类型,添加时空函数等等)把时空数据与大数据组件如存储Hbase,计算Spark结合起来,使之成为能处理,存储,分析时空的大数据平台。
⑥在上面的场景下,GeoMesa不能处理时空栅格数据,那么就引入了GeoTrellis来处理时空栅格数据。可以说是对GeoMesa的补充。
⑦GeoMesa中空间处理部分Spark核心部分是GeoSpark算法的优化和改进。
⑧GeoWave作为Apache顶级项目Accumulo键值对数据库的spatial index,为Accumulo键值对数据库提供了空间能力的同时也提供了空间数据处理能力。
⑨lgnite可以看作分布式内存网格的一种实现,提供分布式计算的同时提供分布式内存存储(可以看作redis)
⑩Sphinx使用C++语言编写,作为一种基于Sql的全文检索引擎。与其对标的典型有
Lucene,Solr,ElstaticSearch。