Consulta SQL++ / N1QL

Serviço de consultoria de índice para Couchbase N1QL (SQL para JSON)

Temos o prazer de anunciar o lançamento do :

Serviço de consultoria de índice do Couchbase

http://index-advisor.couchbase.com

Mais um serviço? Por quê?

Lançamos o N1QL (SQL para JSON) há alguns anos, para que você pudesse usar o SQL para recuperar e manipular dados JSON. Mas, se não forem criados bons índices, as consultas não terão um bom desempenho! Como saber se o índice que você criou é bom o suficiente para o nosso mecanismo de consulta? Por isso, decidimos apresentar todas as regras que formam um bom índice. Mas isso envolveu muita leitura! Portanto, estamos dando um passo adiante para capacitá-lo. Agora estamos lançando um serviço -Consultor de índices-que aceita uma consulta e fornece uma recomendação de índice que atenderia às expectativas do nosso mecanismo de consulta - tudo isso sem fazer o download do servidor Couchbase mais recente.

Para quem?

Esse serviço fornecerá recomendações de índices para ajudar DBAs, desenvolvedores e arquitetos a otimizar o desempenho das consultas e atender aos SLAs.

O Index Advisor foi lançado como parte do Couchbase Server 6.5. Se você tiver feito o download dessa versão, terá tudo (e mais) do que esse serviço oferece.

Quando você deve usar esse serviço?

Se você:

  1. Deseja evitar a leitura do criação de índices regrasCompreendê-los e implementá-los para encontrar os índices apropriados para sua consulta/consultas/carga de trabalho.
  2.  Ainda não deseja fazer o download do servidor Couchbase 6.5 mais recente.
  3.  Está usando um versão mais antiga do Couchbase e precisa de ajuda para criar os índices certos para suas consultas.
  4. Deseja gerar conselhos para índices sem criar um bucket ou fazer upload do esquema ou dos dados.

Histórico:

N1QL é o SQL para dados e metadados JSON. Toda consulta escrita em N1QL tem um plano de consulta preparado pelo mecanismo de consulta N1QL. O desempenho e a eficiência de uma consulta dependem de seu plano. A criação de índices corretos para os dados ajuda na seleção dos índices que podem recuperar o conjunto de resultados da maneira mais eficiente. Embora o documento JSON em si não tenha um esquema, o índice precisa ter um esquema.

Por exemplo, índice ix1(field1,field2) é diferente do índice ix2(field2,field1).

Portanto, não apenas os campos que selecionamos para um índice são importantes, mas a ordem em que eles estão presentes em um índice também é importante para os índices GSI. (O índice FTS será abordado em outro blog).

Vida de uma consulta:

Screen Shot 2016-12-12 at 2.10.40 PM.png

 

Dependendo da qualidade da etapa 4, podemos minimizar ou pular completamente as etapas 5 e 6 e, assim, melhorar o desempenho da consulta. Para ajudar com isso, estamos lançando o Index Advisor.

http://index-advisor.couchbase.com

Index Advisor - o serviço!

Com o Index Advisor, você pode

  1. Forneça uma consulta ou várias consultas de mesmo em um servidor mais antigo que o 6.5 e o serviço recomendará os índices que você deve ter/criar para obter o melhor desempenho.
  2. Como não temos seus dados ou esquema, não podemos ver se você tem esses índices no momento. Em breve, estaremos aprimorando essa interface para aceitar dados/estatísticas/esquema/inferência/índices atuais - ou qualquer outra coisa que você possa fornecer para que possamos fazer melhores recomendações.

Depois que você nos fornecer a consulta com a diretiva ADVISE, a ferramenta fornecerá as recomendações para o índice mínimo e o índice de cobertura.

  • Índices: Esta seção lista os índices recomendados com base nos predicados da cláusula WHERE/ON, juntamente com a regra de recomendação correspondente que cada índice segue.
  • Índices de cobertura: Esta seção lista os índices de cobertura aplicáveis à consulta de entrada, ou seja, um índice que inclui todos os campos referenciados na consulta para evitar o salto extra para o serviço de dados.

Esta é a aparência da ferramenta. Clique no gif abaixo para vê-lo claramente.

Exemplos:

1.

2.

3.

4.

 

Resultado

 

Os índices candidatos são gerados de acordo com as regras de design especificadas aqui.

O que ainda precisa ser feito:

1. Aprimorar a interface do usuário dessa ferramenta. Fornecer recomendações de índice em texto para facilitar o recorte e a colagem. Atualmente, ela fornece uma saída JSON.

2. Aceitar sabores - para que possamos gerar recomendações de índices parciais.

3. Fornecer uma maneira de permitir que o usuário insira o esquema, os índices existentes, a saída inferida e talvez até mesmo os dados de teste.

Gostaríamos muito de saber o que você achou da ferramenta e quais recursos adicionais você gostaria de ver. Por favor, compartilhe seu feedback nos comentários.

Mais informações sobre o recurso Index Advisor:

https://www.couchbase.com/blog/n1ql-index-advisor-improve-query-performance-and-productivity/

https://www.couchbase.com/blog/index-advisor-for-query-workload/

https://docs.couchbase.com/server/6.5/n1ql/n1ql-language-reference/advise.html

https://docs.couchbase.com/server/6.5/n1ql/n1ql-language-reference/advisor.html

https://docs.couchbase.com/server/6.5/tools/query-workbench.html#index-advisor

Resumo:

O consultor de índice (instrução ADVISE) fornece recomendações de índice para uma única consulta. Ele aconselha o índice regular, o índice de matriz e o índice de cobertura e fornece informações sobre a regra de recomendação correspondente que cada chave de índice segue.

O consultor de índices (instrução ADVISOR) fornece recomendações de índices para várias consultas. Ele recomenda o menor número possível de índices que seriam adequados para todas as consultas na matriz.

Tente fazer isso em casa!

http://index-advisor.couchbase.com

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

Autor

Postado por Kamini Jagtiani

Kamini Jagtiani é gerente sênior de engenharia da equipe de consultas da Couchbase R&D. Antes da Couchbase, Kamini trabalhou 7 anos na Futurewei como arquiteto/gerente de kernel e 13 anos na IBM Informix como engenheiro de software. Kamini é bacharel em Ciência da Computação e Engenharia pela Universidade de Bombay, na Índia, e possui 5 patentes nos EUA.

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.