Observação: Esta postagem foi atualizada para refletir a versão de produção da linguagem de definição de dados do Couchbase Analytics.
Não faz muito tempo, escrevi sobre o uso do novo serviço Analytics do Couchbase, às vezes chamado de CBAS, em um aplicativo Node.js. Nesse exemplo, configuramos um conjunto de dados do Analytics com base em um Bucket de amostra e emitimos uma consulta a partir do nosso código.
Embora o Node.js seja uma das minhas tecnologias de desenvolvimento favoritas, ele não é a única que oferece suporte a Couchbase. Java ainda é uma ótima linguagem, portanto, veremos como trabalhar com o Couchbase Analytics em nosso aplicativo.
O Couchbase Analytics está disponível a partir da versão Lançamento do Couchbase Server 5.5.
Preparação de um conjunto de dados para consultas do Couchbase Analytics
Antes de começarmos a consultar nossos dados com o SQL++ e o Analytics, precisamos configurar nosso conjunto de dados. A coisa mais simples a fazer neste exemplo seria usar a opção amostra de viagem Bucket que está disponível no Couchbase Server. Depois que esse bucket for ativado, poderemos preparar conjuntos de dados shadow nesse bucket com comandos simples no console de consulta do Analytics:
1 2 |
criar conjunto de dados companhias aéreas em `viagens-amostra` onde `tipo` = "companhia aérea"; criar conjunto de dados aeroportos em `viagens-amostra` onde `tipo` = "aeroporto"; |
Os dois conjuntos de dados de sombra são muito simples em comparação com o que poderiam ser. Você poderia escrever uma consulta complexa para restringir os dados que cada conjunto de dados conterá, portanto, os exemplos acima são amplos. Basicamente, estamos dizendo: forneça-nos um conjunto de dados para todos os aeroportos e um conjunto de dados para todas as companhias aéreas.
Embora tenhamos criado os conjuntos de dados, eles ainda precisam ser inicializados. A inicialização do Bucket pode ser feita com o seguinte comando:
1 |
conectar link Local; |
Depois que o Bucket do Analytics for inicializado, o serviço do Analytics começará a copiar documentos e a monitorá-los quanto a alterações.
Você pode validar que tudo ocorreu sem problemas executando o seguinte:
1 2 |
selecionar * de companhias aéreas limite 10; |
Novamente, a consulta acima é bastante simples em comparação com o que poderíamos ter criado. O melhor do serviço do Analytics é que suas consultas podem ser significativamente mais complexas sem se preocupar com a criação de índices eficientes. Tudo isso é resolvido para você.
Desenvolvimento de um aplicativo com Java para consultas SQL++
Com alguns conjuntos de dados do Analytics prontos para uso, podemos começar a escrever nosso código Java. Eu pessoalmente uso o Gradle quando se trata de Java. Se você também estiver usando, poderá criar um novo projeto executando o seguinte na linha de comando:
1 |
gradil inicial --tipo java-aplicativo |
O comando acima criará um novo aplicativo Java. Em seguida, queremos instalar o Couchbase Java SDK. Abra o diretório build.gradle e faça com que ele se pareça com o seguinte:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
plugins { id 'java' id "aplicativo } mainClassName = 'Aplicativo' dependências { compilar 'com.google.guava:guava:23.0' compilar grupo: 'com.couchbase.client', nome: 'java-client', versão:'2.5.6' testCompile 'junit:junit:4.12' } repositórios { mentor { url "http://files.couchbase.com/maven2" } mavenCentral() jcentro() } |
Observe que incluímos a biblioteca do cliente, bem como um repositório Maven. Podemos testar se nosso projeto é executado sem erros executando o seguinte comando do Gradle:
1 |
gradil executar |
Supondo que tudo esteja funcionando bem até agora, vamos começar a codificar. Abra a seção src/main/java/App.java e inclua o seguinte. Vamos detalhar isso depois.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
importação com.couchbase.cliente.java.*; importação com.couchbase.cliente.java.análises.AnalyticsQuery; importação com.couchbase.cliente.java.análises.Resultado da consulta analítica; importação com.couchbase.cliente.java.análises.AnalyticsQueryRow; público classe Aplicativo { público estático vazio principal(Cordas[] argumentos) { CouchbaseCluster agrupamento = CouchbaseCluster.criar("couchbase://localhost"); agrupamento.autenticar("demo", "123456"); Balde balde = agrupamento.openBucket("amostra de viagem"); Resultado da consulta analítica resultado = balde.consulta(AnalyticsQuery.simples("SELECT * FROM airports")); para(AnalyticsQueryRow fila : resultado) { Sistema.fora.println(fila.toString()); } } } |
No código acima, estamos primeiro estabelecendo uma conexão com o nosso cluster. Supondo que uma conta tenha sido criada, estamos nos autenticando em nosso cluster usando a conta RBAC que temos em nosso Couchbase Administrative Dashboard.
Embora não estejamos usando um Bucket do Couchbase padrão para este exemplo, temos que abri-lo para inicializar os recursos do aplicativo para o que vem a seguir. Usando o Bucket aberto, podemos executar um AnalyticsQuery
que contém o SQL++. Os resultados dessa consulta são impressos nos logs do console.
Embora esse tenha sido um exemplo simples, acrescentar complexidade não mudará nada do que discutimos.
Conclusão
Você acabou de ver como usar o serviço do Couchbase Analytics com o Java SDK. Para reiterar, o Analytics é uma maneira eficiente de consultar grandes quantidades de dados usando consultas potencialmente complexas sem precisar se preocupar com a indexação, tudo isso com resultados extremamente rápidos.
Para saber mais sobre o desenvolvimento com Java, consulte o Portal do desenvolvedor do Couchbase. Leia mais sobre os outros novos recursos disponíveis no Lançamento do Couchbase Server 5.5.