DynamoDB和Cassandra、MongoDB的比较

DynamoDB和Cassandra、MongoDB的比较

前面说过Cassandra受2007年Amazon发表的Dynamo论文影响非常深,在DynamoDB发布的第一天,提供Cassandra商业化支持的DataStax公司的Jonathan Ellis就写了一篇文章,分析了Cassandra和DynamoDB的差异。

虽然Jonathan Ellis认为DynamoDB不支持Secondary Key Indexes是在开历史的倒车,但如果DynamoDB支持了Secondary Key Indexes,那么它是无法保证每个请求性能的高效性的。这和DynamoDB的设计理念相冲突,于是舍弃了这部分的功能。

其实从开发的易用角度来讲,DynamoDB没有Cassandra和MongoDB强大,Cassandra有CQL可以做非常丰富的查询,MongoDB的查询功能也非常强大,而且后两者都提供Shell客户端,并有不少第三方开发的工具可以进行管理与使用。在条件更新上,DynamoDB也没有MongoDB使用起来那么方便,并且MongoDB提供了更多的原子性操作。在对value类型的支持上,另两者都不如MongoDB,毕竟MongoDB是文档型的数据库,可以理解为底层存储的是JSON。毕竟,JSON支持的类型以及在JSON上可以做的操作是很丰富的。我一直觉得DynamoDB没有支持类JSON格式是个遗憾。也许可能是DynamoDB团队觉得如果支持类JSON格式的话,在API的设计上会显得更加臃肿和让用户更难理解API如何使用。但个人认为,DynamoDB如果提供相应的SDK其实是可以解决这个问题的,就算MongoDB的开放接口相对DynamoDB更加复杂,开发者都是直接使用驱动(相当于SDK)进行开发,于是在开发应用上MongoDB远胜于DynamoDB。

但从运维的角度来讲,DynamoDB省去开发者部署/监控/维护数据库环节,给开发者节约了大量时间,强大的扩展能力又减轻了后续运维的压力,这正是DynamoDB最大的价值所在。

参考:

https://baike.baidu.com/item/dynamodb/8109040?fr=ge_ala

相关推荐
齐鲁大虾10 小时前
SQL Server 和 MySQL的区别
数据库·mysql
川石课堂软件测试10 小时前
Android和iOS APP平台测试的区别
android·数据库·ios·oracle·单元测试·测试用例·cocoa
Codeking__11 小时前
Redis的value类型介绍——list
数据库·redis·缓存
香气袭人知骤暖11 小时前
MVCC为什么不能完全解决幻读问题
数据库·oracle
东方巴黎~Sunsiny11 小时前
mysql大表空间整理注意点
数据库·mysql
難釋懷11 小时前
Redis简单介绍
数据库·redis·缓存
lifejump11 小时前
Pikachu | SQL-inject
数据库·sql
C-200211 小时前
Casdoor 容器部署并实现 JumpServer 对接 CAS
数据库
ChineHe11 小时前
Redis数据类型篇003_详解Lists列表类型及其命令
数据库·redis·缓存
Elasticsearch12 小时前
Elasticsearch:Jina Reader
elasticsearch