Optiq,es un framework Open Source para realizar consultas sobre cualquier fuente de datos. Permite extenderse a sistemas de back-end, incluyendo NoSQL y Hadoop. Define reglas que optimizan la capacidad de procesamiento de las query.
Características que presenta:
· Permite escribir querys SQL para cualquier fuente de datos.
· No es una base de datos
· Es un framework que media entre las fuentes de datos, el procesamiento de los recursos y el cliente. Optimiza los recursos.
· Es dinámicamente extensible. Se pueden añadir front-ends: SQL/JDBC and LINQ, back-ends como bases de datos JDBC, HDFS/Hadoop, archivos planos, etc.
· Añadir operadores y reglas de transformación.
· Desarrollado en Java
· El proyecto OptiQ-csv proporciona un adaptador CSV, que es totalmente funcional para su uso en aplicaciones, pero también puede servir como plantilla para implementar nuestros propios adaptadores.
· Soporte para leer modelos en formato JSON
· Analizador de consultas, validación y optimizador.
Un ejemplo de cómo utilizar Optiq con MongoDB lo encontramos en el blog de Julian Hyde creador de Mondrian y de este proyecto.
· Instalamos MongoDB e importamos el conjunto de datos de MongoDB
· Nos logeamos en MongoDB para comprobar que tenemos acceso a los datos
· Optiq tiene un modelo de ejemplo en formato JSON y sqline, Shell SQL. Conectamos usando el modelo Optiq mongo-zips-model.json que incluye del siguiente modo:
· Lanzamos una consulta sencilla
· Y salimos de la sqlline

Podemos ver cómo se implementan las querys con SQL EXPLAIN
sqlline> !set outputformat csv
sqlline> EXPLAIN PLAN FOR
. . . .> SELECT count(DISTINCT state) AS c FROM zips WHERE city = ‘SPRINGFIELD’;
‘PLAN’
‘EnumerableAggregateRel(group=[{}], C=[COUNT($0)])
EnumerableAggregateRel(group=[{0}])
EnumerableCalcRel(expr#0..4=[{inputs}], expr#5=[‘SPRINGFIELD’], expr#6=[=($t0,
$t5)], STATE=[$t3], $condition=[$t6])
MongoToEnumerableConverter
MongoTableScan(table=[[mongo_raw, zips]], ops=[[<{city: 1, state:
1, _id: 1}, {$project …}>]])
‘
1 row selected (0.115 seconds)
El proyecto lo podemos encontrar en github
Una presentación interesante SQL on Big Data using Optiq





Deja un comentario