Práticas recomendadas e tutoriais

A plataforma de dados Couchbase em ação: Configuração passo a passo

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 aplicativo criado para a conferência Couchbase Connect Silicon Valley no último outono incorpora consultas N1QL dinâmicas, dispositivos móveis off-line, sensores de IoT, consultas ad hoc com análise, replicação entre centros de dados, failover, correspondência de texto difuso e uma série de outros recursos.

Você pode assistir à demonstração da palestra aqui, saiba mais sobre a arquitetura de alto nível aquie assista a um passo a passo completo sobre como configurar a demonstração aqui.

Nesta postagem, abordarei todas as etapas para configurar e executar a demonstração. Faremos isso por meio da linha de comando. (Algumas etapas exigem o comando cURL ferramenta).

Ao longo do texto, incluo links diretos para vídeos que abordam material semelhante.

Clonar o repositório e definir o diretório de trabalho

Você pode encontrar o código da demonstração em GitHub. Clone o repositório e altere os diretórios para o nível superior.

Configuração do servidor Couchbase

O projeto de demonstração depende de novos recursos previstos para o Couchbase 5.5. No momento em que este texto foi escrito, o 5.5 estava em versão beta. Baixe e instale o Couchbase 5.5 para sua plataforma aqui. Iniciar a execução de um nó.

Preparação

O seguinte pressupõe que você esteja executando em localhost. Você pode se ajustar a um host remoto conforme necessário. Os executáveis de comando estão incluídos em sua instalação do Couchbase. Talvez você queira adicionar o diretório de ferramentas ao seu caminho de comando. Por exemplo, em um Mac, você pode fazer algo assim.

Inicializar o nó

Para inicializar o primeiro nó, precisamos de três etapas.

  • Configuração básica do usuário administrativo, serviços a serem executados e alocações de memória
  • Criação do bucket principal do aplicativo
  • Adição de um usuário separado para controle de acesso baseado em função.

Execute os seguintes comandos para realizar essas etapas.

A maioria dos parâmetros desses comandos deve ser bastante simples de entender.

Os nós do Couchbase Server podem ser dedicados à execução de um subconjunto de todos os serviços disponíveis, parte do que é chamado de Escala multidimensional. Aqui, estamos configurando o nó com todos os serviços necessários para o aplicativo.

As alocações de RAM estão todas definidas em seus valores mínimos. Normalmente, esses valores não são os que você usaria na produção, mas são suficientes para os dados incluídos aqui.

Observe que a especificação do cluster usa um URL personalizado, couchbase://127.0.0.1. Há outras maneiras de especificá-lo, mas essa é a mais fácil. Isso diz aos comandos para se conectarem ao Couchbase Server no computador local.

Depois de executar esses comandos, normalmente levará alguns instantes para aquecer o nó. Dê a ele uma pequena pausa antes de prosseguir com as próximas etapas.

Vídeo relacionado:

Dados

Geramos dados realistas de pacientes sintéticos usando o Síntese (Copyright © 2018 The MITRE Corporation). A Synthea é de código aberto e de uso gratuito. A demonstração completa no Connect 2017 usou centenas de milhões de registros. Um conjunto de dados mais adequado para execução em uma única máquina foi incluído no repositório de código-fonte da demonstração. Para carregá-lo, execute o seguinte.

As opções informam cbimport para esperar um registro por linha e gerar automaticamente a chave do documento a partir do campo id de cada registro.

Vídeo relacionado:

Serviço de eventos

O Serviço de eventos do Couchbase é um dos novos recursos que estão sendo adicionados na versão 5.5. Ele permite que você monitore as alterações no banco de dados e execute funções JavaScript em resposta.

Neste aplicativo, nós o usamos para monitorar os dados de entrada do paciente. Isso nos permite enviar os dados para o aplicativo Web, em vez de depender de sondagem. Isso acontece usando o Recursos do cURL incorporado em N1QL.

Para fazer isso, precisamos configurar uma função JavaScript que observe as alterações no banco de dados. Atualmente, o Eventing Service também precisa de seu próprio bucket de metadados. Configure essa parte com os seguintes comandos.

Aqui está o JavaScript real.

Essa função processa apenas documentos de "Observação". Ela extrai alguns elementos que queremos exibir no console da Web. Em seguida, ela usa um cURL para postar esses dados em um endpoint REST no servidor da Web.

Vídeo relacionado:

Índices de consulta

O aplicativo se baseia em uma série de N1QL consultas. Elas seriam executadas se você definisse um índice primário, mas seriam lentas. Em vez disso, adicione três Índices secundários globais.

