Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[geomesa-users] Geomesa accumulo: query help, speed, api

Hello all,

I am attempting to use the geomesa-accumulo datastore to do 'point-in-polygon' containment checks on large amounts of incoming data (millions of individual Geo points). I have ingested the polygons data(via the native api with custom simplefeatureview and getExtraAttributes for my interested features) and it lives in geomesa accumulo tables. I've been querying via the native api (so far the only way I know  how query the data) and it is very slow. I build a query for each incoming geopoint (containment check...)

GeoMesaQuery.GeoMesaQueryBuilder.builder()
.within(-180.0,-90.0,180.0,90.0)
.filter(ff.contains(ff.property("geom"), ff.literal(point))).build()

Note: the .within is needed or I get a null pointer in my query.

And execute the query...
Index.query(above)

It takes nearly a second per query (and with millions of queries this is not acceptable as you can understand).

My guess is the native api is just slow by it's very nature? What would be the advisable way to quickly query (make many, many queries) the data stored in the geomesa accumulo data store? 

Note: I've read everything I could get my hands (Google) on and nothing so far has been very clear. I read some things that say you can (somehow) use geotools to query, but nothing really explained how to do so (and if I don't need an outside library I would rather not use it).

Thanks for the help and advice,

Andy




Back to the top