Servidor Couchbase

Crear un intérprete Zeppelin para Couchbase

He empezado a jugar con Zeppelin recientemente. Es un gran cuaderno basado en web que permite realizar análisis en tiempo real. Es compatible con una variedad de backends a través del concepto de intérpretes.

Zeppelin Interpreter es el plug-in que permite al usuario de zeppelin utilizar un lenguaje específico/procesamiento de datos-backend. Por ejemplo, para utilizar código scala en Zeppelin, necesitas el intérprete spark.

Ya puedes realizar algunos trabajos relacionados con Couchbase utilizando su intérprete Spark y la aplicación Conector Spark de Couchbase. Pero sólo quiero ejecutar algunas consultas N1QL en pads, como con Spark SQL y DataFrames. Así que necesito crear un intérprete N1QL para Couchbase. Hacerlo es fácil y documentadosólo necesitas una clase.

Esta clase debe extender la clase abstracta org.apache.zeppelin.interpreter.Interpreter resultando en tener que implementar los siguientes métodos abstractos: abra, cerrar, interpretar, getFormType, getProgress, finalización.

Que es más o menos lo que hice aquí:

abra y cerrar se encargan respectivamente de abrir y cerrar la conexión con el Cluster y el Bucket. El método de interpretación es el que se ejecuta cuando se ejecuta el pad. Aquí es donde transformas el texto del pad en lo que quieras. Para este intérprete tomaré una consulta N1QL, la ejecutaré y transformaré el resultado para que pueda ser usado en Zeppelin. Aquí transformar significa aplanar los documentos JSON resultantes ya que todo tiene que estar en forma de tabla.

Ahora puedo ejecutar las consultas N1QL que quiera. Aquí's un simple ejemplo tomado de la muestra de juego cubo:

Puedes ver una tabla de clasificación en la parte inferior izquierda, la lista de jugadores ordenada por nivel en la esquina superior izquierda y la distribución de objetos por jugador también ordenada por nivel. Puede ver que no hay correlación entre el nivel del jugador y el número de objetos que tiene. La consulta subyacente está utilizando un JOIN, que está disponible de forma nativa con N1QL.

Podríamos añadir muchas otras funciones. Supongo que la primera que te viene a la mente cuando conoces Zeppelin es autocompletar. Puede ser útil en muchas situaciones, ya sea para palabras clave N1QL o campos json. De hecho, tenemos esta característica disponible en el Interfaz de consulta si introduce el tab tecla o Ctrl+Espacio. Otras características interesantes podrían ser el soporte de Views, especialmente para consultas geoespaciales, y de Couchbase FTS. He comenzado el desarrollo del plugin en Githuby puede seguirlo en el sitio Apache seguimiento de problemas. Como siempre, los comentarios y las contribuciones son más que bienvenidos.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Laurent Doguin

Laurent es un metalero empollón que vive en París. Principalmente escribe código en Java y texto estructurado en AsciiDoc, y a menudo habla sobre datos, programación reactiva y otras cosas de moda. También fue Developer Advocate de Clever Cloud y Nuxeo, donde dedicó su tiempo y experiencia a ayudar a esas comunidades a crecer y fortalecerse. Ahora dirige las relaciones con los desarrolladores en Couchbase.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.