Consulta SQL++ / N1QL

Comparação das visualizações do Couchbase com o Couchbase N1QL e a indexação.

À medida que a plataforma de dados do Couchbase evoluiu, serviços como N1QL e GSI Indexing lidaram com os casos de uso que o Couchbase VIEWS costumava lidar e muito mais. É lógico fazer a pergunta comparativa entre eles. Aqui está uma tabela que compara ambos. Este artigo é destinado a desenvolvedores e arquitetos familiarizados com ambos, e não como um artigo introdutório. Use os links aqui para saber mais e brincar com os respectivos recursos.

Tópico Exibições do Couchbase Map-Reduce Couchbase N1QL+GSI
Abordagem Com base nas funções map() e reduce() definidas pelo usuário que operam nos dados em segundo plano. Como map() e reduce() são escritas em Javascript, você pode codificar lógicas complexas nessas funções. Baseado na consulta declarativa N1QL (SQL para JSON). Usa índices apropriados para otimizar a execução e é executada dinamicamente por meio da orquestração de serviços de dados de consulta-índice. O N1QL permite consultas facilmente graváveis e legíveis para JSON. Por ser inspirado no SQL, é flexível e compostável. Por ter sido estendido para JSON, funciona com dados JSON avançados. Usa lógica booleana de quatro valores (true, false, NULL, MISSING)
Mais informações Documentos do Couchbase: http://bit.ly/2jQrY11 1. http://query.couchbase.com
2. https://www.couchbase.com/blog/n1ql-practical-guide-second-edition/
Consulta Consulta baseada em

1. Single key
2. Set of keys
3. Start-End key
4. Start-End document keys
5. Group BY, Aggregation
6. Pagination

Declarações de consulta

1. SELECT
2. INSERT
3. UPDATE
4. DELETE
5. MERGE
6. INFER
7. EXPLAIN
Operações de consulta:
1. Single key
2. Set of keys
3. Range keys
4. Range of document keys
5. Arbitrarily complex predicates
6. INNER JOIN, LEFT OUTER JOIN
7. NEST, UNNEST
8. GROUP BY
9. Aggregation
10. Pagination (OFFSET, LIMIT)
11. Optimization
12. ORDER BY
13. HAVING
14. Subqueries (correlated, non-correlated)
15. Derived tables
16. SET operations: UNION, UNION ALL, EXCEPT, EXCEPT ALL, INTERSECT
17. Highly composable queries, meaning these operations can be simply combined with each other to express complex business questions and operations easily.

Indexação Índice simples para visualizações. 1. Índice primário
2. Named primary index
3. Secondary index
4. Índice secundário composto
5. Functional index
6. Índice da matriz
7. ALL array
8. ALL DISTINCT array
9. Partial Index
10. Adaptive Index
11. Duplicate Indices
12. Covering Index

Particionamento Alinhado ao particionamento de dados. Serviços independentes.

O N1QL e o GSI são dimensionados independentemente do serviço de dados e entre si.

Escala Escalas com serviço de dados Escalonamento independente por meio de escalonamento multidimensional (MDS)
Buscar com a chave do documento Como os dados são particionados na chave do documento, o documento é obtido diretamente do nó Especifique a consulta por meio da cláusula USE KEYS.

Como os dados são particionados na chave do documento, o documento é obtido diretamente do nó

Buscar com chave de índice Dispersão-coleta Cada varredura de índice em um único nó; dados em vários nós.

Pós-processamento no nó de consulta

Varredura de alcance Dispersão-coleta Varredura de índice em um único nó.

Pós-processamento no nó de consulta

Agrupamento, agregação Integrado com a API de visualizações Incorporado ao N1QL
Armazenamento em cache Sistema de arquivos Pool de buffer de índice

Cache de dados

Armazenamento Loja de sofás Mecanismo de armazenamento de plasma (5.0 e superior)

Índice otimizado para memória (4.5 e superior)

ForestDB (comunidade)

Disponibilidade Baseado em réplicas 5.0: Réplicas

4.x: Índices equivalentes

Latência da consulta

(Consultas simples)

10 milissegundos a 100 milissegundos 5 milissegundos+
Taxa de transferência de consulta

(Consultas simples)

3K a 4K consultas por segundo 40 mil consultas por segundo
Escalabilidade Moderado (dimensionamento vinculado ao serviço de dados) Alta (dimensionamento independente de serviços de índice e consulta: MDS)
Aplicabilidade Agregações, o melhor das agregações em grande escala para requisitos de latência baixa e moderada. As operações de redução de mapas nos dados são feitas em segundo plano à medida que os dados são modificados. Melhor para pesquisa baseada em atributos, varreduras de intervalo, select-join-project-array complexo

Operações. Oferece suporte a agrupamento, agregação e ordenação - essas operações são feitas dinamicamente como parte da execução da consulta.

Requisitos de aplicação Relatório sobre métricas bem definidas

Agregações em grande escala

Sensível à latência

Pesquisas de chaves secundárias

Varreduras de alcance

Agregações operacionais

Consultas filtradas

Consultas ad-hoc com predicados complexos, junções, agregações, pesquisa de aplicativos, paginação, atualizações baseadas em chaves secundárias.

Espacial Suportado por visualizações espaciais Não diretamente.

https://dzone.com/articles/speed-up-spatial-search-in-couchbase-n1ql

Consistência Vencido = UPDATE_AFTER

Vencido = OK

Stale = FALSE

Não limitado (obsoleto = OK)

AT_PLUS (leia suas próprias gravações)

REQUEST_PLUS (lido após as atualizações do índice até now(). Stale = False).

Ferramentas Console da Web Console da Web, Workbench do desenvolvedor, Monitoramento de consultas, Perfil de consultas, Explicação visual, INFER.
Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Keshav Murthy

Keshav Murthy é vice-presidente de P&D da Couchbase. Anteriormente, ele trabalhou na MapR, IBM, Informix e Sybase, com mais de 20 anos de experiência em design e desenvolvimento de bancos de dados. Ele liderou a equipe de P&D de SQL e NoSQL na IBM Informix. Recebeu dois prêmios President's Club na Couchbase e dois Outstanding Technical Achievement Awards na IBM. Keshav é bacharel em Ciência da Computação e Engenharia pela Universidade de Mysore, Índia, detém dez patentes nos EUA e tem três patentes pendentes 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.