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 |
CREATE BUCKET travel WITH { "name":"travel-sample" }; |
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 |
CREATE SHADOW DATASET airlines ON travel WHERE `type` = "airline"; CREATE SHADOW DATASET airports ON travel WHERE `type` = "airport"; |
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 |
CONNECT BUCKET travel; |
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 * FROM airports; |
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 init -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 install couchbase --save |
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 = require("couchbase"); var cluster = new Couchbase.Cluster("couchbase://localhost"); cluster.authenticate("travel", "123456"); cluster.enableCbas(["localhost:8095"]); var statement = "SELECT * FROM airports"; var query = Couchbase.CbasQuery.fromString(statement); cluster.query(query, (error, result) => { if(error) { throw error; } console.log(result); }); |
Não há muita coisa acontecendo no código acima, mas vamos detalhá-lo de qualquer forma.
|
1 2 3 |
var cluster = new Couchbase.Cluster("couchbase://localhost"); cluster.authenticate("travel", "123456"); cluster.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 statement = "SELECT * FROM airports"; var query = Couchbase.CbasQuery.fromString(statement); cluster.query(query, (error, result) => { if(error) { throw error; } console.log(result); }); |
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 ONDEsubconsultas 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.