Nota: Este artículo utiliza el Lenguaje de Definición de Datos de Couchbase Analytics a partir de la versión 5.5. Para actualizaciones e información sobre cambios de última hora en versiones más recientes, consulta Cambios en el servicio Couchbase Analytics.
La visualización de datos y la elaboración de informes pueden ayudar a los responsables de la toma de decisiones a identificar patrones y conceptos en la analítica. Couchbase Analytics (actualmente en versión preliminar para desarrolladores) proporciona una Experiencia NoETL (vídeo) para analizar datos con potentes consultas. Knowi es una herramienta de informes y visualización basada en la nube que se integra con Couchbase. Estas herramientas pueden trabajar juntas para ofrecer una visualización de datos potente y sencilla.
Como ya comenté en el blog, el Los Cincinnati Reds (cliente de Couchbase) utilizan Apache NiFi para procesar datos de su empresa en un clúster de Couchbase. Uno de los muchos casos de uso que están explorando con Couchbase es la creación de un panel de control en tiempo real. Este panel, entre otras cosas, mostraría una visualización de datos del estadio después de que se abran las puertas y se empiecen a escanear las entradas.
Esta visualización de datos en tiempo real puede ayudar a mostrar patrones en el estadio y dar a los Reds una idea de cuándo acuden los poseedores de entradas y adónde van.
En esta entrada del blog, voy a mostrar un ejemplo de Couchbase y Knowi en acción para proporcionar una visualización de datos de Great American Ball Park (donde los Rojos de Cincinnati juegan sus partidos en casa). Lo que muestro en este post no es exactamente lo que utilizan los rojos: se ha simplificado.
Datos en Couchbase
Los Reds disponen de un sofisticado sistema cartográfico que permite asignar un número de sección, fila y asiento a un punto concreto del mapa. Para esta entrada de blog, sin embargo, voy a utilizar la latitud y longitud con Google Maps.
Los datos con los que estoy trabajando son un documento simplificado compuesto por el nombre del titular de una entrada, las coordenadas geográficas y un tipo campo. Un documento de ejemplo:
|
1 2 3 4 5 6 7 8 |
{ "nombre": "Sparky Anderson", "geo": { "lat": 39.097303, "lon": -84.507277 }, "tipo": "ticketScan" } |
Normalmente esperaría que los datos cartográficos estuvieran separados, y posiblemente unidos sobre la marcha con un escaneo del billete. Pero supongamos que eso ya se ha hecho. Tenemos todo lo que necesitamos en un único documento.
He creado un bucket llamado "tickets" que contendrá documentos como los anteriores. En producción, los datos fluirán continuamente hacia este bucket (probablemente a través de NiFi) durante un partido de béisbol. De hecho, hace poco asistí a un partido y ayudé a probar este sistema mientras atravesaba las puertas y me escaneaban la entrada durante las horas punta de un partido de fin de semana.
Análisis de Couchbase
Knowi podría conectarse a este bucket directamente y empezar a informar sobre él. Sin embargo, podría ser mejor utilizar Couchbase Analytics en esta situación. Usar Couchbase Analytics significa que no tenemos que preocuparnos de escribir índices para consultas más complejas, y también significa que reduciremos cualquier impacto en el rendimiento del bucket operativo.
Para empezar con Couchbase Analytics, asegúrate de que has habilitado el servicio Analytics cuando instalaste Couchbase. El servicio Analytics debería aparecer en la pestaña "Servidores":

