You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by Kai Gülzau <kg...@novomind.com> on 2015/11/18 20:02:49 UTC

SQL facade / beginner questions

Hi,

I am new to calcite and think it sounds very promising.
I would like to know if calcite could be a solution/base for my requirements.

In short: I want to have a SQL "facade" to access several DataSources.
- Databases by JDBC
- REST Services
- SOLR Search by SolrJ
- POJO

This should run embedded in some application.

Is calcite a good base for these requirements or is it targeted to other scenarios?

Bonus question regarding the tutorial:
"Current limitations: The JDBC adapter currently only pushes down table scan operations; all other processing (filtering, joins, aggregations and so forth) occurs within Calcite. Our goal is to push down as much processing as possible to the source system,..."

Is this still true?


Best regards,

Kai Gülzau

AW: SQL facade / beginner questions

Posted by Kai Gülzau <kg...@novomind.com>.
Thanks for your quick reply :-)

I will have another look at Dill or start evaluating calcite.
My first impression was that Drill seems "to big" to embed it in a "one process" application.

Regards,

Kai Gülzau

Re: SQL facade / beginner questions

Posted by Ted Dunning <te...@gmail.com>.
Ah.... I forgot to say, Apache Drill is based on Apache Calcite.



On Thu, Nov 19, 2015 at 8:11 AM, Ted Dunning <te...@gmail.com> wrote:

>
> In addition to what Julian mentions, you might find Apache Drill
> interesting.
>
> Much of what you want is already in Drill, plus you get a parallel
> execution engine.
>
>
>
> On Thu, Nov 19, 2015 at 4:08 AM, Julian Hyde <jh...@gmail.com>
> wrote:
>
>> Yes, this is exactly what Calcite is intended for.
>>
>> Those limitations are out of date. The JDBC adapter can push down all of
>> the standard relational operators (exceptions being NULLS FIRST/LAST,
>> GROUPING SETS and maybe window functions).
>>
>> You will need a schema adapter (i.e. a class that implements
>> SchemaFactory)
>> for each of those kinds of data.
>>
>> > - Databases by JDBC
>>
>> Use JdbcSchema.Factory. This is so common that in a model.json you can
>> just
>> say
>>
>>   "type": "JDBC"
>>
>> > - REST Services
>>
>> We have a prototype web adapter; see
>> https://issues.apache.org/jira/browse/CALCITE-884.
>>
>> > - SOLR Search by SolrJ
>>
>> There is no SOLR (or Lucene) adapter currently.
>>
>> > - POJO
>>
>> You can build schemas on POJOs - see ReflectiveSchema - but there is no
>> SchemaFactory, so you need to instantiate the schema manually.
>>
>> Julian
>>
>
>

Re: SQL facade / beginner questions

Posted by Ted Dunning <te...@gmail.com>.
In addition to what Julian mentions, you might find Apache Drill
interesting.

Much of what you want is already in Drill, plus you get a parallel
execution engine.



On Thu, Nov 19, 2015 at 4:08 AM, Julian Hyde <jh...@gmail.com> wrote:

> Yes, this is exactly what Calcite is intended for.
>
> Those limitations are out of date. The JDBC adapter can push down all of
> the standard relational operators (exceptions being NULLS FIRST/LAST,
> GROUPING SETS and maybe window functions).
>
> You will need a schema adapter (i.e. a class that implements SchemaFactory)
> for each of those kinds of data.
>
> > - Databases by JDBC
>
> Use JdbcSchema.Factory. This is so common that in a model.json you can just
> say
>
>   "type": "JDBC"
>
> > - REST Services
>
> We have a prototype web adapter; see
> https://issues.apache.org/jira/browse/CALCITE-884.
>
> > - SOLR Search by SolrJ
>
> There is no SOLR (or Lucene) adapter currently.
>
> > - POJO
>
> You can build schemas on POJOs - see ReflectiveSchema - but there is no
> SchemaFactory, so you need to instantiate the schema manually.
>
> Julian
>

Re: SQL facade / beginner questions

Posted by Julian Hyde <jh...@gmail.com>.
Yes, this is exactly what Calcite is intended for.

Those limitations are out of date. The JDBC adapter can push down all of
the standard relational operators (exceptions being NULLS FIRST/LAST,
GROUPING SETS and maybe window functions).

You will need a schema adapter (i.e. a class that implements SchemaFactory)
for each of those kinds of data.

> - Databases by JDBC

Use JdbcSchema.Factory. This is so common that in a model.json you can just
say

  "type": "JDBC"

> - REST Services

We have a prototype web adapter; see
https://issues.apache.org/jira/browse/CALCITE-884.

> - SOLR Search by SolrJ

There is no SOLR (or Lucene) adapter currently.

> - POJO

You can build schemas on POJOs - see ReflectiveSchema - but there is no
SchemaFactory, so you need to instantiate the schema manually.

Julian