从 Apache Cassandra 迁移到 Azure DocumentDB 的好处

从 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 部署 内置,无需额外费用