Criando uma base de dados com DynamoDB usando o AWS console

Introdução

Nesse tutorial será apresentada a criação de uma pequena base de dados com DynamoDB utilizando o AWS console. Além de explicar as principais funções deste serviço, serão apresentados os tipos de tabelas que o DynamoDB oferece, suas diferenças e as vantagens do uso deste serviço.

Basicamente existem 3 formas de acessar o DynamoDB (CLI, API e console). Quando estava pesquisando sobre a criação de uma base de dados com DynamoDB, percebi que existe uma quantidade massiva de conteúdo mostrando como criar as tabelas através do CLI ou usando alguma linguagem de programação (Python, Java e etc). Porém existe uma forma de criar uma base de dados que não é tão divulgada quanto as outras, contudo é bem intuitivo e bastante eficaz principalmente para iniciantes ou para fazer uma depuração dos dados que estão na base. Baseado nisso, venho mostrar uma forma de criar tabelas não tão explorada, mas bastante interessante: o AWS console.

Mas, o que é o DynamoDB?
Este serviço da Amazon Web Services (AWS), é um banco de dados NoSQL (não relacional) que atende aplicações que necessitam de uma maior segurança quanto ao risco de perda dos dados por algum dano à estrutura física, pois todo dado é escrito em 3 zonas distintas. Ou seja, se eventualmente ocorrer algum dano material em uma dessas zonas, sua base de dados vai estar segura nas outras duas zonas.

O DynamoDB suporta modelo de dados tanto de documentos quanto chave-valor. E o melhor de tudo é que é um banco serverless e você não precisa gerenciar nada do servidor.

Por que usar o DynamoDB?

  • É bastante seguro, pois todo dado é salvo em 3 zonas.
  • Extremamente rápido, sua latência é na casa dos milissegundos.
  • Fácil conexão com diferentes aplicações e linguagens.
  • Ambiente de console bastante amigável e intuitivo.
  • Rica documentação. A AWS disponibiliza vários artigos sobre como usar o DynamoDB.

Ferramenta utilizada
Neste tutorial iremos utilizar apenas o DynamoDB com o AWS console, ou seja, a própria interface da ferramenta disponível na plataforma da AWS. Primeiramente, faça o login na AWS e escolha o serviço DynamoDB. Após acessar o ambiente, é hora de colocar a mão na massa.

Passo a passo

Iremos criar uma tabela [Funcionario] que possui um Chave primária [ID] e outras colunas como: [Nome], [Idade], [Cargo] e [Funcao]. Como mencionado, iremos utilizar o AWS console, mas todo o processo também pode ser construído via CLI ou API.
Vamos lá!

  1. Criando a tabela: Se é a primeira vez que você está usando esse serviço, você vai se deparar com a janela abaixo. Então clique no botão Criar Tabela.

2. Em seguida, preencha as informações requeridas. Seguindo este exemplo, preencha o nome da tabela como “Funcionario” e a chave primária como “ID”.

3. Pronto! Nossa tabela já foi criada e você será levado para uma nova janela. Porém ela só tem um único atributo (ID) e nenhum registro. Então agora vamos criar as colunas e preenchê-las com registros. Clique na aba Itens e em seguida no botão Criar Item.

4. Você vai se deparar com janela abaixo em branco e com alguns botões. Mas não se preocupe, vamos partir do mais simples. Adicione um ID, no meu caso eu adicionei o número 1 e em seguida clique no botão + (mais).

5. Agora escolha o tipo de dado que você quer nessa nova coluna. Eu escolhi o tipo String e criei a coluna Cargo.

6. Repita o processo e crie a coluna idade, porém nesta coluna o tipo escolhido deve ser Number. Você deve obter o resultado como na tela abaixo. Crie também a coluna Nome com o tipo String.

6. Agora vamos criar a coluna “Funcao”. Como geralmente um determinado cargo pode desempenhar mais de uma função, para esta coluna vamos usar o tipo list na qual podemos adicionar mais de uma informação de forma ordenada. Basta repetir o processo anterior e escolher o tipo list.

Nomeie a coluna, no meu caso eu dei o nome de “Funcao” e para adicionar as funções basta clicar no símbolo + (mais) ao lado esquerdo do nome “(empty array)”. Escolha o tipo, neste caso String, e adicione a função. Para mais de uma função, basta repetir o processo e adicioná-las. Por fim, clique no botão Salvar e assim você terá sua tabela com as colunas e o primeiro registro.

7. Para popular a tabela basta clicar no botão Criar Item e repetir o processo.

8. Caso deseje editar alguma informação de um registro ou até mesmo excluir ou duplicar um registro, basta selecioná-lo, clicar em Ações e em seguida selecionar a opção desejada.

Uma outra forma de criar as colunas e adicionar os registros é através da criação de um arquivo JSON. Para testar isso basta selecionar qualquer registro existente, clicar no botão Ações e em seguida a opção Editar. No canto superior esquerdo clique no botão Tree, em seguida clique na opção Text e você verá o mesmo comando de inserção porém em texto, como na figura abaixo.

