Análise do Couchbase

Plano de explicação do Analytics - Parte 1

Coautor: Till Westmann, Diretor Sênior de Engenharia

Introdução

O Couchbase Analytics é o "mais novo garoto do pedaço" entre todos os serviços disponíveis no Couchbase Server. O novo serviço está proporcionando um rápido insight em muitos casos de uso, como ship to shore, análise de carrinho de compras, colocação de mercadorias em lojas, reservas de passagens aéreas, inventário de hotéis e muito mais. O Couchbase Server oferece desempenho inigualável em alguns dos casos de uso mais exigentes, e as expectativas em relação ao serviço Analytics não são diferentes. Nos últimos meses, otimizamos as consultas N1QL (SQL para JSON) para clientes que implantaram o Analytics em uma variedade de topologias de implantação diferentes. "Como posso interpretar o plano de consulta do Analytics?" é uma solicitação recorrente, e eu desmistificarei o plano de consulta do Analytics em uma série de publicações no blog. 

 

Nesta postagem do blog, parte 1, fornecerei informações básicas sobre a estrutura de execução e, em seguida, explicarei o plano para uma consulta simples. No próximo blog desta série, explicarei o plano para consultas mais complexas, incluindo uniões, acessos a índices e agregações.

Histórico

O Couchbase Analytics adiciona o gerenciamento de dados paralelos ao Couchbase Server para complementar os recursos oferecidos pelos serviços de consulta e índice. O Couchbase Analytics tem um processador de consultas totalmente baseado em MPP (processamento massivamente paralelo) que divide o trabalho de processamento de uma única consulta em todos os nós do Analytics em um cluster da plataforma de dados do Couchbase. Como resultado, você pode executar consultas analíticas complexas - junções ad-hoc, agregação de conjuntos e operações de agrupamento - rapidamente e de forma dimensionável.

 

A imagem abaixo é uma representação conceitual simplificada de como uma consulta é processada pelo mecanismo do Analytics. A imagem representa o que acontece em um único nó e oculta os detalhes dos aspectos MPP do mecanismo de consulta.

  • Uma solicitação é enviada ao Analytics Service e, após ser autenticada, a string de consulta é passada para o compilador de consultas.
  • O compilador de consultas analisa e traduz a consulta e produz um plano de consulta otimizado. Um plano de consulta é uma árvore (ou um DAG) de operadores e conectores. Esses operadores são semelhantes aos operadores de álgebra relacional em bancos de dados relacionais. A principal diferença aqui é que os operadores no Couchbase Analytics também são capazes de lidar com dados JSON aninhados e sem esquema. Os detalhes estão fora do escopo desta postagem do blog, mas você pode ver os detalhes neste apresentação de vídeo do professor Mike Carey, arquiteto-chefe do Couchbase Analytics. 
  • O plano de consulta é entregue ao mecanismo de execução, que avalia os operadores no plano de consulta. O Analytics foi projetado para big data e pode lidar de forma adequada com os dados são transferidos da memória para o disco conforme necessário.
  • O cache de buffer é usado pelo mecanismo de execução para ler os dados armazenados do disco e armazená-los em cache na memória para acesso mais rápido, conforme necessário.
  • Os resultados da execução são passados para o manipulador de resposta.
  • O manipulador de resposta passa os resultados de volta para o cliente.

Plano de consulta

A O plano de consulta descreve o caminho de um documento pelo mecanismo de execução. As operações no plano serão executadas para cada documento qualificado.  

Deixe-me ilustrar isso com uma consulta muito simples abaixo, que seleciona o nome de todas as cervejarias da Califórnia.

A melhor maneira de ler o plano seria de baixo para cima. Ele lhe daria uma visão de como os dados são acessados e as etapas que se seguem para a execução da consulta.

   Operadores de plano de consulta                                  Explicação

Distribuir resultado: Essa é a raiz do plano que recebe o resultado da consulta. Quando um cliente solicita os resultados (de forma síncrona ou assíncrona), os resultados são recuperados de cada nó e enviados ao cliente.

Essa é uma operação paralela que é particionada em todos os nós do cluster.


Projeto: Projeta o campo $$breweries e mantém $$15 (que contém o nome da cervejaria).

Essa é uma operação paralela que é particionada em todos os nós do cluster.


Atribuir: Esse operador avalia uma ou mais expressões e atribui os resultados a novas variáveis. Nesse caso, o valor da chave "name" é atribuído à variável $15.

Essa é uma operação paralela que é particionada em todos os nós do cluster.


Selecionar: Seleciona os registros correspondentes com base no predicado definido na consulta. Nesse caso, os registros de cervejarias que pertencem à "Califórnia" são selecionados e o restante é filtrado.
Essa é uma operação paralela que é particionada em todos os nós do cluster.



Projeto:
Projeta todas as $$16 e $$17 e mantém as $$breweries.


Essa é uma operação paralela que é particionada em todos os nós do cluster.

 


Varredura de dados: Lê cada registro do conjunto de dados "breweries". "vars" é a lista de variáveis que são criadas como resultado dessa operação. A primeira chave de cada registro é atribuída a $$16, o registro inteiro é atribuído a $$breweries e alguns metadados do registro são atribuídos a $$17.
Essa é uma operação paralela que é particionada em todos os nós do cluster.

 

 

O explain plan é uma ótima ferramenta para otimizar as consultas analíticas executadas no Couchbase Server, e esta introdução deve ajudar a desmistificar o plano e interpretá-lo. Você pode experimentá-lo fazendo o download da versão mais recente Servidor Couchbase 6.5 e interaja conosco em fóruns para que suas perguntas sejam respondidas.

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Sachin Smotra, diretor de gerenciamento de produtos, Couchbase

A carreira de Sachin Smotra abrange mais de 15 anos de desenvolvimento de produtos de software em vários domínios, incluindo software Java Enterprise, soluções DRM para jogos móveis e conferências na Web. Como diretor de gerenciamento de produtos da Couchbase, ele é um líder de produto prático responsável pelas linhas de produtos Couchbase Mobile, IOT e Analytics, incluindo a divulgação da estratégia e da visão do produto com clientes, parceiros, desenvolvedores e analistas. Antes de ingressar na Couchbase, Sachin foi gerente sênior de gerenciamento de produtos na Cisco WebEx, onde liderou a equipe de produtos responsável por transformar a experiência do cliente de ponta a ponta em todo o ciclo de vida do produto WebEx - consideração, compra, uso e renovação. Antes de trabalhar na Cisco, Sachin trabalhou em diferentes startups em uma série de funções nas áreas de engenharia, arquitetura, gerenciamento de produtos e alianças.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.