Servidor Couchbase

Migração de dados do MongoDB para o Couchbase, parte 2

Prolog

O Artigo anterior forneceu detalhes sobre como migrar um conjunto de dados do MongoDB para o Couchbase Server. Este artigo mostra como usar o SDK do Couchbase para acessar os dados por meio de um aplicativo de console Java. Os trechos de código mostram como se conectar ao cluster do Couchbase, realizar operações de chave/valor e executar pesquisas secundárias por meio de consultas N1QL lado a lado com o código correspondente para fazer o mesmo com o SDK Java do Mongo.

Todo o código deste blog está disponível no seguinte repositório Git: mongodb-to-couchbase.

Pré-requisitos

Um cluster do Couchbase contendo o conjunto de dados de acordo com os detalhes no Artigo anterior.

Criar um usuário de aplicativo

Antes que um cliente (aplicativo) possa se conectar ao cluster do Couchbase Server, é necessário definir um usuário do aplicativo que será usado para autenticação pelo cliente. Couchbase Controle de acesso baseado em função permite definir usuários e atribuir a eles as funções apropriadas. Use o console da Web para criar um usuário de aplicativo chamado mflix_client da seguinte forma.

Ir para o Segurança no console da Web e clique em ADICIONAR USUÁRIO:

Configurar o mflix_client usuário da seguinte forma e clique em Adicionar usuário:

  1. Nome de usuário: mflix_client
  2. Senha: senha (ou qualquer senha de sua escolha).
  3. Verificar senha: o mesmo que Senha valor acima.
  4. Funções: Expandir o sample_mflix e selecione Acesso a aplicativos. Usuários com o Função de acesso a aplicativos têm acesso total de leitura e gravação a todos os dados no bucket sample_mflix. A função não permite acesso ao Console da Web do Couchbase: ela se destina a aplicativos, e não a usuários.

No Segurança você verá o novo usuário mflix_client:

Criar índices para consultas N1QL

Índices secundários no Couchbase Server suportam a execução eficiente de consultas (ou pesquisas secundárias) da mesma forma que os índices no MongoDB. Os exemplos de código neste artigo executam Consultas N1QL que usam dois índices que você criará ao executar as consultas N1QL. Vá para a seção Consulta no console da Web:

O primeiro índice está no atributo name de todos os documentos de comentários no bucket sample_mflix. Insira a seguinte instrução N1QL no arquivo Editor de consultas:

Clique em Executar e, após alguns instantes, o criação de índices está completo:

O segundo índice está nos atributos year, imdb.rating e title de todos os documentos de filmes no bucket sample_mflix. Digite a seguinte instrução N1QL no arquivo Editor de consultas:

Clique em Executar e, após alguns instantes, a criação do índice estará concluída:

Ir para o Índices no console da Web para verificar se os índices idx1 & idx2 existem:

Converter chamadas de API do MongoDB em chamadas de API do Couchbase

O código de amostra deste artigo usa os SDKs Java do Couchbase e do MongoDB e é fornecido apenas como um exemplo de como usar algumas das APIs do SDK. Consulte os links a seguir para obter a documentação completa do SDK do Couchbase para seu idioma:

Conectar-se ao servidor Couchbase

Para acessar os recursos do cluster, os clientes devem autenticar passando as credenciais apropriadas para o Couchbase Server. O código de exemplo usa as credenciais de usuário do aplicativo mflix_client criadas acima para autenticação.

O exemplo de código a seguir se conecta ao cluster do Couchbase em execução no nó especificado, obtém uma referência ao bucket mflix_client e uma referência à coleção padrão nesse bucket.

Couchbase

MongoDB

Recuperar um documento por ID

Use o Coleção.get() método para recuperar documentos completos por ID. O exemplo de código a seguir recupera dois documentos da coleção padrão do bucket sample_mflix.

Couchbase

MongoDB

Inserir um novo documento

Use o Collection.insert() método para criar um novo documento com o ID e o conteúdo especificados, se ele ainda não existir. O exemplo de código a seguir insere esse documento na coleção padrão do bucket sample_mflix:

