Quasar-analytics es un motor de consultas que permite ejecutar consultas analíticas en bases de datos NoSQL (MongoDB, Couchbase, HDFS a través de Apache Spark, Marklogic) de forma nativa, utilizando lenguaje de alto nivel SQL:
Quasar-analytics surge en el ámbito analítico y de Business Intelligence, por la necesidad de analizar información de bases de datos NoSQL recuperando dicha información mediante lenguaje SQL estándar:
De hecho Quasar-analytics es el motor de consultas de SlamData. Una herramienta BI Open Source para facilitar la explotación y comprensión de los datos por parte de personal no técnico.
El lenguaje SQL utilizado por Quasar-analytics se denomina SQL2. Se trata de un subconjunto del estándar ANSI SQL, con soporte para la mayoría de las sentencias SELECT, incluyendo clausulas AS, WHERE, JOIN, GROUP BY, HAVING, LIMIT, OFFSET, CROSS… funciones de agregado y operaciones.
Quasar-analytics no traduce la sentencia SQL a la equivalente en el lenguaje nativo en la BD subyacente, sino que realiza un acceso nativo a los datos. Esto permite por ejemplo realizar JOINs sobre colecciones MongoDB, utilizando versiones previas a la versión 3.2 que da soporte a JOINs.
Asimismo, el resultado de las consultas ejecutadas en quásar-analytics se puede recuperar tanto en formato tabular clásico, como en JSON.
La documentación completa del lenguaje SQL2 se puede encontrar en el http://quasar-analytics.org/docs/sqlreference/
A continuación mostramos algunos ejemplos de sentencias en Quasar sobre una base de datos MongoDB, con documentos JSON con la siguiente estructura:
· SELECT simple:
· SELECT utilizando un operador sobre el resultado de otra SELECT:
· SELECT agrupando por un atributo:
· SELECT con operaciones sobre fechas, ordenado por un atributo:
· SELECT con JOIN sobre dos colecciones de MongoDB:
Quasar-analytics se distribuye libremente bajo licencia Apache 2.0. Su código fuente así como las diferentes releases se encuentran disponibles en Github: https://github.com/quasar-analytics/quasar
Existen diferentes formas para utilizar Quasar-analytics:
- Línea de comandos (REPL): Permite al usuario ejecutar sentencias en modo interactivo, introduciéndolas manualmente y consultado el resultado en una consola. (https://github.com/quasar-analytics/quasar#repl-usage)
- API REST: Permite la integración con otras aplicaciones ofreciendo un API REST. (https://github.com/quasar-analytics/quasar#api-usage)
Proporciona distintas formas de ejecutar sentencias(HTTP GET y HTTP POST), mecanismos de paginación, modificación (HTTP PUT) e inserción(HTTP POST) de nueva información, borrado de información (HTTP DELETE) existente e incluso de mover (HTTP MOVE) información a un path (Base de datos en MongoDB) diferente en el mismo backend.
El API REST permite recuperar la información de la BD tanto en formato JSON como Tabular (CSV). Para elegir entre una respuesta u otra, el cliente utiliza cabeceras HTTP (https://github.com/quasar-analytics/quasar#data-formats):
{«Accept»: «application/json»}
{«Accept»: «text/csv»}
Resolviendo el problema del carácter separador en formato CSV, con las extensiones de media-type: columnDelimiter, rowDelimiter, quoteChar y escapeChar (https://github.com/quasar-analytics/quasar#csv)
Por ejemplo:
Consulta con respuesta en formato CSV:
Misma sentencia con respuesta en formato JSON:
- JDBC vía API REST: A su vez, para sentencias de tipo SELECT desde aplicaciones Java, existe un Driver JDCB (https://github.com/quasar-analytics/quasar-jdbc) que abstrae de la utilización del API REST:
[…] Nuevo Motor Consultas SQL BDTR MongoDB: se ha incorporado Quasar (ver post) como motor de ejecución de consultas en SQL a MongoDB. Con este motor podemos realizar consultas […]
[…] En los últimos años, el crecimiento en el uso de bases de datos NoSQL en entornos empresariales y la necesidad de explotar la información mediante herramientas analíticas, ha propiciado que surjan herramientas para consultar dicha información de una forma estandar. Una de las mas potentes es Quasar-Analytics que proporciona un lenguaje de consulta SQL estandar sobre diferentes motores NoSQL, entre ellos MongoDB. (Que es quasar-analytics). […]
[…] sois dichos en eso del SQL con Quasar (por aquí se habla al respecto), seguro que haréis una consulta mucho mejor que la que os voy a proponer, pero sino, acompañadme […]
[…] you’re fluent in that SQL with Quasar thingy (here they talk about that, in Spanish), you’ll surely do a much better job than I’m going to do. If not, come with me on this […]
[…] you’re fluent in that SQL with Quasar thingy (here they talk about that, in Spanish), you’ll surely do a much better job than I’m going to do. If not, come with me on this […]