Design de Aplicativos

Modelagem de dados para Couchbase com erwin DM NoSQL

Dada a arquitetura e o design dos sistemas NoSQL, especialmente os bancos de dados da família de documentos como o Couchbase, que não impõem esquema na gravação, a modelagem de dados para NoSQL pode frequentemente ser desafiadora ao migrar de sistemas relacionais para NoSQL ou ao construir aplicativos do zero usando NoSQL. De fato, a modelagem de dados costuma ser um fator crítico de sucesso para implementações do Couchbase, e otimizar progressivamente os modelos de dados pode ser um enorme impulsionador de desempenho de aplicativos, dada a natureza em rápida evolução dos aplicativos de big data.

Tradicionalmente, a modelagem de dados para sistemas relacionais era a ciência de identificar os objetos de dados, seus relacionamentos entre si e sua representação precisa, o que fundamentava um bom design de banco de dados. A modelagem para NoSQL, por outro lado, explora padrões de acesso específicos da aplicação, por exemplo: “quais são os tipos de perguntas que os usuários gostariam de responder com esses dados?”. Isso, por sua vez, dita o tipo de consultas que precisam ser suportadas e foca em como estruturar melhor os dados para a otimização de desempenho. Essas considerações nos fazem mudar nossa abordagem de modelagem de dados das restrições tradicionais de RDBMS (esquema na gravação) para a modelagem de dados voltada para a aplicação específica (esquema na leitura).

Outro diferencial entre sistemas RDBMS e NoSQL que impacta os paradigmas de modelagem é o conceito de normalização e desnormalização de dados. Enquanto os sistemas RDBMS enfatizavam a normalização de dados para entender relacionamentos estritos e atender a limitações rígidas de armazenamento antigamente, os sistemas NoSQL flexíveis tendem à desnormalização de dados, uma vez que os dados são distribuídos em clusters e a redundância pode facilitar o dimensionamento de leituras de dados. Muitas vezes, o modelo de dados ideal é uma combinação de ambas as abordagens, dependendo do caso de uso.

Portanto, a modelagem de dados precisa continua sendo uma disciplina fundamental para o sucesso com bancos de dados NoSQL.

Agora, vamos mergulhar na modelagem usando o erwin DM NoSQL. O erwin DM NoSQL oferece três principais funcionalidades:

Engenharia direta

O processo de conversão de seus modelos relacionais em modelos JSON compatíveis com o Couchbase.

Transformação

Capacidade de escolher a forma de transformação desejada (normalizada, desnormalizada, personalizada) para seus modelos.

Engenharia reversa

Capacidade de importar o esquema de dados de produção do Couchbase para o ambiente erwin.

Este é o guia passo a passo para modelar dados para a Plataforma de Dados Couchbase usando o erwin DM NoSQL:

Configuração:

Passo 1:

Solicitação de conta aqui e faça login no erwin DM NoSQL usando suas credenciais.

Passo 2:

Importe um modelo de Entidade-Relacionamento gerado no erwin DM ou em qualquer outra ferramenta de modelagem relacional no formato “XML” usando a opção de importação para o erwin DM NoSQL.

Passo 3:

Visualize seus diagramas ER no ambiente erwin.

Transformação

Passo 1:

Escolha transformar os modelos usando transformação normalizada, desnormalizada ou personalizada.

Passo 2:

Transformação normalizada:

Normalização é tipicamente o processo de organização de dados no banco de dados, criando tabelas separadas e estabelecendo relacionamentos para remover a duplicação. Os objetos ou entidades neste processo geralmente são referenciados. Ao criar modelos JSON, as tabelas referenciadas normalmente seriam documentos separados.

b. Transformação desnormalizada:

Nesse processo, os objetos de dados geralmente são embutidos. Como objetos semelhantes são embutidos em muitos documentos, essa organização apresenta redundância. A desnormalização é frequentemente encontrada para melhorar significativamente o desempenho, já que não precisamos de junções para buscar os dados necessários. Isso é frequentemente adotado em sistemas NoSQL. Nesta ferramenta, o modelo transformado gerado usando a desnormalização é uma combinação de objetos embutidos e referenciados.

Na fig. acima, pedido de compra e item do pedido são objetos embutidos, enquanto Editora, Nome da loja e Devolução de livro são objetos referenciados.

Transformação personalizada:

