从 Apache Cassandra 迁移到 Azure DocumentDB 可降低操作开销,降低许可成本,并解锁一组更丰富的数据库功能。 本文总结了基础结构管理、查询灵活性、高级搜索、可伸缩性和总拥有成本(TCO)的主要优势。
降低基础结构管理复杂性
Apache Cassandra 需要大量的操作专业知识来管理,包括环形拓扑、压缩策略、修复作业、令牌重新均衡和优化 JVM 垃圾回收。 这些任务需要专门的工程时间和深入的平台知识。
Azure DocumentDB 是Azure上的完全托管服务。 Microsoft负责基础设施预配、打补丁、监控和故障转移。 专注于应用程序而不是群集操作。
关键操作简化包括:
- 自动备份:Azure DocumentDB 对标准层执行具有 35 天保留期的自动时间点备份,无需配置。 有关详细信息,请参阅 还原群集。
- 内置高可用性:启用高可用性(HA),为每个分片预配备用副本,并通过同步复制和自动故障转移实现零数据丢失。 有关详细信息,请参阅 Azure DocumentDB 中的高可用性。
- 托管缩放:通过Azure门户或 CLI 独立缩放计算和存储,而无需环重新均衡或手动重新分配令牌。
降低许可成本
Apache Cassandra 在 Apache License 2.0 下开源,但企业版发行版可能需要支付商业许可费用。 运行自行管理的 Cassandra 还需要基础设施、工具和运维人员,这些都会构成总成本的一部分。
Azure DocumentDB 基于 DocumentDB 构建,这是根据 MIT 许可证发布的完全开源引擎。 没有每个节点或每个核心的许可费用。 服务成本仅涵盖计算和存储,支持包含在Azure合同中。
更丰富的查询和数据建模功能
Cassandra 的查询语言(CQL)有意限制为支持其分布式分区键驱动的体系结构。 复杂的查询、即席筛选、联接和聚合需要非规范化表或外部处理。
Azure DocumentDB 全面支持 MongoDB 线协议,因此可支持以下功能:
- 灵活的文档模型:存储没有固定架构的嵌套对象和数组。 在不迁移架构的情况下改进数据模型。
- 复杂的查询和筛选器:无需分区键谓词即可在任何字段上进行查询。
- 聚合管道:使用 MongoDB 聚合框架运行多阶段数据转换、分组、查找和投影服务器端。
- 单分片操作:对于不需要水平分区的工作负荷,请在单个分片上运行,以简化操作并降低成本,而无需牺牲查询丰富性。
- 降低了对物化视图的需求:Cassandra 依赖物化视图和冗余表,以便按不同的分区键模式访问同一份数据。 由于 Azure DocumentDB 允许自由查询任何字段,因此通常可以消除这些冗余结构并维护每个实体的单个集合。
通过同区域和跨区域副本实现读取扩展性
Cassandra 通过向环中添加节点,并利用复制因子将数据副本分布到多个节点上,来扩展读取能力。 此方法需要仔细规划容量,并紧密耦合到群集拓扑。
Azure DocumentDB 支持同一区域或跨区域的只读副本。 副本群集从主群集异步复制数据,并可通过专用连接字符串执行读取操作。 此功能允许从主群集卸载大量读取工作负荷,或者为地理分布式客户端提供延迟较低的读取工作负荷。
跨区域副本也充当灾难恢复的基础。 发生区域性中断时,您可以将某个副本提升为新的主副本。 有关详细信息,请参阅 跨区域复制最佳做法。
总拥有成本
与自管理或商业许可的 Cassandra 部署相比,Azure DocumentDB 提供了多种 TCO 优势:
| 成本因素 | Apache Cassandra (自管理) | Azure DocumentDB |
|---|---|---|
| 引擎许可 | Apache 许可证 2.0(OSS)或商业许可证 | MIT 许可证,不收取任何费用 |
| 基础结构管理 | 客户管理 | 完全由Microsoft管理 |
| Support | 社区或付费商业支持 | 包含在Azure合同中 |
| Backups | 由客户管理(需要快照和相关工具) | 自动,已包含 |
| 高可用性 | 手动配置(复制因子、机架感知) | 内置 HA 选项 |
| 高级搜索 | 单独的 SOLR 部署 | 内置,无需额外费用 |