Os dados usados no aplicativo seguem o padrão FHIR Especificação. Os registros incluem um tipo de recurso campo. Por exemplo, "Observation" (Observação), "Condition" (Condição) e "Practitioner" (Profissional) são todos tipos de recursos. O primeiro índice otimiza as consultas em relação a esse campo.

No painel, mostramos gráficos de temperaturas. Eles são registrados como documentos de "Observação". O segundo índice extrai as principais informações que nos interessam exibir. (Compare os campos aqui com o que é enviado pelo código Eventing.) Isso agiliza as pesquisas e a recuperação dos dados relevantes, pois tudo o que precisamos está armazenado no índice.

O último índice é criado com base nos registros de "Localização". Isso é usado para nos permitir conectar os pacientes ao hospital mais próximo.

Vídeo relacionado:

Análises

O aplicativo pode examinar alguns dados do histórico de casos. Esse tipo de análise de forma livre é mais adequado para o novo Serviço de análise do Couchbase (atualmente em visualização).

O Analytics Service funciona importando automaticamente os dados dos buckets do banco de dados operacional para seus próprios buckets para fins especiais. Em seguida, você define o que é conhecido como conjuntos de dados shadow. Por fim, você deve emitir uma instrução para conectar o Analytics aos seus dados operacionais. Depois disso, as consultas são feitas usando o SQL++, um superconjunto de SQL semelhante ao N1QL. Você pode ler mais em este tutorial.

Toda a configuração é feita emitindo comandos por meio do mecanismo de consulta do Analytics. Configure as partes necessárias para a demonstração com o seguinte comando.

Aqui estão os comandos reais que estão sendo executados.

Você também pode fazer isso na interface de consulta no console da Web do Couchbase Server, usando as linhas exatamente como mostrado acima.

Vídeo relacionado:

O Couchbase Server Full-Text Search permite a correspondência com reconhecimento de idioma com base nos campos indexados e nos termos de pesquisa de entrada. Ela oferece um grande poder de pesquisa em textos de formato livre. Para este aplicativo, nós o usamos para extrair registros com base exatamente nisso: entradas em documentos FHIR reservados para anotações não estruturadas.

Configure os índices necessários da seguinte forma.

O índice é muito complicado para ser analisado na íntegra aqui. Vou abordar apenas alguns pontos principais.

O mais importante é que estamos fazendo uma análise consciente da linguagem do nota de um documento "Observação", e o campo razão de um documento "Encounter" (Encontro). Esses são os campos em que um prestador de serviços de saúde pode inserir texto de forma livre.

Outras entradas estão lá para extrair dados simplesmente para exibição ou para uso em facetamento. O facetamento permite que o usuário restrinja e refine as pesquisas. É uma maneira poderosa de permitir o detalhamento estruturado dos dados.

Aguarde uma postagem futura sobre o índice e o código FTS para obter mais detalhes.

Vídeo relacionado:

Restrições de acesso ao cURL

N1QL As consultas podem incluir cURL-no estilo de chamadas de rede. Usamos essas chamadas para enviar atualizações para o aplicativo da Web e para obter dados de geomapeamento por meio do Google.

Como essas chamadas se originam de um nó de serviço de consulta, elas têm importantes implicações de segurança. Portanto, por padrão, ela está desativada.

Precisamos autorizar chamadas para o endpoint do Google e para uma API no servidor da Web. Faça isso com o seguinte comando.

Vídeo relacionado:

Gateway de sincronização

Gateway de sincronização fornece a conexão entre o Couchbase Server e o aplicativo móvel. Ele também fornece parte da lógica comercial. Nesse caso, precisamos apenas nos conectar ao Coucbase Server, configurar a autenticação básica e criar um canal para o nosso usuário principal.

Execute o Sync Gateway diretamente da seguinte forma.

Não estamos usando uma importação de documento filtrado aqui, portanto, isso pode demorar um pouco na primeira vez para criar todos os metadados necessários.

Vídeo relacionado:

Cliente e servidor da Web

Instalar Node.js. O servidor requer a versão 7 ou superior. Eu recomendo usar o nvm para gerenciar as versões do Node se você tiver uma instalação existente. (O guia de instalação do nvm pode ser encontrado em aqui.)

Configuração do cliente Web

O código do cliente web está em web/cliente. Sob src/config no código do cliente, atualize serverURI no index.jspara apontar para o seu servidor da Web. Esse é o host em que o servidor web está em execução. Isso pode ser diferente de onde você executa o Couchbase. Por padrão, ele usa localhostPortanto, se você planeja executar tudo em um único computador, pode deixá-lo como está.

Criação do cliente

