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.

A visualização de dados e a geração de relatórios podem ajudar os tomadores de decisão a identificar padrões e conceitos na análise. O Couchbase Analytics (atualmente em pré-visualização para desenvolvedores) oferece uma Experiência noETL (vídeo) para analisar dados com consultas avançadas. Conhecer é uma ferramenta de visualização e geração de relatórios baseada na nuvem que se integra ao Couchbase. Essas ferramentas podem trabalhar juntas para oferecer uma visualização de dados fácil e eficiente.

Como escrevi em meu blog anteriormente, o O Cincinnati Reds (um cliente do Couchbase) está usando o Apache NiFi para processar dados de sua empresa em um cluster do Couchbase. Um dos muitos casos de uso que eles estão explorando com o Couchbase é a criação de um painel em tempo real. Esse painel, entre outras coisas, mostraria uma visualização de dados do estádio depois que os portões fossem abertos e os ingressos começassem a ser escaneados.

Essa visualização de dados em tempo real pode ajudar a mostrar padrões no estádio e dar aos Reds uma ideia de quando os portadores de ingressos estão aparecendo e para onde estão indo.

Nesta postagem do blog, mostrarei um exemplo do Couchbase e do Knowi em ação para fornecer uma visualização de dados do Great American Ball Park (onde os Cincinnati Reds jogam seus jogos em casa). O que estou mostrando nesta postagem não é exatamente o que os Reds estão usando: ele foi simplificado.

Dados no Couchbase

Os Reds têm um sofisticado sistema de mapeamento que permite associar uma seção, uma fileira e um número de assento a um ponto específico em um gráfico de mapa. No entanto, para esta postagem do blog, usarei a latitude e a longitude com o Google Maps.

Os dados com os quais estou trabalhando são um documento simplificado que consiste no nome do titular do bilhete, coordenadas geográficas e um tipo campo. Um exemplo de documento:

Normalmente, eu esperaria que os dados de mapeamento fossem separados e, possivelmente, unidos em tempo real com uma verificação de tíquete. Mas vamos supor que isso já tenha sido feito. Temos tudo o que precisamos em um único documento.

Criei um compartimento chamado "tickets" que conterá documentos como o acima. Na produção, os dados fluirão continuamente para esse compartimento (provavelmente por meio do NiFi) durante um jogo de beisebol. Na verdade, recentemente participei de um jogo e ajudei a testar esse sistema enquanto passava pelos portões e recebia a leitura do meu ingresso durante os horários de pico em um jogo de fim de semana.

Análise do Couchbase

A Knowi poderia se conectar diretamente a esse bucket e começar a gerar relatórios sobre ele. No entanto, talvez seja melhor usar o Couchbase Analytics nessa situação. Usar o Couchbase Analytics significa que não precisamos nos preocupar em escrever índices para consultas mais complexas e também significa que reduziremos qualquer impacto no desempenho do bucket operacional.

Para começar a usar o Couchbase Analytics, verifique se você ativou o serviço Analytics quando instalou o Couchbase. O serviço de análise deve aparecer na guia "Servidores":

Analytics service enabled on Couchbase

Em seguida, vá para a guia "Analytics". Você verá uma tela que se parece muito com o N1QL Query Workbench normal.

Configuração de análises

Há três etapas simples para começar.

Primeiro, crie um bucket de análise. Esse bucket corresponderá a um bucket normal do Couchbase. Basta digitar um comando como este: CREATE BUCKET ticketsAnalytics WITH {"name": "tickets"};

Em seguida, defina um conjunto de dados dentro desse bucket. Você pode especificar quais documentos devem ir para esse conjunto de dados usando um ONDE cláusula. Exemplo:

Isso é uma "sombra": uma cópia em tempo real de (um subconjunto de) um bucket do Couchbase.

Por fim, inicie o sombreamento com mais um comando: CONNECT BUCKET ticketsAnalytics;

Nesse ponto, os documentos do ticketScan do bucket "tickets" do Couchbase começarão a ser copiados para o bucket do Analytics "ticketsAnalytics".

Isso começará a acontecer imediatamente. Você pode executar uma consulta como select * from ticketScans; para ver os dados no Analytics.

Você também deve ver uma representação visual dessa configuração em "Bucket Insights" no canto superior direito da página.

Bucket insights for Analytics

Observe que, no momento, o Analytics ainda está na versão prévia para desenvolvedores, e as etapas acima podem ser alteradas após o lançamento geral (atualmente planejado para o final deste ano).

Configuração do agente Knowi (opcional)

Você pode criar uma avaliação gratuita de 14 dias do Conhecer.

O Knowi é baseado na nuvem, portanto, você não precisa necessariamente fazer download de nada. Você pode criar relatórios e visualizações diretamente em seu navegador.

No entanto, se o seu cluster do Couchbase não estiver exposto à Internet ou se você não tiver um túnel VPN configurado, ainda poderá usar o Knowi executando o Knowi Agent em sua rede. Essa é uma maneira fácil de a Knowi obter acesso aos seus dados. Meu cluster local do Couchbase não está exposto à Internet, então simplesmente baixei o Knowi Agent:

Download Cloud9 Agent for Knowi

Você precisará criar um arquivo JSON de fonte de dados na pasta /config. Isso é muito fácil de fazer, pois há vários arquivos de exemplo na pasta /example. Para o Couchbase, dê uma olhada em datasource_example_couchbase.json. Para meu cluster local, criei um arquivo com este conteúdo:

Isso pressupõe que você criou um usuário chamado "matt" no Couchbase com permissão para usar o Analytics.

