Observação: Esta postagem usa a linguagem de definição de dados do Couchbase Analytics a partir da versão 5.5. Para obter atualizações e informações sobre mudanças significativas em versões mais recentes, consulte Alterações no Couchbase Analytics Service.
O Couchbase Analytics Service, às vezes chamado de CBAS, é excelente para o Couchbase e para suas necessidades de dados NoSQL, pois permite que você crie e execute consultas potencialmente complexas em grandes quantidades de dados de forma eficiente usando um dialeto SQL familiar.
Veremos como usar esse serviço de análise, novo a partir de Couchbase 5.5com o SDK do Node.js para Couchbase.
Para este exemplo, trabalharemos com o amostra de viagem Bucket de exemplo que pode ser instalado opcionalmente com o Couchbase Server. Ele não é considerado um conjunto de dados enorme, mas funcionará com este exemplo.
Configuração de um conjunto de dados do Couchbase Analytics
Dentro do Análises do Painel de controle administrativo do Couchbase, execute a seguinte consulta:
1 |
CRIAR BUCKET viagens COM { "name" (nome):"amostra de viagem" }; |
A consulta acima criará um arquivo viagens Balde do Analytics baseado no Couchbase amostra de viagem Balde.
Com o bucket criado, podemos criar um conjunto de dados sombra para trabalhar. Execute as seguintes consultas:
1 2 |
CRIAR SOMBRA CONJUNTO DE DADOS companhias aéreas ON viagens ONDE `tipo` = "companhia aérea"; CRIAR SOMBRA CONJUNTO DE DADOS aeroportos ON viagens ONDE `tipo` = "aeroporto"; |
As consultas acima criarão dois conjuntos de dados shadow com base nos dados existentes no amostra de viagem balde. Enquanto os conjuntos de dados shadow são criados, eles precisam ser inicializados:
1 |
CONECTAR BUCKET viagens; |
Depois de inicializado, o serviço Analytics começará a fazer sua cópia dos documentos e a monitorar ativamente as alterações. Podemos testar os dados executando uma consulta como a seguinte:
1 |
SELECT * DE aeroportos; |
A consulta acima encontrará todos os documentos do nosso conjunto de dados shadow. Em outras palavras, obteremos todos os documentos que têm um tipo
propriedade de companhia aérea
.
Tudo isso é ótimo, mas, até o momento, só usamos o painel administrativo do Couchbase. Queremos poder executar consultas em nosso conjunto de dados do Analytics a partir do Node.js.
Consulta ao CBAS a partir de um aplicativo Node.js
Supondo que você tenha o Node.js instalado, crie um novo diretório de projeto e execute o seguinte comando:
1 |
npm inicial -y |
O comando acima criará um novo package.json no caminho de sua CLI. Para nos comunicarmos com o Couchbase, precisaremos do SDK. Ele pode ser instalado executando o seguinte na CLI:
1 |
npm instalar couchbase --salvar |
Agora podemos começar a desenvolver nosso aplicativo. Criar um app.js em seu projeto com o seguinte:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
const Couchbase = exigir("couchbase"); var agrupamento = novo Couchbase.Aglomerado("couchbase://localhost"); agrupamento.autenticar("viagem", "123456"); agrupamento.enableCbas(["localhost:8095"]); var declaração = "SELECT * FROM airports"; var consulta = Couchbase.CbasQuery.fromString(declaração); agrupamento.consulta(consulta, (erro, resultado) => { se(erro) { lançar erro; } console.registro(resultado); }); |
Não há muita coisa acontecendo no código acima, mas vamos detalhá-lo de qualquer forma.
1 2 3 |
var agrupamento = novo Couchbase.Aglomerado("couchbase://localhost"); agrupamento.autenticar("viagem", "123456"); agrupamento.enableCbas(["localhost:8095"]); |
Antes de começarmos a executar as consultas, precisamos nos conectar ao cluster e ativar as interações com o serviço do Analytics. Também precisamos nos autenticar no cluster com um usuário que tenha permissão para usar o Analytics. Neste exemplo, o Analytics está ativo no nó ao qual estamos nos conectando.
Observe que não estamos nos conectando a um Bucket. Se quiséssemos usar o N1QL, abriríamos um Bucket, mas não estamos usando o N1QL, mesmo que pareça semelhante.
1 2 3 4 5 6 7 8 9 |
var declaração = "SELECT * FROM airports"; var consulta = Couchbase.CbasQuery.fromString(declaração); agrupamento.consulta(consulta, (erro, resultado) => { se(erro) { lançar erro; } console.registro(resultado); }); |
Usando uma consulta simples do Analytics, podemos analisá-la e executá-la. Os resultados da consulta serão retornados e impressos nos registros.
Não é tão ruim, certo?
Como o Analytics usa SQL++, você pode tornar suas consultas muito mais complicadas usando outros operadores, como ONDE
subconsultas e operações em coleções.
Conclusão
Você acabou de ver como criar um aplicativo Node.js simples que usa o Couchbase Analytics Service (CBAS) em vez do N1QL. O Analytics e o SQL++ não substituem o N1QL, mas são um complemento para conjuntos de dados muito maiores ou complicados, enquanto o N1QL se destaca em conjuntos de dados menores.
Para saber mais sobre o Analytics ou o SDK do Couchbase Node.js, visite o site Portal do desenvolvedor do Couchbase. Saiba mais sobre outros novos recursos disponíveis no Lançamento do Couchbase Server 5.5.