Altere os diretórios para web/cliente. Instale os pacotes do Node.

Você pode executar em um dos dois modos, desenvolvimento ou produção. O modo de desenvolvimento permite depuração mais fácil e suporta hot reloading, mas é mais complicado de configurar. Esse modo requer a execução de servidores separados, um que serve as páginas do cliente e o outro para expor a API de que precisamos.

Aqui, descreverei apenas a execução no modo de produção. Para o cliente, isso significa apenas executar uma compilação.

Quando terminar, isso copiará os arquivos finais do cliente para um subdiretório do diretório do servidor. O servidor Node extrairá o conteúdo do aplicativo de lá.

Configuração e execução do servidor Web

Altere os diretórios para web/servidor. Instale os pacotes do Node.

O servidor tem alguns parâmetros que precisam ser configurados. Incluí um pacote que os extrai das variáveis de ambiente ou de um arquivo chamado .env no diretório do servidor. Os parâmetros se dividem em dois grupos: os necessários para Notificações por push do Urban Airshipe os necessários para se conectar ao Couchbase.

Os parâmetros são

  • Uma chave de aplicativo Urban Airship
  • Um segredo de mestre do Urban Airship
  • URL do cluster do Couchbase Server
  • O nome de usuário e a senha de um usuário no cluster do CB Server com os privilégios apropriados
  • Um URL para conectar-se a um nó do Couchbase Server Analytics Service.

Esse conjunto de comandos do shell Bash criará um modelo para você.

Como alternativa, você pode simplesmente definir variáveis de ambiente. Por exemplo, você pode deixar de fora os parâmetros do Urban Airship e configurá-los desta forma.

Se você não quiser usar o recurso de notificação por push do Urban Airship, defina as teclas UA como algo arbitrário.

Agora você pode executar o servidor.

Abra um navegador e navegue até localhost:8080. Você deverá ver o console da Web.

Vídeo relacionado:

Aplicativo móvel Android

Aberto celular/android/CBCHealth no Android Studio para criar o aplicativo.

O aplicativo móvel Android usa o Urban Airship para notificações por push. Se quiser incluir esse recurso, você deve preencher a configuração do Urban Airship com suas próprias chaves. Veja mobile/android/CBCHealth/app/src/main/assets/airshipconfig.properties.sample.

Se você não quiser incluir notificações por push, remova a seguinte linha do arquivo AndroidManifest.xml arquivo.

Por padrão, isso cria uma versão do aplicativo para uso com o emulador do Android. Há uma caixa de diálogo de entrada suave para inserir as leituras de temperatura.

Se quiser usar o patch real com um dispositivo real, você precisará fazer duas alterações.

  1. Em mobile/android/CBCHealth/app/build.gradle mudança def parameters = ".EMULATOR" para def parameters = ".DEFAULT" (Veja mobile/android/CBCHealth/app/src/main/java/com/couchbase/mobile/app/launch/Parameters.java para definições dessas entradas)
  2. Em mobile/android/CBCHealth/app/src/main/resources/META-INF/services/com.couchbase.mobile.collectors.Collector mudança com.couchbase.mobile.collectors.temperature.ManualEntry para com.couchbase.mobile.collectors.temperature.RF430_TMPSNS_EVM

Vídeo relacionado:

Concluindo

Há muita coisa acontecendo aqui. O objetivo desta postagem é principalmente colocá-lo em funcionamento com um aplicativo completo que você pode usar para experimentar vários aspectos do Couchbase.

Em breve, você verá mais detalhes sobre o código e a configuração.

Pós-escrito

O Couchbase é de código aberto e grátis para experimentar.
Comece a usar com código de amostra, consultas de exemplo, tutoriais e muito mais.
Encontre outros recursos em nosso portal do desenvolvedor.
Siga-nos no Twitter @CouchbaseDev.
Você pode postar perguntas em nosso fóruns.
Participamos ativamente de Estouro de pilha.
Entre em contato comigo pelo Twitter com perguntas, comentários, tópicos que você gostaria de ver etc. @HodGreeley

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

Autor

Postado por Hod Greeley

Hod Greeley é um defensor dos desenvolvedores da Couchbase e mora no Vale do Silício. Ele tem mais de duas décadas de experiência como engenheiro de software e gerente de engenharia. Trabalhou em diversas áreas de software, incluindo física e química computacional, segurança de computadores e redes, finanças e dispositivos móveis. Antes de ingressar na Couchbase em 2016, Hod liderou as relações com desenvolvedores para dispositivos móveis na Samsung. Hod é Ph.D. em física química pela Universidade de Columbia.

Um comentário

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.