Obsolete - now the CSV adapter in Apache Calcite
Java Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
.gitattributes
.gitignore
.travis.yml
HISTORY.md
LICENSE
NOTICE
README.md
TUTORIAL.md
pom.xml
sqlline
sqlline.bat

README.md

Build Status

optiq-csv

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.

Download and build

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

Kick the tires

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.

More information