Análisis de Couchbase

Analytics Explain Plan - Parte 1

Coautor: Till Westmann, Director de Ingeniería

Introducción

Couchbase Analytics es el "chico más nuevo del barrio" entre todos los servicios disponibles en Couchbase Server. El nuevo servicio proporciona una rápida comprensión de muchos casos de uso, como el envío a la costa, el análisis de carritos de la compra, la colocación de productos en tiendas, las reservas de billetes de avión, el inventario de hoteles y muchos más. Couchbase Server ofrece un rendimiento inigualable en algunos de los casos de uso más exigentes, y las expectativas del servicio Analytics no son diferentes. En los últimos meses, hemos optimizado las consultas N1QL (SQL para JSON) para clientes que han desplegado Analytics en una variedad de topologías de despliegue diferentes. "¿Cómo puedo interpretar el plan de consulta de Analytics?" es una petición recurrente y voy a desmitificar el plan de consulta de Analytics en una serie de entradas de blog. 

 

En esta entrada del blog, parte 1, proporcionaré información general sobre el marco de ejecución y, a continuación, explicaré el plan para una consulta sencilla. En el siguiente blog de esta serie explicaré el plan para consultas más complejas, incluidas las uniones, los accesos a índices y las agregaciones.

Fondo

Couchbase Analytics añade gestión paralela de datos a Couchbase Server para complementar las capacidades ofrecidas por los servicios de consulta e índice. Couchbase Analytics tiene un procesador de consultas basado en MPP (procesamiento paralelo masivo) que divide el trabajo de procesar una sola consulta entre todos los nodos de Analytics en un clúster de plataforma de datos Couchbase. Como resultado, puedes ejecutar consultas analíticas complejas -uniones ad-hoc, agregación de conjuntos y operaciones de agrupación- de forma rápida y escalable.

 

La siguiente imagen es una representación conceptual simplificada de cómo el motor Analytics procesa una consulta. La imagen representa lo que ocurre en un único nodo y oculta los detalles de los aspectos MPP del motor de consulta.

  • Se envía una solicitud al servicio Analytics y, una vez autenticada, la cadena de consulta se pasa al compilador de consultas.
  • El compilador de consultas analiza y traduce la consulta y produce un plan de consulta optimizado. Un plan de consulta es un árbol (o DAG) de operadores y conectores. Estos operadores son similares a los del álgebra relacional de las bases de datos relacionales. La diferencia clave aquí es que los operadores en Couchbase Analytics también son capaces de manejar datos JSON anidados y sin esquema. Los detalles están fuera del alcance de esta entrada del blog, pero se puede obtener bajo el capó en este presentación en vídeo del profesor Mike Carey, arquitecto jefe de Couchbase Analytics. 
  • El plan de consulta se entrega al motor de ejecución, que evalúa los operadores del plan de consulta. Analytics está diseñado para grandes volúmenes de datos y puede manejar con soltura datos de la memoria al disco según sea necesario.
  • El motor de ejecución utiliza la caché del búfer para leer los datos almacenados en el disco y almacenarlos en la memoria para acceder a ellos más rápidamente cuando sea necesario.
  • Los resultados de la ejecución se pasan al manejador de respuesta.
  • A continuación, el gestor de respuestas devuelve los resultados al cliente.

Plan de consulta

A El plan de consulta describe la ruta de un documento a través del motor de ejecución. Las operaciones del plan se ejecutarán para cada documento calificado.  

Permítanme ilustrar esto con una consulta muy simple a continuación, que selecciona el nombre es todas las fábricas de cerveza en California.

La mejor forma de leer el plan sería de abajo arriba. Te daría una visión de cómo se accede a los datos y los pasos que siguen para la ejecución de la consulta.

   Operadores del plan de consulta                                  Explicación

Distribuir-resultado: Es la raíz del plan que recibe el resultado de la consulta. Cuando un cliente solicita los resultados (de forma sincrónica o asincrónica), los resultados se recuperan de cada nodo y se envían al cliente.

Se trata de una operación paralela que se reparte entre todos los nodos del clúster.


Proyecto: Expulsa el campo $$cervecerías y se queda con $$15 (que contiene el nombre de la cervecería).

Se trata de una operación paralela que se reparte entre todos los nodos del clúster.


Asignar: Este operador evalúa una o varias expresiones y asigna los resultados a nuevas variables. En este caso, el valor de la clave "nombre" se asigna a la variable $15.

Se trata de una operación paralela que se reparte entre todos los nodos del clúster.


Seleccionar: Selecciona los registros coincidentes basándose en el predicado definido en la consulta. En este caso se seleccionan los registros de cervecerías que pertenecen a "California" y se filtra el resto.
Se trata de una operación paralela que se reparte entre todos los nodos del clúster.



Proyecto:
Proyecta todas las $$16 y $$17 y mantiene las $$breweries.


Se trata de una operación paralela que se reparte entre todos los nodos del clúster.

 


Exploración de datos: Lee cada registro del conjunto de datos "cervecerías". "vars" es la lista de variables que se crean como resultado de esta operación. La primera clave de cada registro se asigna a $$16, el registro completo se asigna a $$breweries y algunos metadatos del registro se asignan a $$17.
Se trata de una operación paralela que se reparte entre todos los nodos del clúster.

 

 

El plan explain es una gran herramienta para optimizar las consultas analíticas que se ejecutan en Couchbase Server y esta introducción debería ayudar a desmitificar el plan e interpretarlo. Puedes probarlo tú mismo descargando la última versión Servidor Couchbase 6.5 y participa con nosotros en foros para obtener respuesta a sus preguntas.

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

Autor

Publicado por Sachin Smotra, Director de Gestión de Productos, Couchbase

La carrera de Sachin Smotra abarca más de 15 años construyendo productos de software a través de varios dominios incluyendo software Java Enterprise, Soluciones DRM para juegos móviles y conferencias web. Como Director de Gestión de Producto en Couchbase, es un líder de producto responsable de las líneas de producto Couchbase Mobile, IOT y Analytics, incluyendo la evangelización de la estrategia y visión del producto con clientes, socios, desarrolladores y analistas. Antes de unirse a Couchbase, Sachin fue Gerente Senior, Gestión de Producto, en Cisco WebEx, donde dirigió el equipo de producto responsable de transformar la experiencia del cliente de extremo a extremo a través del ciclo de vida del producto WebEx - consideración, compra, uso y renovaciones. Antes de su etapa en Cisco, Sachin trabajó en diferentes startups en multitud de puestos relacionados con la ingeniería, la arquitectura, la gestión de productos y las alianzas.

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.