À 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. Chave única
  2. Conjunto de chaves
  3. Tecla Iniciar-Fim
  4. Teclas de início e fim do documento
  5. Group BY, Agregação
  6. Paginação

 

Declarações de consulta

  1. SELECIONAR
  2. INSERIR
  3. ATUALIZAÇÃO
  4. DELETE
  5. MERGE
  6. INFER
  7. EXPLICAR

Operações de consulta:

  1. Chave única
  2. Conjunto de chaves
  3. Teclas de alcance
  4. Intervalo de chaves de documento
  5. Predicados arbitrariamente complexos
  6. JUNÇÃO INTERNA, JUNÇÃO EXTERNA ESQUERDA
  7. NEST, UNNEST
  8. GRUPO POR
  9. Agregação
  10. Paginação (OFFSET, LIMIT)
  11. Otimização
  12. ORDER BY
  13. TER
  14. Subconsultas (correlacionadas, não correlacionadas)
  15. Tabelas derivadas
  16. Operações SET: UNION, UNION ALL, EXCEPT, EXCEPT ALL, INTERSECT
  17. Consultas altamente compostas, o que significa que essas operações podem ser simplesmente combinadas umas com as outras para expressar facilmente questões e operações comerciais complexas.
Indexação Índice simples para visualizações.
  1. Índice primário
  2. Índice primário nomeado
  3. Índice secundário
  4. Índice secundário composto
  5. Índice funcional
  6. Índice da matriz
  7. ALL array
  8. ALL DISTINCT array
  9. Índice parcial
  10. Índice adaptativo
  11. Índices duplicados
  12. Índice de cobertura
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.

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.

Deixar uma resposta