DEV Community

Cover image for Mudando de RDBMS para DynamoDB em 20 etapas
Eduardo Rabelo
Eduardo Rabelo

Posted on

Mudando de RDBMS para DynamoDB em 20 etapas

Eu postei um tópico no Twitter com algumas reflexões sobre como mudar de RDBMS para o DynamoDB. Algumas pessoas me pediram para transformá-lo em um artigo de blog para facilitar o acompanhamento. Então aqui está... com alguns passos de bônus no final. Bom proveito! 😁

https://twitter.com/jeremy_daly/status/1137002244157710336

Eu tenho passado muito tempo ultimamente com o DynamoDB em meus aplicativos serverless, então pensei em compartilhar meu guia infalível para migrar de RDBMS para DynamoDB. Então aqui está:

Etapa 01

Aceite o fato de que a Amazon.com pode acomodar 90% do fluxo de trabalho do site/sistema de varejo em DynamoDB, então você provavelmente também pode. 🤔

Etapa 02

Crie um Modelo de Relacionamento de Entidade, assim como você faria se estivesse projetando um banco de dados relacional tradicional. 👩‍💻

Etapa 03

Crie uma lista de todos os seus padrões de acesso. Se "pesquisar" for um padrão de acesso, não se preocupe, nós lidaremos com isso na etapa 17. 😉

Etapa 04

Reduza os padrões de acesso para o mínimo exigido pelos usuários do aplicativo. Análise de dados e as tarefas administrativas, como analytics, agregações, acionadores de tarefas, etc., são importantes, mas provavelmente não são necessárias para o usuário final interagir com seu aplicativo em tempo real. 🚫📊

Etapa 05

Determine se os padrões de acesso do usuário exigem consultas ad hoc que precisem reformular os dados. Provavelmente a resposta é não. No entanto, se você estiver criando um aplicativo OLAP, o NoSQL não é uma boa escolha. Dê um tapinha nas suas costas por tentar e use outra tecnologia. 🤷‍♂️

Etapa 06

Coloque a cabeça no micro-ondas por 3 segundos, ou o tempo que for necessário, para esquecer o que normalização dos dados e a terceira forma normal são. 🤤

Etapa 07

Assista a apresentação Advanced Design Patterns for Amazon DynamoDB (DAT403-R) de Rick Houlihan para o Amazon DynamoDB na AWS re:Invent 2017. 😯

https://www.youtube.com/watch?v=jzeKPKpucS0

Etapa 08

Assista a apresentação Amazon DynamoDB Deep Dive: Advanced Design Patterns for DynamoDB (DAT401) de Rick Houlihanpara o Amazon DynamoDB na AWS re:Invent 2018. 😮

https://www.youtube.com/watch?v=HaEPXoXVf2k

Etapa 09

Limpe todas as minúsculas partes do seu cérebro espalhadas pela sala, depois reagrupe-as e assista tudo novamente, desta vez a meia velocidade. Tome notas. 🤯

Etapa 10

Leia o guia ‌Best Practices for DynamoDB no site da AWS. E em seguida, leia-o de novo. 🤓

Etapa 11

Planeje uma tabela DynamoDB que usa índices sobrecarregados para armazenar todas as suas entidades usando Composite Sort Keys (quando necessário), adicionando LSIs e GSIs adicionais (novamente, quando necessário) para acomodar os padrões de acesso acima mencionados. 😳(isso fará mais sentido quando você passar pelas etapas anteriores).

Etapa 12

Escreva algumas consultas de exemplo e teste seus padrões de acesso em relação ao design de sua tabela. Perceba que você errou completamente na primeira vez, respire, tome uma cerveja (ou duas) e volte para a Etapa 07. 😞🍺

Etapa 13

Teste seus padrões de acesso em relação ao seu novo design de tabela. Itere. Teste novamente. Itere e teste novamente. 🤨

Etapa 14

Repita a Etapa 13 até que você esteja 95% confiante de que você tem o design da sua tabela corretamente. 😀

Etapa 15

Você fez isso (bem, a primeira parte de qualquer maneira)! 🎉 Celebre sua conquista (talvez tenha outra cerveja) e conecte os padrões de acesso do DynamoDB ao AppSync ou crie uma API com o API Gateway. Lembre-se de usar a Transactions API quando necessário. 😎

Etapa 16

Teste, teste e teste novamente. E quando terminar de testar, teste novamente. E certifique-se de escrever alguns testes para que você possa testá-lo automaticamente, de novo e de novo. ✅

Etapa 17

Ative o DynamoDB Streams e use-os para gerar/atualizar agregações e replicar dados para relatórios, indexação de pesquisa e/ou outros requisitos do aplicativo. (As funções do Lambda são ótimas para stored procedures, por exemplo) 🚀

Etapa 18

Teste seus DynamoDB Streams NA NUVEM para garantir que os dados estejam fluindo corretamente e que os recursos alvos estão sendo preenchidos/atualizados corretamente. Escreva alguns testes para automatizar isso. ☁️

Etapa 19

Cruze os dedos, publique na produção. 🤞

Etapa 20

Lucre! 💰


Isso foi obviamente um pouco simplificado, mas espero que você comece sua jornada para descobrir o poder do DynamoDB. Se não conseguir no começo, basta seguir em frente. Ele acabará "clicando" (a menos que você tenha deixado a cabeça no microondas por muito tempo). Boa sorte! 👍

Etapa Bonus

Houve uma tonelada de ótimos comentários no Twitter com sugestões para material de aprendizado adicional do DynamoDB. Se você quiser ir ainda mais fundo no DynamoDB, aqui estão alguns recursos adicionais que farão seu cérebro queimar ainda mais. 🔥

https://www.youtube.com/watch?v=Rmf8mrJ3X2s

https://www.youtube.com/watch?v=KlhS7hSnFYs

Você conhece mais recursos incríveis do DynamoDB? Por favor, sinta-se livre para me enviar no Twitter!

Créditos ⭐️

Top comments (0)