A continuación, vaya a la pestaña "Analytics". Verá una pantalla muy similar a la del N1QL Query Workbench normal.
Configuración de los análisis
Hay tres sencillos pasos para empezar.
En primer lugar, cree un bucket de análisis. Este bucket corresponderá a un bucket Couchbase normal. Simplemente introduce un comando como este: CREAR BUCKET ticketsAnalytics CON {"nombre": "tickets"};
A continuación, defina un conjunto de datos dentro de ese bucket. Puede especificar los documentos que deben ir en ese conjunto de datos utilizando una etiqueta DONDE cláusula. Ejemplo:
|
1 |
CREAR SOMBRA DATASET ticketEscanea EN ticketsAnalytics DONDE `tipo` = "ticketScan"; |
Se trata de una "sombra": una copia en tiempo real de (un subconjunto de) un bucket de Couchbase.
Por último, inicia el sombreado con un comando más: CONECTAR BUCKET ticketsAnalytics;
En este punto, los documentos ticketScan del bucket "tickets" de Couchbase comenzarán a copiarse en el bucket "ticketsAnalytics" de Analytics.
Empezará a ocurrir inmediatamente. Puede ejecutar una consulta como select * from ticketScans; para ver los datos en Analytics.
También debería ver una representación visual de esta configuración en "Bucket Insights", en la parte superior derecha de la página.

Tenga en cuenta que Analytics se encuentra todavía en fase de previsualización para desarrolladores y que los pasos anteriores pueden cambiar tras el lanzamiento general (actualmente previsto para finales de este año).
Configuración del Agente Knowi (opcional)
Puede crear una versión de prueba gratuita de 14 días de Knowi.
Knowi está basado en la nube, por lo que no es necesario descargar nada. Puedes crear informes y visualizaciones directamente en tu navegador.
Sin embargo, si tu cluster Couchbase no está expuesto a internet, o no tienes un túnel VPN configurado, aún puedes usar Knowi ejecutando el Agente Knowi en tu red. Esta es una manera fácil para que Knowi tenga acceso a tus datos. Mi cluster local de Couchbase no está expuesto a internet, así que simplemente descargué el Agente Knowi:

Tendrás que crear un archivo JSON datasource en la carpeta /config. Esto es muy fácil de hacer, porque hay un montón de archivos de ejemplo en la carpeta /example. Para Couchbase, echa un vistazo a datasource_example_couchbase.json. Para mi cluster local, he creado un archivo con estos contenidos:
|
1 2 3 4 5 6 7 8 9 |
[ { "nombre": "demoCouchbase", "anfitrión": "localhost", "dbName": "mate", "contraseña": "contraseña", "fuente de datos": "couchbase" } ] |
Esto supone que has creado un usuario llamado "matt" en Couchbase con permiso para usar Analytics.
El Agente viene con algunos scripts de shell y archivos por lotes. Se puede ejecutar como un servicio, o simplemente puede hacer lo que yo hice y ejecutar ejecutar.bat para iniciar el agente. En este punto, Knowi será capaz de comunicarse con tu cluster Couchbase a través del agente.
Configurar una fuente de datos en Knowi
Ahora vuelve a la interfaz de Knowi.com. Crea una nueva fuente de datos. Puedes darle el nombre que quieras. Si está utilizando el agente como yo, establezca "localhost" para ser la fuente de datos. También especifiqué un nombre de bucket de "tickets". Introduje las credenciales de usuario. Para Analytics, necesitas especificar un "Dataverse". Por defecto, ya hay un dataverse disponible.
Por último, marque la casilla "Fuente de datos interna". Si el agente funciona correctamente, verá un desplegable y podrá seleccionar el agente. Si no está utilizando un agente, no marque esa casilla.

En este punto, puede utilizar esta fuente de datos para crear 1 o más fuentes de datos Knowi.
Fuentes de datos Knowi
Un feed de datos / conjunto de datos en Knowi es análogo a una consulta. Aquí está el feed de datos (muy simple) que he creado para obtener la información del ticket de Couchbase.

