O que você mais gosta Amazon DynamoDB?
A simplicidade da API e do modelo de dados realmente me atrai, ela simplesmente faz bem o seu trabalho e não tenta ser o banco de dados perfeito para tudo. Depois de aprender como funciona, o que você pode fazer na documentação, bem como no whitepaper original do Dynamo, que é muito bom, fica bastante claro onde estão os compromissos.
Uma vez que você constrói um sistema em cima do Dynamo, a grande vantagem é que você realmente obtém uma escalabilidade praticamente ilimitada apenas ajustando alguns parâmetros à medida que cresce.
Porque é tão simples e força você a trabalhar dentro de sua estrutura, parece muito mais sólido e previsível do que outros armazenamentos de dados com forte marketing (MongoDB sendo o que mais me decepcionou, embora eu não o use há anos, então talvez esteja melhor) que prometem escalabilidade, mas também tentam fazer tudo e, assim, oferecem muitos recursos para o caso de nó único sem deixar muito claro quais recursos você precisa evitar usar se quiser operar em modo fragmentado.
E então, além do modelo de dados, o fato de ser hospedado é incrível. Eu configurei um cluster Cassandra há alguns anos e levou semanas apenas para fazer o JVM funcionar de forma estável com os tamanhos de geração de GC corretos, configurar monitoramento, etc. Há cerca de um ano e meio, o DynamoDB agora tem basicamente todos os recursos que o Cassandra possui (as novas adições notáveis sendo tipos de conjunto e dicionário que você pode usar para alguns tipos de dados CRDT).
Também funciona bem com o Amazon Elastic Map Reduce - você pode executar um grande trabalho Hadoop, por exemplo, e enviar os resultados para o s3, e então aumentar temporariamente as gravações/segundo no DynamoDB para escrever rapidamente os resultados no Dynamo, onde podem ser usados em seu aplicativo. Análise coletada por e hospedada no G2.com.
O que você não gosta Amazon DynamoDB?
A desvantagem do DynamoDB é que você precisa estruturar seus dados como consultas simples de chave-valor, e isso torna algumas coisas que são simples em bancos de dados SQL, como adicionar um índice para consultar um novo campo, um pouco mais difíceis no Dynamo. Também não há junções, então você precisa fazer qualquer junção necessária na memória ou duplicando dados e desnormalizando.
Novamente, não é o banco de dados perfeito para tudo. Particularmente se você tem um sistema que espera que sempre esteja bem dentro da capacidade de um único servidor, e quer ser capaz de fazer cargas de trabalho OLTP e OLAP no mesmo lugar, usar um banco de dados SQL provavelmente faz mais sentido. Análise coletada por e hospedada no G2.com.