Criar um interpretador Zeppelin para o Couchbase

Comecei a usar o Zeppelin recentemente. Ele é um excelente notebook baseado na Web que permite análises em tempo real. Ele oferece suporte a uma variedade de back-ends por meio do conceito de intérpretes.

O Zeppelin Interpreter é o plug-in que permite que o usuário do Zeppelin use uma linguagem/backend de processamento de dados específico. Por exemplo, para usar o código scala no Zeppelin, você precisa do interpretador spark.

Você já pode fazer algum trabalho relacionado ao Couchbase usando o interpretador Spark e o Conector do Couchbase Spark. Mas eu só quero executar algumas consultas N1QL em pads, como com Spark SQL e DataFrames. Portanto, preciso criar um interpretador N1QL do Couchbase. Fazer isso é fácil e documentadoVocê precisa de apenas uma classe.

Essa classe deve estender a classe abstrata org.apache.zeppelin.interpreter.Interpreter resultando na implementação dos seguintes métodos abstratos: aberto, próximo, interpretar, getFormType, getProgress, conclusão.

Foi basicamente o que fiz aqui:

aberto e próximo são responsáveis, respectivamente, por abrir e fechar a conexão com o Cluster e o Bucket. O método interpret é aquele chamado quando você executa o pad. É nele que você transforma o texto do bloco no que quiser. Para esse interpretador, pegarei uma consulta N1QL, a executarei e transformarei o resultado para que possa ser usado no Zeppelin. Aqui, transformar significa achatar os documentos JSON resultantes, pois tudo precisa estar em um formato de tabela.

Agora posso executar qualquer consulta N1QL que eu quiser. Aqui está um exemplo simples extraído do bucket de amostra de jogos:

Você pode ver um quadro de líderes no canto inferior esquerdo, a lista de jogadores classificada por nível no canto superior esquerdo e a distribuição de itens por jogador também classificada por nível. Você pode ver que não há correlação entre o nível do jogador e o número de itens que ele tem. A consulta subjacente está usando um JOIN, que está disponível nativamente com o N1QL.

Agora, há muitos outros recursos que poderíamos adicionar. Presumo que o primeiro que vem à mente quando você conhece o Zeppelin é o autocompletar. Ele pode ser útil em muitas situações, seja para palavras-chave N1QL ou campos json. Na verdade, temos esse recurso disponível no IU de consulta se você inserir o guia ou Ctrl+Espaço. Outros recursos interessantes poderiam ser o suporte de visualizações, especialmente para consultas geoespaciais, e do Couchbase FTS. Iniciei o desenvolvimento do plug-in em Githube você pode segui-lo no Apache rastreador de problemas. Como sempre, comentários e contribuições são mais do que bem-vindos!

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Laurent Doguin

Laurent é um nerd metaleiro que mora em Paris. Em sua maior parte, ele escreve código em Java e texto estruturado em AsciiDoc, e frequentemente fala sobre dados, programação reativa e outras coisas que estão na moda. Ele também foi Developer Advocate do Clever Cloud e do Nuxeo, onde dedicou seu tempo e experiência para ajudar essas comunidades a crescerem e se fortalecerem. Atualmente, ele dirige as Relações com Desenvolvedores na Couchbase.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.