Com base na versão 4.0, que expandiu bastante o tipo de casos de uso de banco de dados de documentos que o Couchbase pode suportar, o Couchbase Server 4.1 traz grandes aprimoramentos na funcionalidade e no desempenho das consultas, que beneficiarão tanto os desenvolvedores quanto as empresas.
É uma prova da nossa equipe de engenharia que o Couchbase Server 4.1, lançado apenas três meses após o lançamento do Couchbase Server 4.0, inclui mais de 200 aprimoramentos que resultarão em maior escalabilidade e melhor desempenho de consulta. Queríamos que a versão 4.1 aprimorasse rapidamente N1QLpois muitos de nossos clientes já estão usando o N1QL para criar novos casos de uso no Couchbase.
A seguir, os principais destaques da versão 4.1
N1QL: Suporte completo a SQL CRUD com N1QL para aplicativos em lote e OLTP
Instruções SQL comuns, como INSERIR, ATUALIZAÇÃO, DELETE, MERGE e UPSERT agora são totalmente compatíveis com o Couchbase Server 4.1. Com esse benefício, agora você pode manipular documentos JSON com N1QL, da mesma forma que manipularia tabelas com SQL, e oferecer suporte a todos os requisitos de consulta de aplicativos corporativos da Web, móveis e de IoT.
O comando INSERT do N1QL permite inserções de documentos únicos e múltiplos. UPDATE e DELETE permitem a manipulação de um conjunto de documentos com base em critérios específicos. Esses dois comandos usam os índices disponíveis para identificar e atualizar documentos com eficiência. Os comandos UPSERT e MERGE mesclam dois conjuntos de documentos com base em determinados critérios. Todas essas instruções SQL tradicionais foram adaptadas para suportar documentos JSON.
As instruções SQL são totalmente compatíveis com os SDKs do Couchbase, as APIs REST e os drivers JDBC e ODBC da Simba.
Índices de cobertura
Por definição, um índice de cobertura é um índice que contém, no mínimo, todos os campos exigidos por uma consulta específica. O que isso significa para seu aplicativo é que os índices de cobertura ajudarão uma consulta a ser executada mais rapidamente. Com um índice padrão, o fluxo de execução de uma consulta inicialmente examinará o serviço de índice em busca de dados, mas depois terá que gastar mais tempo para examinar o serviço de dados para concluir a consulta. Ao usar um Covering Index, somente a varredura desse Covering Index é necessária para o acesso aos dados. O resultado é uma latência de consulta menor e um aplicativo com desempenho mais rápido.
As consultas N1QL usam os índices disponíveis para executar a consulta com eficiência. Dependendo do caso de uso, observamos uma melhoria de 2 a 3 vezes na latência e na taxa de transferência da consulta. Isso se deve ao fato de que, quando uma consulta só precisa fazer referência aos principais atributos do índice escolhido, ela pode evitar a busca do documento completo para responder à consulta. Assim, a consulta consumirá menos recursos e será executada mais rapidamente. Além disso, o mecanismo de consulta N1QL explora a ordenação do índice para evitar a classificação de dados quando as chaves do índice correspondem aos atributos-chave na cláusula ORDER BY.
O otimizador N1QL reconhece automaticamente se apenas um índice pode ser usado para responder a uma consulta. O desempenho obtido com o uso de índices de cobertura geralmente é excelente para consultas que processam um grande número de linhas. Por exemplo, no caso de consultas que fazem agregação, como abaixo -
CREATE INDEX idxstatecountry ON amostra de cerveja
(estado, país) USANDO GSI
SELECT country, max(state)
DE amostra de cerveja
USE INDEX (idxstatecountry)
WHERE STATE LIKE 'C%'
GROUP BY country
Nos casos em que ORDER BY é usado para classificação, os índices de cobertura também podem ajudar, pois o índice já está classificado, e o mecanismo de consulta pode usar diretamente o índice de cobertura classificado para produzir resultados.
Declarações preparadas
Uma instrução preparada permite a execução da mesma consulta ou de uma consulta semelhante muitas vezes com alta eficiência, evitando a análise e a preparação repetidas da consulta. Muitos aplicativos exigem a execução repetida de consultas predefinidas com apenas parâmetros diferentes. A execução dessas consultas repetidas como instruções ad-hoc requer análise, planejamento e execução de consultas a cada vez. O uso de um modelo de instrução preparada, em que o plano de execução é fixo e apenas variáveis específicas são substituídas a cada vez que a consulta é executada, elimina a sobrecarga necessária para analisar e compilar um plano de execução para essas consultas repetidas com frequência. O resultado é uma latência menor e ciclos de CPU reduzidos, além de um aplicativo com desempenho mais rápido.
Já vimos vários clientes substituírem consultas que antes dependiam de map-reduce e visualizações pelo N1QL, além de criarem novos aplicativos que exigem consultas mais complexas do que o Couchbase suportava anteriormente.
Outras plataformas compatíveis
O Couchbase Server 4.1 é certificado para ser executado nas plataformas Windows 10 e OSX El Capitan.
Comece agora
O 4.1 GA já chegou, e aqui estão alguns recursos para você começar -
- O que há de novo na documentação do Couchbase Server 4.1
- Baixar o Couchbase Server 4.1
- Documentação do Couchbase Server
- Notas de versão para 4.1
- Drivers ODBC e JDBC do Couchbase com o Conector SQL
Gostaria de agradecer à nossa incrível comunidade por experimentar os bits de visualização do desenvolvedor e por testar e fornecer feedbacke, especificamente, no N1QL. Esperamos que você goste da versão 4.1 e, como sempre, envie-nos seus comentários.
Boa sorte na criação de seus aplicativos com o Couchbase 4.1!