Search code examples
apache-sparkgeoserveraccumulogeomesa

Creating a view in GeoMesa-Accumulo


After ingesting multiple data sets in GeoMesa - Accumulo, I want to combine these datasets in a single 'view', suited for visualisation through GeoServer.

I have ingested the following data sets using converters and sfts. (1) File 1: a table containing a number of attributes of roads (2) File 2: a tabel containing the geometries of roads

Now, I want to link these tables based on an ID. Multiple records from file 1 should be linked to a record from file 2.

In PostGIS, I would generate a view. In turn, I can use this view to visualise the data via GeoServer. However, I am struggling to find the equivalent of a view in GeoMesa-Accumulo.

I have found some information on Apache Spark, which can be used to modify (data within) GeoMesa, but is this the way to go?

In sum

  • What are 'views' within GeoMesa-Accumulo? Where can I find documentation?
  • Which commands are used?

Thank you in advance.


Solution

  • Since Accumulo is a NoSQL database, you have to think about your data differently. There is no easy way to create views of joined tables; instead, you would generally either de-normalize your data (copying it multiple places) or do some kind of manual join during reads (which would be slow). GeoMesa does not implement manual joins, although it would be possible to to do so if you really wanted to pursue that route.

    Instead, I would suggest storing the attributes in a single record along with the geometries. GeoMesa has various capabilities to make this feasible, in particular storing and querying JSON attributes, List or Map attributes, and support for Accumulo column groups.

    Because you mentioned Spark, you could use Spark to do a join on your existing tables, and then write the joined data back to a third table. But there currently isn't any general way to view Spark data through GeoServer.