Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [geomesa-users] Geotools Join queries

Hi Dave,

We don't support joins through the query like that - joins against a no-sql database tend to be very expensive. But we do have a few options. If available, probably the best approach is to use our spark support and do an in-memory join. If not, we also have a join WPS (web process service) that you can use, but it limits the features from the first set to 128: https://github.com/locationtech/geomesa/blob/master/geomesa-accumulo/geomesa-accumulo-datastore/src/main/scala/org/locationtech/geomesa/accumulo/process/JoinProcess.scala

If you want to use spark, I can try to find some examples for you.

Thanks,

Emilio


On 04/11/2017 06:05 PM, David Boyd wrote:
I have a feeling this is not supported but I would ask.

I have two featuretypes, with a common foreign_key between them.
I want to join on that foreign_key and retrieve columns/properties from
both featuretypes.

I found an example of this in the geotools documentation, but I can't get it to work.
I simply can't find the name of the join column to retrieve.

Below is my code:

String propertynames[] = { "\"GDELTArtifactRecordset.SourceFileName\"","\"GDELTArtifactRecordset.GlobalEventID\"","b.EventCode\""};
        FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2();
Filter jfilter = ff.equals(ff.property("GDELTArtifactREcordset.GlobalEventID"), ff.property("b.GlobalEventID"));
        Query query = new Query("GDELTArtifactRecordset");
        query.setPropertyNames(propertynames);

        Join join = new Join("EventRecordset", jfilter);
        join.setAlias("b");
        query.getJoins().add(join);

query.setFilter(ff.greaterOrEqual(ff.property("GDELTArtifactRecordset.GlobalEventID"), ff.literal(545650000)));
        query.setStartIndex(0);
CachedRowSet rowset = searchPersistor.search(query).getResults();
I have tried numerous various of the returned join column, but it will no accept any column not in my GDELTArtifactRecordset.





Back to the top