A escolha de um banco de dados NoSQL é muito mais complicada do que a escolha de um RDBMS. O mundo dos bancos de dados NoSQL tem várias variantes, cada uma com um design específico voltado para a solução de um conjunto diferente de problemas.
Uma comparação comum e recentemente também uma das mais populares é entre o Couchbase e o DynamoDB. Por isso, gostaria de compilar aqui uma comparação com base em minha experiência com ambos, na documentação disponível e em algumas opiniões no StackOverflow e em outros sites.
Vamos nos preparar para a briga!
Uma comparação de maçãs e laranjas
Em primeiro lugar, estamos quase comparando maçãs com laranjas. O DynamoDB é um armazenamento de valores-chave altamente escalável que é consistente por padrão. O Couchbase, por outro lado, é um armazenamento de valores-chave consistente, rápido e altamente dimensionável, um banco de dados de documentos e um cache gerenciado.
Obviamente, a diferença entre um armazenamento de valor-chave e bancos de dados de documentos é difícil de definir no início, pois a maioria dos armazenamentos de valor-chave também suporta uma estrutura de dados como JSON e os bancos de dados de documentos podem ser usados naturalmente como um armazenamento de valor-chave. As diferenças entre eles só aparecerão depois que você começar a comparar recurso por recurso.
Uma rápida comparação de tabelas
Vamos nos aprofundar em cada tópico em publicações futuras, mas, por enquanto, vamos ver como é uma tabela simples e rápida comparando o DynamoDB e o Couchbase Server:
| Recurso | DynamoDB | Servidor Couchbase |
| Licenciamento | Proprietário | Edições Community e Enterprise de código aberto |
| Tipo |
|
|
| Modelo |
|
|
| Pesquisa |
|
|
| Indexação |
|
|
| Integridade dos dados |
|
|
| Escalabilidade | Altamente escalável | Altamente escalável |
| Implantação | Somente AWS, totalmente gerenciado |
|
| Travamento | Bloqueio otimista | |
| Backup e restauração |
|
|
| Consulta | Consultas limitadas de valor-chave e de intervalo | |
| Replicação de data center |
|
|
| Estrangulamento |
|
|
| Interface de administração |
|
|
| Fragmentação | O sharding é feito automaticamente sob as coberturas | O sharding é feito automaticamente sob as coberturas |
| Segurança | Fornecido por medidas normais de segurança da AWS | |
| Arquitetura | Desconhecido | |
| Integrações |
|
Conclusão
Comparar o Couchbase com o DynamoDB me faz sentir como se estivesse comparando maçãs e laranjas, Eles são claramente feitos para necessidades diferentes:
O DynamoDB é essencialmente um armazenamento de valores-chave, o que significa que ele será uma boa opção quando seu aplicativo executar consultas muito simples e armazenar uma pequena quantidade de dados. Se não for esse o caso, você deve considerar outra opção primeiro.
Se você não se importa muito com a dependência do fornecedor, o DynamoDB também pode evitar algumas dores de cabeça a curto/médio prazo, pois é um banco de dados totalmente gerenciado.
Como mencionado anteriormente, em termos de acessibilidade, o modelo de preços do DynamoDB da AWS é bastante atraente no início, mas também pode ficar fora de controle. Aqui estão alguns exemplos:
- Uma instância com 30 KB de tamanho médio de documento, 500 itens lidos por segundo e 50 itens escritos por segundo custará a você U$ 919 por mês. Document Size, 500 Item Read/sec e 50 Item Write/sec custará a você U$ 919 por mês.
- Uma instância com 100 KB de tamanho médio de documento, 400 itens lidos por segundo e 50 itens gravados por segundo custará a você mais de 3.300 U$ por mês. Document Size, 400 Item Read/sec e 50 Item Write/sec lhe custará mais de U$ 3.300 por mês, e se seus documentos tiverem em média 200kb, o custo saltará para mais de U$ 6.700, sem contar os backups, etc.
O DynamoDB parece ser uma boa solução para aplicativos pequenos e diretos, como as habilidades da Alexa ou o trabalho em conjunto com funções lambda. Ele também pode dar suporte ao seu crescimento como um banco de dados altamente escalonável, mas esteja preparado para abrir sua carteira nesse caso.
O Couchbase, por outro lado, é uma opção muito melhor para aplicativos que exigem alto desempenho, consistência e consultas flexíveis. Por padrão, há um totalmente camada de cache gerenciada integrada sob as coberturas para tornar suas leituras e gravações muito rápidas, e os dados podem ser facilmente consultados usando uma linguagem semelhante à SQL chamada N1QL.
Eu mal comparei Couchbase Lite/Sync Gateway with AWS IoT Rules, pois esse tópico merece um artigo totalmente novo, mas, como você deve saber, o Couchbase Lite tem muitos casos de uso famosos e é amplamente utilizado em muitos setores, como jogos, transporte, vendas etc.
O Couchbase CE é totalmente gratuito e todas as principais versões são lançadas no mesmo dia para as edições Community e Enterprise. O Couchbase EE tem um licenciamento muito mais flexível e barato, pois você só paga pelos servidores EE em produção e também oferecemos suporte 24 horas por dia, 7 dias por semana, treinamento e outros benefícios.
A comunidade é uma grande vantagem e você pode obter ajuda facilmente no StackOverflow ou no Fóruns do Couchbase. Além disso, nos esforçamos muito para criar um ambiente de desenvolvimento agradável, SDKs bem projetados e vários aplicativos de demonstração, que são mais de 500 em couchbaselabs no GitHub.
Se você tiver alguma dúvida, envie-me um tweet para @deniswsrosa.