O Agent vem com alguns scripts de shell e arquivos em lote úteis. Ele pode ser executado como um serviço, ou você pode simplesmente fazer o que eu fiz e executar run.bat para iniciar o agente. Nesse momento, o Knowi poderá se comunicar com seu cluster do Couchbase por meio do agente.

Configuração de uma fonte de dados no Knowi

Agora, volte para a interface do usuário do Knowi.com. Crie uma nova fonte de dados. Você pode dar a ele o nome que quiser. Se estiver usando o agente como eu, defina "localhost" como a fonte de dados. Também especifiquei um nome de bucket como "tickets". Inseri as credenciais do usuário. Para o Analytics, você precisa especificar um "Dataverse". Imediatamente, já existe um dataverse "Default" disponível.

Por fim, marque a caixa "Internal Datasource" (Fonte de dados interna). Se o agente estiver funcionando corretamente, você verá um menu suspenso e poderá selecionar o agente. Se não estiver usando um agente, não marque essa caixa.

New Couchbase

Nesse ponto, você pode usar essa fonte de dados para criar um ou mais feeds de dados da Knowi.

Feeds de dados da Knowi

Um feed de dados/conjunto de dados no Knowi é análogo a uma consulta. Aqui está o feed de dados (muito simples) que criei para obter as informações do ticket do Couchbase.

Knowi data feed

Observe que o Knowi oferece suporte nativo a N1QL. Todo o poder da linguagem N1QL do Couchbase está disponível para você ao criar um feed de dados. Minha consulta é muito simples, apenas para demonstração.

Widget Knowi

Por fim, posso criar um widget Knowi. Widgets são relatórios individuais ou visualizações de dados. Há uma variedade de widgets disponíveis, e você pode até mesmo personalizar e combinar widgets. Vou manter a simplicidade e criar um único widget. Clique em "New Widget+" e selecione o conjunto de dados que criou na seção anterior.

Em seguida, clique na engrenagem "settings" (configurações) ao lado do widget. Há muitas opções para geração de relatórios e visualização de dados. Definitivamente, verifique-as e faça experiências com elas. Estou indo direto para "Geo-Heatmaps".

Geo heatmaps in Knowi

Escolhi o centro do Great American Ball Park para a latitude central e a longitude central (39.097208,-84.506530) e um nível de zoom alto. O raio representa o tamanho que você deseja que os pontos no mapa de calor tenham. Os meus correspondem a assentos em um estádio de beisebol, portanto, inseri um valor relativamente pequeno de 5.

É isso aí. Salve o widget. Clique no ícone do globo ocular para ver uma visualização. Aqui está uma visualização com apenas 6 tickets no total em meu bucket do Couchbase.

Geo heatmap data visualization preview

Painel de visualização de dados

Por fim, vou criar um painel com essa visualização de dados. Acesse o painel do Knowi, clique em "Add Widget to Dashboard" (Adicionar widget ao painel) e selecione o widget. O widget pode então ser redimensionado e movido. Você pode adicionar outros widgets para obter um painel mais completo. É nisso que os Reds estão trabalhando: apenas ver uma visualização por si só não é suficiente. Eles também querem gerar relatórios sobre as tendências gerais: quais seções estão mais cheias, quantos ingressos foram escaneados em um período de tempo etc.

Eu criei um Programa .NET (código-fonte disponível aqui) para começar a adicionar tickets aleatoriamente. Eu queria ver uma atualização em tempo real dessa visualização de dados. Meu exemplo não é totalmente preciso: Não quis gastar tempo mapeando cada assento de acordo com a latitude e a longitude. Mas é próximo o suficiente para você ter uma ideia.

Realtime data visualization

(Esse clipe representa um período de 5 minutos de execução do meu programa de amostra, compactado em 30 segundos).

A distribuição é aleatória e está dentro de duas áreas arbitrárias em forma de caixa. Esta é a parte em que o Cincinnati Reds tem mais experiência em mapear seus dados para um mapa de assentos mais eficiente, mas espero que você tenha entendido a ideia.

Observe que, para que uma visualização de dados seja em tempo real (como acima), você não pode usar o agente. Tive que dar acesso direto ao Knowi para que uma caixa de seleção "Direct Query" fosse exibida quando eu estava criando um feed de dados (então usei Couchbase no Microsoft Azure).

Essa visualização específica também pode ser útil para um mapa de interrupções em tempo real para uma empresa de serviços públicos. Você poderia criar um painel para relatar interrupções de internet, energia, gás ou telefone em um mapa.

O que vem a seguir?

Neste post, você viu como foi fácil usar o Knowi e o Couchbase Analytics para começar a criar visualizações de dados em tempo real.

O Couchbase fornece a flexibilidade do N1QL e o desempenho de uma arquitetura que prioriza a memória, e o Knowi fornece os recursos de visualização de dados e de painel.

Lembre-se de que a Knowi oferece uma avaliação gratuita. Trabalhei com a Knowi nesse projeto Reds por pouco tempo, mas achei o suporte útil e ágil e a documentação completa e útil.

Algumas próximas etapas para você:

Autor

Postado por Matthew Groves

Matthew D. Groves é um cara que adora programar. Não importa se é C#, jQuery ou PHP: ele enviará solicitações de pull para qualquer coisa. Ele tem programado profissionalmente desde que escreveu um aplicativo de ponto de venda QuickBASIC para a pizzaria de seus pais nos anos 90. Atualmente, ele trabalha como gerente sênior de marketing de produtos da Couchbase. Seu tempo livre é passado com a família, assistindo aos Reds e participando da comunidade de desenvolvedores. Ele é autor de AOP in .NET, Pro Microservices in .NET, autor da Pluralsight e Microsoft MVP.

Deixar uma resposta