O erwin DM NoSQL normalmente analisa a organização dos dados usando o seu diagrama E-R e transforma seus modelos em modelos JSON compatíveis com o Couchbase com base em certas regras. No entanto, como você, sendo um desenvolvedor ou proprietário de aplicativo, é quem melhor conhece sua aplicação, oferecemos a capacidade de personalizar seus modelos. Você tem a opção de referenciar determinados objetos embutidos e fornecemos algumas diretrizes dentro da ferramenta para ajudar você a fazer a escolha certa.

Nota: Você pode clonar qualquer um desses modelos e ajustá-los adicionando ou removendo atributos, propriedades, etc.,

Engenharia direta

Passo 1:

Baixe o modelo criado no seu sistema local.

Passo 2:

Configure clusters do Couchbase na AWS e acesse o console web usando a porta 8091


Passo 3:

Use o secure copy e copie o arquivo baixado da sua máquina local para a sua instância EC2 do Couchbase.

Sintaxe (OSX): scp -i path to key -r path to directory ec2-user@hostname:~

Ex:  scp -i /Users/chaitra.ramarao/Downloads/US_East.pem -r /Users/chaitra.ramarao/Downloads/Cl_De_EMOVIES r9.64_20180329185059  ec2-user@ec2-54-152-108-80.compute-1.amazonaws.com:~

Passo 4:

Faça login na sua instância da AWS usando ssh

Sintaxe (OSX):ssh -i caminho/para/chave.pair ec2-user@ip-remoto

Ex: ssh -i /Users/chaitra.ramarao/Downloads/US_East.pem ec2-user@ec2-34-203-230-73.compute-1.amazonaws.com

Passo 5:

Verifique se os arquivos foram copiados listando-os com “ls”

Passo 6:

Navegue para o arquivo bulkInsert.sh

Ex:Cd /De_movies../scripts/5.x para localizar o bulkInsert.sh

Passo 7:

Tornar o arquivo bulkInsert executável e definir o caminho

chmod +x bulkInsert.sh

PATH=/opt/couchbase/bin:$PATH

Passo 8:

Execute o script bulkInsert com a seguinte sintaxe

./bulkInsert.sh    

Ex : ./bulkInsert.sh localhost 8091 Administrator senha sample

Você pode ver os dados de exemplo modelados carregados no Couchbase com o nome do bucket especificado por você.

O script normalmente cria modelos com dados inúteis, podendo ser modificado pelos desenvolvedores de aplicativos para criar modelos para amostras de dados reais e usá-los para implantar no Couchbase usando os scripts de implantação fornecidos.

Você também pode consultar os dados após carregados no Couchbase usando N1QL (SQL para JSON) e testar a precisão e eficiência de seus modelos usando o Query Workbench e o planejador de consultas.

Engenharia reversa:

Passo 1:

Configure a conexão com o Couchbase usando o gerenciador de conexões conforme mostrado abaixo:

Passo 2:

Fazer engenharia reversa do Couchbase

Passo 3:

Importação de Esquema de dados de produção do Couchbase

Passo 4:

Visualizar os modelos do Couchbase obtidos por engenharia reversa no ambiente erwin  

Continue a ajustar seus modelos periodicamente para garantir que eles estejam otimizados para fornecer o melhor desempenho.

A modelagem de dados usando o erwin ajudará você a acelerar o seu tempo de lançamento no mercado, fornecerá a interface para visualizar seu processo de modelagem e melhorará enormemente a precisão dos seus modelos. Modelos de dados melhores garantem melhor desempenho e maior sucesso com o Couchbase.

Compartilhe seus comentários aqui ou entre em contato conosco em forums.couchbase.com

Compartilhe este artigo

Autor

Chaitra Ramarao é Gerente Sênior de Produtos na Couchbase, empresa de banco de dados NoSQL, liderando ferramentas de banco de dados, replicação entre datacenters e integrações de parceiros. Seus trabalhos anteriores incluem gerenciamento de produtos de análise de dados na Kaiser Permanente e desenvolvimento de software na Hewlett Packard. Ela é bacharel em ECE e possui mestrado pela Carnegie Mellon em Engenharia e Gestão de Inovação Tecnológica.

Deixe um comentário

Pronto para começar com o Couchbase Capella?

Começar a construir

Confira nosso portal para desenvolvedores para explorar o NoSQL, navegar por recursos e começar com tutoriais.

Use o Capella free

Coloque a mão na massa com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

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