5个选择Apache Cassandra 而非DynamoDB的原因

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 5个选择Apache Cassandra 而非DynamoDB的原因

概述

Apache Cassandra 以及DynamoDB 都是非常流行的分布式存储技术,这2个产品都在很多应用以及生产环境中得到了成功的使用。

在Instaclustr(一个公司),我们强烈依赖Apache Cassandra以及Apache Kafka.我们的客户群里非常的广泛,他们的体量以及公司的成熟度遍及各个层次,许多客户在选择Cassandra还是DynamoDB前已经做过了很重要的评估练习,还有一些客户已经将自己的应用从DynamoDB迁移到Cassandra之上了。

这篇博客提取了我们的客户选择Apache Cassandra的5个主要原因。

原因1:写入DynamoDB的成本巨大

对于许多实用的case来说,实用Apache Cassandra的成本比DynamoDB节省很多,这些主要是一些对于一些业务偏写入的客户来说.(在你的AWS的账单上可以显示的很清楚的是)写入成本是读取成本的5倍.对于Apache Cassandra来说写入比读取的成本低(主要是在你对使用的资源消耗上可以反映)。

注意:这点主要是AWS的自费模式以及Cassandra的原理决定上述情况。

原因2:移植性

我们知道DynamoDB只是存在于AWS平台,别的地方没有提供的,对于多租户的sass平台产品,只提供一个单独的实列来说,那么全部放在AWS平台来说并不是什么大问题;然而很多客户基于很多原因希望能够有一个客户自己定制的安装以及管理的环境(一般是一些大客户)。选择Cassandra允许你的程序在任何Linux的平台上面运行。

原因3:架构设计无需关心计价模型

DynamoDB的计价方式是很复杂的,她有2套计价模型以及很多计价维度,使用了错误的计价模型或者你们的架构在设计的时候没有考虑产品计价可能会导致成本有数量级的差异。从另一个角度看,对程序来说可能是一个无关紧要的修改可能会造成极大的成本消耗;而使用cassandra的话你的可以控制自己的基础设施以及管理你自己费用开销,一旦你测试完成并确定了你的架构设计,你的开销基本上就是确定了的。

原因4:多Region的功能

Cassandra是第一个提供多region的多活nosql系统,虽然DynamoDB 提供了global table的功能,但是和cassandra对比的话还是有一些关键限制.多数限制中最重要的可能就是对于一个已有的global table你并不能添加副本(replicas),所以如果你设置好了2个region然后决定添加一个新的region你需要从一个空的表中进行重建.但是对于cassandra来说,你需要添加一个region是很平常的操作,且是完全的online操作.另一个比较重要的限制是对于global table的话,dynamodb只提供最终一致性,但是cassandra的可调一致性可以在多region中提供强一致(whereas Apache Cassandra’s tunable consistency levels can enforce strong consistency across multiple regions.).

原因5:避免 Vendor Lock-In

Cassandra是完全的开源软件,由Apache 基金会决定他的管理和开发,她的开发以及管理主要是基于社区利益的,可以在任何的云平台以及内部平台运行。DynamoDB 是AWS的一款解决方案她将你锁定在DynamoDB而且将你的应用锁定在AWS的生态体系之中。

虽然这是人们选择cassandra的主要原因但是也有很多在功能上差异原因而选择cassandra比如:

  • DynamoDB的容量受partition限制,每个分区最大的是1千的写容量以及3千的读容量。Cassandra的容量分布在每个节点上面,每个节点通常提供一个高于此数量级的分区限制;
  • Cassandra的CQL提供了一个类似sql的且对于开发者来说容易学习使用的方式;
  • DynamoDB 只允许单值分区以及排序,但是cassandra允许多值排序,这是一个较小的区别,但是cassandra这样可以降低应用复杂性;
  • Cassandra提供了聚合函数,在某些case下是很有效的;

入群邀约
为了营造一个开放的 Cassandra 技术交流环境,社区建立了微信群公众号和钉钉群,为广大用户提供专业的技术分享及问答,定期开展专家技术直播,欢迎大家加入。另外阿里云提供免费Cassandra试用:https://www.aliyun.com/product/cds
8a55f5a99463a7276265074b1079d74f4ab3d164

Tips

本文翻译自:https://www.instaclustr.com/top-5-reasons-to-choose-apache-cassandra-over-dynamodb/

目录
相关文章
|
6月前
|
监控 NoSQL 数据建模
使用Apache Cassandra进行分布式数据库管理的技术实践
【6月更文挑战第5天】本文探讨了使用Apache Cassandra进行分布式数据库管理的技术实践。Cassandra是一款高性能、可扩展的NoSQL数据库,适合大规模、高并发场景。文章介绍了其高可扩展性、高性能、高可用性和灵活数据模型等核心特性,并详细阐述了环境准备、安装配置、数据建模与查询以及性能优化与监控的步骤。通过本文,读者可掌握Cassandra的运用,适应不断增长的数据需求。
|
存储 NoSQL 分布式数据库
什么是Apache Cassandra?
什么是Apache Cassandra?
442 0
|
NoSQL Apache
《4.27【国际技术大咖开讲 Apache Cassandra】》电子版地址
4.27【国际技术大咖开讲 Apache Cassandra】
103 0
《4.27【国际技术大咖开讲 Apache Cassandra】》电子版地址
|
NoSQL 关系型数据库 MySQL
Apache Cassandra 特性
Apache Cassandra 特性
169 0
|
存储 NoSQL Apache
为什么会诞生 Apache Cassandra
为什么会诞生 Apache Cassandra
146 0
|
存储 安全 NoSQL
Spring中国教育管理中心-Apache Cassandra 的 Spring 数据教程十四
Spring中国教育管理中心-Apache Cassandra 的 Spring 数据教程十四
|
存储 NoSQL Java
Spring中国教育管理中心-Apache Cassandra 的 Spring 数据教程十三
Spring中国教育管理中心-Apache Cassandra 的 Spring 数据教程十三
|
存储 NoSQL Java
Spring中国教育管理中心-Apache Cassandra 的 Spring 数据教程十二
Spring中国教育管理中心-Apache Cassandra 的 Spring 数据教程十二
|
存储 NoSQL Java
Spring中国教育管理中心-Apache Cassandra 的 Spring 数据教程十一
Spring中国教育管理中心-Apache Cassandra 的 Spring 数据教程十一
|
存储 XML NoSQL
Spring认证中国教育管理中心-Apache Cassandra 的 Spring 数据教程十
Spring认证中国教育管理中心-Apache Cassandra 的 Spring 数据教程十