我一直在用简单的空间查询测试geomesa,并将其与Postgis进行比较。例如,在Postgis中,此SQL查询在30秒内运行:
with series as (
select
generate_series(0, 5000) as i
),
points as (
select ST_Point(i, i*2) as geom from series
)
select st_distance(a.geom, b.geom) from points as a, points as b
现在,以下geomesa版本需要5分钟(使用-Xmx10g ):
import org.ap
问题:
我有两个表(d1和d2)包含地理空间点.我想执行以下查询:
select * from table 1 where table1.point is within 50km of any point in table2.point
我使用Spark-SQL和GeoMesa & Accumulo来实现同样的功能。(Spark作为处理引擎,Accumulo作为数据存储库& GeoMesa用于GeoSpatial库)。
上面的查询是某种left semi join,但我不确定如何使用Spark-SQL实现它,因为就我所读到的子查询而言,在where子句中不能使用子查询。
我的设置是在AWS中运行的3节点集群。我已经摄取了我的数据(3000万行),并且在使用jupyter笔记本运行查询时没有任何问题。但现在我正在尝试使用spark和java运行查询,如以下代码片段所示。
public class SparkSqlTest {
private static final Logger log = Logger.getLogger(SparkSqlTest.class);
public static void main(String[] args) {
Map<String, String> dsParams = ne
根据的说法
GeoMesa's raster data is indexed by spatial extent solely.
我还可以将时间信息与栅格数据一起保存吗?否则,对于每个栅格,我将不得不保存另一个保存其时间信息的记录。因此,为了使用临时空间查询检索我的栅格( WMS是否支持此功能?根据1,它似乎是)我将必须检索这两个文件;这意味着对于x光栅==> x+1 GeoMesa命中(检索)。
我想得到一堆多边形的面积。我可以使用st_area和st_geomFromText,但是在尝试使用st_transform时会出现undefined function错误。我需要从4326转变为3857 (或任何将给我英亩)。
geomesa版本:我有2.4.2,但现在我有3.4。
误差
AnalysisException: Undefined function: st_transform. This function is neither a built-in/temporary function, nor a persistent function that is qualified as
我试图通过geoserver的WPS显示每一个注册在数据库中的设备的当前位置。因为每个设备每X秒发送一次其位置。我正在使用geomesa的TrackLabel进程来获取每个设备的最后位置,WPS进程设置是:
track: device_id
dtg : date_time
使用我运行的过程和显示结果使用传单。但是,我认为结果与我预期的不一样,因为如果我在jupyter笔记本中运行以下查询:
spark.sql("select device_id, date_time, position from positions where device_id = 145 order by dat