AWS MySQL RDS vs AWS DynamoDB [fechado]

tenho usado o MySQL há algum tempo e estou confortável com a sua estrutura & consultas SQL, etc.

Estou a construir um novo sistema na AWS e tenho estado a ver o DynamoDB. Actualmente, só sei um pouco sobre isso.

Um é melhor do que o outro?

Qual é a vantagem do DynamoDB?

como é a transição de consultas MySQL etc para este DB de estilo plano?

Author: Cœur, 2012-12-20

4 answers

Pode ler a explicação da AWS sobre isso Aqui .

Em resumo, se você tem principalmente procurar consultas( e não juntar consultas), DynamoDB (e outros NoSQL DB) é melhor. Se necessitar de manipular muitos dados , será limitado ao usar o MySQL (e outros RDBMS).

Não pode reutilizar as suas consultas MySQL nem o seu esquema de dados, mas se gastar o esforço para aprender NoSQL, irá adicionar uma ferramenta importante à sua caixa de ferramentas. Há muitos casos em que o DynamoDB é dar a solução mais simples.

 40
Author: Guy, 2012-12-20 15:25:17

Realmente o DynamoDB e o MySQL são maçãs e laranjas. DynamoDB é uma camada de armazenamento NoSQL enquanto MySQL é usado para armazenamento relacional. Você deve escolher o que usar com base nas necessidades reais de sua aplicação. Na verdade, algumas aplicações podem ser bem servidas usando ambos.

Se, por exemplo, estiver a armazenar dados que não se prestam bem a um esquema relacional (estruturas em árvore, representações JSON sem esquema, etc.) que podem ser olhadas contra uma única chave ou um Combinação chave / intervalo em seguida, DynamoDB (ou alguma outra loja NoSQL) provavelmente seria a sua melhor aposta.

Se você tem um esquema bem definido para seus dados que podem se encaixar bem em uma estrutura relacional e você precisa da flexibilidade para consultar os dados de uma série de maneiras diferentes (adicionando índices conforme necessário, é claro), então RDS pode ser uma solução melhor.

O principal benefício para usar o DynamoDB como uma loja NoSQL é que você tem garantia de leitura/escrita em qualquer nível que você precisa sem ter que se preocupar em Gerenciar um armazenamento de dados agrupados. Assim, se a sua aplicação necessitar de 1000 leituras / escritas por segundo, pode apenas fornecer a sua tabela DynamoDB para esse nível de rendimento e não ter realmente de se preocupar com a infra-estrutura subjacente.

O RDS tem muito do mesmo benefício de não ter de se preocupar com a infra-estrutura em si, no entanto, se você precisar de fazer um número significativo de escritas ao ponto em que o maior tamanho da instância não vai mais manter acima, você fica sem opções (você pode escalar horizontalmente para ler usando réplicas de leitura).

Nota actualizada: o DynamoDb suporta agora a indexação secundária global, pelo que tem agora a capacidade de efectuar pesquisas optimizadas em campos de dados que não o hash ou a combinação de teclas hash e range.

 175
Author: Mike Brant, 2014-03-25 18:35:38
Acabámos de migrar todas as nossas mesas DynamoDB para o RDS MySQL.

Embora usar o DynamoDB para tarefas específicas possa fazer sentido, construir um novo sistema no topo do DynamoDB é realmente uma má ideia. Melhores planos, etc. precisas sempre dessa flexibilidade extra do teu cadáver.

Eis as nossas razões porque saímos do DynamoDB.
  1. é impossível indexar ou adicionar chaves na altura sem criar uma nova tabela.
  2. Os dados das consultas são extremamente limitado. Especialmente se quiser consultar dados não indexados. As ligações são naturalmente impossíveis assim que você tem que gerenciar relações complexas de dados em sua camada de código / cache.
  3. Backup-um procedimento de backup tão tedioso é uma surpresa decepcionante em comparação com o backup liso de RDS
  4. GUI - bad UX, busca limitada, sem diversão.
  5. O tempo de resposta à velocidade é problemático em comparação com o RDS. Você se encontra construindo um mecanismo de cache elaborado para compensá-lo em lugares que você teria instalado para o cache interno da RDS.
  6. Integridade de dados-enquanto o conceito de estrutura de dados fluídos soa bem para começar, alguns dos seus dados são melhores "em pedra". Digitação forte é uma bênção quando um pequeno bug tenta destruir o seu banco de dados. Com DynamoDB tudo é possível e de fato tudo o que pode correr mal faz.

Agora usamos o DynamoDB como backup para alguns sistemas e tenho a certeza que vamos usá-lo no futuro para tarefas específicas e bem definidas. Não é um mau cadáver, só não é o DB para servir 100% do seu sistema central.

Quanto às vantagens, diria escalabilidade e durabilidade. Ele escala incrivelmente e transparente e é (mais ou menos) sempre para cima. Estas são realmente grandes características, mas não compensam de forma alguma os aspectos negativos.
 107
Author: Yami Glick, 2016-07-21 15:00:09

Ao usar o DynamoDB, deve também saber que os itens/registos no DynamoDB estão limitados a 400KB (ver Os limites do DynamoDB). Para muitos casos de uso isso não vai funcionar. Então DynamoDB será bom para poucas coisas, mas não para todas. O mesmo vale para muitos dos outros bancos de dados NoSQL.

 8
Author: Ali, 2017-02-27 08:27:29