Couchbase

MongoDB

Inserir vários documentos novos

Operações de loteamento permite que você utilize melhor a sua rede e acelere o seu aplicativo, aumentando o rendimento da rede e reduzindo a latência. As operações em lote funcionam da seguinte forma pipelining solicitações pela rede. Quando as solicitações são canalizadas, elas são enviadas em um grande grupo para o cluster. O cluster, por sua vez dutos respostas de volta para o cliente.

O exemplo de código a seguir usa essa abordagem para inserir dois novos documentos no bucket sample_mflix.

Couchbase

MongoDB

Atualizar um documento existente

Use o Collection.replace() método para atualizar um documento existente com o ID especificado somente se ele já existir. O Couchbase suporta operações de subdocumentos que pode ser usado para acessar eficientemente peças de documentos. As operações de subdocumentos podem ser mais rápidas e mais eficientes em termos de rede do que documento completo porque transmitem apenas as seções acessadas do documento pela rede. As operações de documento completo e subdocumento são atômicas, permitindo modificações seguras em documentos com controle de simultaneidade integrado.

O exemplo de código a seguir usa operações de subdocumento para atualizar o atributo de texto de um documento especificado.

Couchbase

MongoDB

Atualizar vários documentos

Além do acesso primário por meio de APIs de chave/valor, você também pode executar consultas N1QL por meio das APIs N1QL. N1QL é uma linguagem declarativa para consulta, transformação e manipulação de dados JSON - pense em SQL para JSON.

O exemplo de código a seguir executa uma consulta N1QL para atualizar os atributos de nome e e-mail de todos os documentos de comentários em que o nome é Anat Chase. Essa consulta usa a função idx1 criado acima.

Couchbase

MongoDB

Atualizar ou inserir um documento

Use o Collection.upsert() método para inserir o documento, caso ele não exista, ou substituí-lo, caso exista. Se não existir um documento com o ID especificado, upsert() criará um novo documento. Se existir um documento com o ID especificado, upsert() atualizará o documento existente. O exemplo de código a seguir atualiza um documento existente no bucket sample_mflix.

Couchbase

MongoDB

Excluir um documento

Use o Collection.remove() método para remover um documento completo com o ID especificado. O exemplo de código a seguir exclui um documento existente do bucket sample_mflix.

Couchbase

MongoDB

Excluir vários documentos

Você também pode usar consultas N1QL para excluir documentos. O exemplo de código a seguir executa uma consulta N1QL para excluir vários documentos do bucket sample_mflix. Todos os documentos de comentários em que o nome é Anita Chase serão excluídos. Essa consulta usa o parâmetro idx1 criado acima.

Couchbase

MongoDB

Acesso a dados com N1QL

O N1QL também pode ser usado para realizar pesquisas secundárias de dados mais complicadas. O exemplo de código a seguir executa uma consulta N1QL de bloqueio para selecionar o título, o ano e o imdb.rating de todos os documentos de filmes em que o ano está entre 1970 e 1979, ordenados pelo imdb.rating. A consulta usa a função idx2 criado acima.

Semelhante a operações reativas de chave/valor em lote, consultas reativas e assíncronas deve ser usado para melhorar o desempenho.

Couchbase

MongoDB

O que vem a seguir

Explore os outros recursos do SDK do Couchbase, incluindo Análises e Pesquisa de texto completo. Aproveite nosso treinamento on-line gratuito, disponível em https://learn.couchbase.com para saber mais sobre o Couchbase.

Para obter informações detalhadas sobre as vantagens arquitetônicas do Couchbase Data Platform em relação ao MongoDB, consulte este documento: Couchbase: Melhor que o MongoDB em todos os sentidos.

Saiba por que outras empresas escolhem o Couchbase em vez do MongoDB:

 

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

Autor

Postado por Douglas Bonser, Engenheiro de Soluções Principal, Couchbase

Douglas Bonser é engenheiro de soluções principal da Couchbase e trabalha com TI e tecnologia desde 1991. Ele mora na região de Dallas/Ft. Worth.

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.