Marcando o checkbox DynamoDB JSON, você vai ter o mesmo comando no formato de JSON, porém usando um esquema específico do DynamoDB que contém os tipos das colunas: “S” para o tipo String, “L” para o tipo list e assim por diante.

9. Após adicionar alguns registros, temos uma tabela como a que você vê abaixo:

10. Em uma tabela com poucos registros como essa é fácil de recuperar as informações mas, imagine uma tabela com centenas de milhares de registros, já seria mais difícil. Para fazer buscas ou filtrar bases de dados no DynamoDB basta clicar na opção Verificar [Tabela]: Funcionários: ID e você verá essa janela:

Se você quiser encontrar um registro através da chave de partição (chave primária), basta inserir o valor dessa chave (que em nosso caso é ID) e você verá o registro. Por exemplo, se inserir o valor 5 veremos o registro referente a ID de valor igual a 5, como mostra a figura abaixo.

Mas se você deseja filtrar através de outra coluna, basta clicar no botão Consulta, em seguida clicar em Verificar e logo após adicionar um filtro clicando na opção Adicionar Filtro. Então basta escrever o nome da coluna (atributo) e o valor que você quer filtrar e clicar em Iniciar Pesquisa. Por exemplo, abaixo vemos o resultado com os registros filtrados pelo “cargo” igual a “zelador”.

Descrição das Abas

Você deve ter percebido que existem várias abas na parte superior da janela e também deve estar se perguntando para que elas servem. Esse tutorial tem caráter introdutório, mas vale a pena conhecer resumidamente o que são cada uma dessas funcionalidades. Em resumo:

  • Visão geral: como o próprio nome já diz, você vai ter uma visão geral das informações atuais da sua base e das tabelas (nome, status, tamanho e etc).
  • Itens: essa aba foi bastante explorada nesse tutorial, ela serve basicamente para criar as colunas, popular a tabela e buscar/filtrar/editar/excluir/duplicar informações.
  • Métricas: você verá gráficos sobre a capacidade da tabela, quantidade de solicitações de leitura e etc.
  • Alertas: criar e editar alertas para ser notificado sobre problemas. Também serve para receber alertas de quando houver tentativa de escrita e/ou leitura do banco (este serviço é opcional).
  • Capacidade: nesta aba é possível modificar a escalabilidade da base de forma a aumentar a capacidade de leitura e gravação, por exemplo. Mas cuidado, pois isso tem um custo e o serviço pode ficar consideravelmente mais caro.
  • Índices: o índice serve para fazer querys mais performáticas em colunas específicas da tabela. Ou seja, você indica a coluna que quer incluir no índice e executa sua consulta no índice ao invés de consultar em todos os atributos.
  • Tabelas globais: essa função oferece um banco de dados totalmente gerenciado, com várias regiões e vários bancos de dados mestres, que oferecem desempenho de leitura e de gravação rápido e local para aplicativos globais em dimensionamento massivo.
  • Backups: como você já pode imaginar, essa função salva uma “cópia” do seu banco e através dessa função você também pode restaurar versões anteriores da sua base.
  • Contributor Insights: serve para identificar as chaves com controle de acesso acessadas mais frequentemente em sua tabela de forma rápida.
  • Gatilhos: essa função é utilizada quando você deseja conectar com o lambda e deseja programar “disparos” específicos, como a modificação de um item da tabela.
  • Controle de acesso: é utilizado quando você está trabalhando com aplicações móveis. Permite que o usuário consiga fazer o login com o google ou facebook, por exemplo. Isso é bem comum com jogos e alguns aplicativos que exigem cadastros.
  • Tags: uma tag é basicamente em um par de chave-valor que diferencia maiúsculas de minúsculas. Serve para você organizar e identificar os principais recursos.

Conclusão

Através deste tutorial conseguimos compreender a facilidade de utilizar uma interface amigável pouco explorada. Lembrando que é possível intercalar com o CLI ou API, ou seja, é possível adicionar/editar/remover registros e colunas via estas outras formas de acesso desta mesma tabela que foi construída via AWS console. Também foi possível perceber que apesar de ser multifuncional e extremamente escalável, trabalhar com DynamoDB não é complicado e é bastante consistente (confiável).

Referências

  1. Toda a documentação da AWS sobre o DynamoDB
  2. Um vídeo bem introdutório do canal Bluesoft Labs, mas que é bastante esclarecedor
  3. Um artigo no medium do Eduardo Rabelo que explica uma visão geral e didática do DynamoDB
  4. Informações sobre preço do serviço do DynamoDB

Este material foi produzido por André Carlos como parte da avaliação da disciplina Projeto Interdisciplinar para Sistemas de Informação IV na UFRPE. Abaixo contatos do autor.
email: andre.csassis@ufrpe.br
github: github.com/andrecarlos26

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s