Apache Optiq

Clone this repo:
  1. 3018d18 Cleanup, and fix minor timezone issue in a test. by Julian Hyde · 2 years, 11 months ago master
  2. dd1b946 Added support for date types (date, time, timestamp). by Martijn van den Broek · 2 years, 12 months ago
  3. 0b7a008 Upgrade to optiq-0.8, optiq-avatica-0.8, linq4j-0.4. by Julian Hyde · 2 years, 11 months ago
  4. 88224cc Add support for JSON files (recognized by '.json' suffix). by Julian Hyde · 3 years, 1 month ago
  5. 97e1cc8 Upgrade maven-release-plugin to version 2.4.2. by julianhyde · 3 years, 1 month ago

Build Status

optiq-csv

Optiq adapter that reads CSV files.

Optiq-csv is a nice simple example of how to connect Optiq 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 optiq‘s) features. We’ll use sqlline, a SQL shell that connects to any JDBC data source and is included with optiq-csv.

Connect to Optiq and try out some queries:

$ ./sqlline
sqlline> !connect jdbc:optiq: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:optiq: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, Optiq has a full SQL implementation that can efficiently query any data source.

For a more leisurely walk through what Optiq can do and how it does it, try the Tutorial.

More information