Dear Andy,
thank you for replying to my email. I forked the jena repository and added
my changes (https://github.com/nkaralis/jena).
I created three files in the directory layout1:
        FormatterSimpleHive.java, that has the necessary functions in order to
create the tables triples and prefixes
        StoreSimpleHive.java, that creates a layout1/hive store
        TupleLoaderSimpleHive.java, that overrides the function load() in order
to load multiple rows at once. This is a temporary solution.

I also made some changes to the following files:
        /store/StoreFactory.java
        /store/DatabaseType.java
        /util/StoreUtils.java
        /sql/JDBC.java
        /compiler/SDBCompile.java
in order to support the hive database.

This is the link to the project with the user-defined spatial operations:
https://github.com/nkaralis/jenaspatial
I also wanted to ask you, if binary operators that could be used in the
filter clause of a query such as equal(=), not equal(!=), etc. could be
pushed to the underlying database (instead of
fetching the data from the data store and then evaluating the filter
condition)

Best regards,
Nikolaos Karalis

> Hi Nikolaos,
>
> The query pattern generator isn't very sophisticated and more skewed to
> use execution where the data in "close" (i.e. there is a cache or local
> database).
>
> Normally, SDB would send a single SQL query for the two triple patterns
> and have the SQL database engine worry about how best to do this.
>
> But in the log it seems that this isn't happening:
>
> either the query is going through some additional layers that means the
> SDb execution engine isn't getting the whole pattern, or how the Hive
> adapter works is onl yon a per Graph.find basis.
>
> So you have a link to you extended jena-sdb?>
>
>      Andy
>
>
> On 09/05/17 11:20, Nikolaos Karalis wrote:
>> Dear Jena developers,
>>
>> I have extended jena-sdb in order to support Hive Database and also
>> started implementing some user-defined GeoSPARQL functions using
>> jena-arq.
>> I ran the following query:
>>
>>      PREFIX geof: <http://example.org/function#>
>>      SELECT ?s1 ?s2
>>      WHERE {
>>              ?s1 <http://linkedgeodata.org/ontology/asWKT> ?o1 .
>>          ?s2 <http://geo.linkedopendata.gr/gag/ontology/asWKT> ?o2 .
>>          FILTER(geof:sfWithin(?o1, ?o2)) .
>>      }
>>
>> and observed that for each iteration of the resultsSet, for each result
>> for ?s1, ?s2 is computed from scratch. I've attached the logs of the
>> hiveserver2 as well.
>> Is there a way to make this query more efficient?
>>
>> Best regards,
>> Nikolaos Karalis
>>
>


Reply via email to