Calcite adapter that reads CSV files.
Optiq-csv is a nice simple example of how to connect Apache Calcite to your own data source and quickly get a full SQL/JDBC interface.
You need Java (1.6 or higher; 1.7 preferred), git and maven (3.0.4 or later).
$ git clone git://github.com/julianhyde/optiq-csv.git
$ cd optiq-csv
$ mvn compile
Let's take a quick look at optiq-csv's (and Calcite's) features.
We'll use sqlline
, a SQL shell that connects to
any JDBC data source and is included with optiq-csv.
Connect to Calcite and try out some queries:
$ ./sqlline
sqlline> !connect jdbc:calcite:model=target/test-classes/model.json admin admin
sqlline> !tables
sqlline> !describe emps
sqlline> SELECT * FROM emps;
sqlline> EXPLAIN PLAN FOR SELECT * FROM emps;
sqlline> !connect jdbc:calcite:model=target/test-classes/smart.json admin admin
sqlline> EXPLAIN PLAN FOR SELECT * FROM emps;
sqlline> SELECT depts.name, count(*)
. . . .> FROM emps JOIN depts USING (deptno)
. . . .> GROUP BY depts.name;
sqlline> VALUES char_length('hello, ' || 'world!');
sqlline> !quit
(On Windows, the command is sqlline.bat
.)
As you can see, Calcite has a full SQL implementation that can efficiently query any data source.
For a more leisurely walk through what Calcite can do and how it does it, try the Tutorial.
- License: Apache License, Version 2.0.
- Author: Julian Hyde
- Blog: http://julianhyde.blogspot.com
- Project page: http://www.hydromatic.net/optiq-csv
- Source code: http://github.com/julianhyde/optiq-csv
- Developers list: http://mail-archives.apache.org/mod_mbox/incubator-calcite-dev/
- Tutorial
- Release notes and history