Note que Knowi soporta N1QL nativamente. Toda la potencia del lenguaje N1QL de Couchbase está disponible cuando creas un feed de datos. Mi consulta es muy simple sólo para demostración.
Widget Knowi
Por último, puedo crear un widget Knowi. Los widgets son informes individuales o visualizaciones de datos. Hay una gran variedad de widgets disponibles, e incluso se pueden personalizar y combinar widgets. Voy a mantenerlo simple y crear un solo widget. Haga clic en "Nuevo Widget+" y seleccione el conjunto de datos que creó en la sección anterior.
A continuación, haz clic en el botón "Configuración" situado junto al widget. Hay un montón de opciones para la presentación de informes y visualización de datos. Compruébalas y experimenta con ellas. Yo elijo "Geo-Heatmaps".

He elegido el centro del Great American Ball Park para la Latitud Central y la Longitud Central (39.097208,-84.506530) y un nivel de zoom alto. El radio representa el tamaño que quieres que tengan los puntos del mapa térmico. Los míos corresponden a los asientos de un estadio de béisbol, por lo que he introducido un valor relativamente pequeño de 5.
Ya está. Guarda el widget. Haz clic en el icono del globo ocular para ver una vista previa. Aquí hay una vista previa con sólo 6 entradas en total en mi cubo Couchbase.

Panel de visualización de datos
Por último, voy a crear un panel de control con esta visualización de datos. Ve al panel de control de Knowi, haz clic en "Añadir widget al panel de control" y selecciona el widget. El widget puede cambiar de tamaño y moverse. Puedes añadir otros widgets para completar el panel. Esto es en lo que están trabajando los rojos: ver una visualización por sí sola no es suficiente. También quieren informar sobre las tendencias generales: qué secciones están más llenas, cuántas entradas totales se han escaneado en un periodo de tiempo, etc.
He creado un Programa .NET (código fuente disponible aquí) para empezar a añadir entradas aleatoriamente. Quería ver una actualización en tiempo real de esta visualización de datos. Mi ejemplo no es del todo exacto: No he querido dedicar tiempo a cartografiar cada asiento con su latitud y longitud. Pero es lo bastante aproximado para que te hagas una idea.

(Este clip representa un periodo de 5 minutos de ejecución de mi programa de muestra, comprimido en 30 segundos).
La distribución es aleatoria y está dentro de dos áreas arbitrarias. Esta es la parte en la que los Cincinnati Reds tienen más experiencia a la hora de mapear sus datos en un mapa de asientos más eficiente, pero espero que te hagas una idea.
Ten en cuenta que para que una visualización de datos sea en tiempo real (como la de arriba), no puedes usar el agente. Tuve que dar acceso directo a Knowi para que apareciera una casilla de verificación de "Consulta directa" cuando estaba creando un feed de datos (así que usé Couchbase en Microsoft Azure).
Esta visualización en particular también podría ser útil para un mapa de cortes en tiempo real para una empresa de servicios públicos. Podrías crear un cuadro de mandos para informar sobre cortes de internet, electricidad, gas o teléfono en un mapa.
¿Y ahora qué?
En este post, viste lo fácil que era usar Knowi y Couchbase Analytics para empezar a construir visualizaciones de datos en tiempo real.
Couchbase proporciona la flexibilidad de N1QL y el rendimiento de una arquitectura que prioriza la memoria, y Knowi proporciona las capacidades de visualización de datos y cuadros de mando.
Recuerde que Knowi tiene una prueba gratuita. He trabajado con Knowi en este proyecto de Reds por poco tiempo, pero he encontrado que su soporte es útil y receptivo y su documentación es completa y útil.
Algunos pasos a seguir:
- Descargar Couchbase Server de forma gratuita y pruebe Couchbase Analytics (actualmente incluido como vista previa para desarrolladores en Servidor Couchbase 5.5)
- Inscríbete en prueba gratuita de Knowi hoy.
- ¿Tienes una pregunta sobre Couchbase? Pregunta en el Foros de Couchbase.
- ¿Tienes alguna pregunta sobre Knowi? Consulta el Centro de ayuda Knowi.
- ¿Tienes alguna pregunta? Estoy en Twitter @mgroves.