为什么从 MongoDB 转向 Couchbase ?

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 毫无疑问,MongoDB 是当前较为流行的可用于构建应用程序的一种 NoSQL 数据库。但就像许多以电子表格开始的“初学者”进行数据分析项目一样,当需要深入时,也需要进行升级。当公司的应用程序从“个人作坊”推广至企业规模运行时,他们经常会发现 MongoDB 已开始无法满足他们的业务诉求。

作者 | Timothy Rottach译者 | Luga Lee策划 | Luga Lee


或许,在后续的 NoSQL 时代,Couchbase 可能将会成为新的“黑马”


    毫无疑问,MongoDB 是当前较为流行的可用于构建应用程序的一种 NoSQL 数据库。但就像许多以电子表格开始的“初学者”进行数据分析项目一样,当需要深入时,也需要进行升级。当公司的应用程序从“个人作坊”推广至企业规模运行时,他们经常会发现 MongoDB 已开始无法满足他们的业务诉求。

    当我们与企业客户讨论为什么要从 MongoDB 迁移至 Couchbase 时,以下为他们进行切换的三个最常见的原因。

1、性能和可扩展性

    Couchbase 的主要优势之一是在规模上具有优异的吞吐量和低延迟。这是由内存优先的体系结构驱动的。

    Couchbase 的所有键值数据检索和处理操作都发生在内存中,从而产生亚毫秒的性能。另外,集群中的所有节点都是活动的——没有一个单一的主节点阻塞点会转移到“辅助节点”并降低速度。所有节点都直接执行查询和写入。

    此外,Couchbase 的写入处理与读取和查询活动是分开的,这意味着写入不会干扰读取和查询操作。最后,Couchbase 提供了强大的索引选项来加快查询速度,随着 7.0 即将发布,在某些特定的场景下,其性能也可将提高 10-100倍。

    再者,Couchbase 利用多种技术协同工作,确保您的数据和数据库即使在极端条件下也“始终开启”,从而提供高可用性和可靠性。其中许多功能,如连续复制、自动故障切换、快速重新平衡、跨群集的跨数据中心复制(XDCR)和自动分片,默认情况下在后台实现,或者在不关闭系统的情况下可管理。

    而 MongoDB 的体系结构专注于单节点设置,许多重要功能(如通过 $lookup 函数连接或分组)在多节点和多切分配置上表现不佳。当您发现这些问题时,纠正它们可能为时已晚。例如:

    Couchbase 只需一次添加一个必要的节点,即可轻松扩展,而 MongoDB 需要一次添加至少三个新节点,以便向集群引入一个新的分片,此种情况下会提高总体拥有成本(TCO)。同时 Couchbase 会自动创建分片并重新平衡对所有可用节点的分发。

    Couchbase 自动故障切换功能强大且快速,基于多个活跃信号。另一方面,MongoDB 的故障切换技术速度较慢,而且受到限制,因为它只基于副本集节点之间的心跳。

    不要只相信我们的话 !

    我最近采访了 Microlise,一位 Couchbase 客户,他授权 195 个国家的车队和物流运营商管理和优化其运营和交付。他们每天处理约 100 万个事件!

    和其他最先探索 NoSQL 技术的人一样,这个团队从 MongoDB 开始开发他们的微服务应用程序。随着这些应用程序的需求和任务关键性的增长,开发团队便开始转向 Couchbase。

我们的许多微服务最初是在 MongoDB 之上开发的,但随着内存问题和数据库崩溃的增加,我们无法满足我们的服务级别。我们的 DBA、技术支持和开发团队不高兴。我们对数百万条记录的内部基准测试表明,Couchbase 在满足这些 SLA 方面击败了MongoDB。” –Wayne Chandler,Microlise的数据架构师

    在本白皮书《Couchbase vs.MongoDB》中了解更多有关 Couchbase 大规模性能和高可用性的信息™ 用于扩展和高可用性。

2、N1QL,Couchbase 查询语言

    许多企业从 MongoDB 切换到 Couchbase 的第二个原因便是 N1QL,Couchbase 查询语言。

    N1QL(发音为“nickel”)感觉很熟悉,因为它是 SQL,但经过扩展以支持 JSON 文档语法。SQL 是非常强大且众所周知的,因此 Couchbase 团队基于 ANSI SQL92 标准的 N1QL 来支持开发人员已经熟悉的 SQL 语法。当然,了解 SQL 的不仅仅是开发人员,还有您的整个团队:DBA、分析师、架构师、BI团队和其他人。这两种查询语言非常相似,我们有时将 N1QL 称为 “SQL++”。

    仅仅在下图中将 MongoDB 查询语言与 Couchbase N1QL 并排进行比较,其两者之间的差异是显而易见的。

    与我交谈的团队也喜欢 N1QL 查询语言:

“Couchbase 的查询语言 [N1QL] 和备份管理对我们的团队来说非常简单。我们所有的关键微服务应用程序都已从 MongoDB 转移到 Couchbase。从长远来看,我们计划在Couchbase 上实现标准化。” –Wayne Chandler,Microlise 的数据架构师

    以下是用户说他们在使用 MongoDB 查询语言时面临的一些挑战:

    专有:MongoDB 的查询语言脱离了强大而熟悉的 SQL 数据库语言,迫使用户学习和掌握一种全新的语言。

    复杂:虽然 MongoDB 的过程方法对于目标查询(即定位具有特定过滤条件的文档)非常有效,但对于需要文档联接和聚合的查询来说,它变得复杂。对于某些开发人员来说,这可能没什么问题,但管理或访问您的数据的人员群体要大得多,这使得这成为公司范围内的问题。此外,MongoDB 对跨分片集合连接文档的支持非常有限,因为 $lookup 函数不支持该功能。

    应用程序密集型:应用程序需要通过在客户端执行复杂的数据处理来弥补数据库的不足,这会增加复杂性,一旦部署,通常会导致性能低下。

    如果你有兴趣学习更多关于 N1QL 和 Couchbase 的知识,我鼓励你用这个免费的在线 N1QL 教程自己尝试一下。或者,在此第三方评估中将 N1QL 与 MongoDB 的查询语言进行比较。

3、提供灵活开发和数据访问的集成服务

    Couchbase 客户喜欢的另一个关键因素是平台提供的多个内置服务,无需使用其他数据库即可访问和管理数据。对于开发人员来说,这意味着学习、编码、集成和维护的时间更少。对于 DevOps 团队,其结果是需要许可、部署和支持的工具更少。

    Couchbase 数据平台通过一个统一的数据模型和一个单一的编程接口提供多种集成方式来存储、查询和操作数据,包括:

    Couchbase 的通用模型(一种具有关系数据库模式完整性选项的文档数据库)涵盖了一系列解决当今现代应用程序所需的性能、事务性和数据可用性问题的用例。

    内存中密钥值管理缓存提供毫秒级性能,而不需要单独的缓存产品。

    N1QL 查询语言意味着开发人员、DBA、分析师和其他具备 SQL 知识的人可以通过 “SQL++” 快速提升。

    即使是新手用户也可以使用具有地理空间功能的全文搜索来查询数据库。

    Eventing 随 Couchbase 开箱即用,无需外部供应商集成。

    实时数据分析可以在大规模并行过程中执行,而不会影响其他服务,也不会对另一个数据库进行 ETL。

    与大多数移动数据库不同,我们提供了服务器和设备之间的双向同步,采用点对点同步的离线优先策略。

    结论

    如果您已经准备好超越“通用”数据库并构建健壮的企业应用程序,那么您就可以自己尝试 Couchbase 了。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
6月前
|
NoSQL MongoDB 数据库
使用MongoDB进行NoSQL数据库管理
【5月更文挑战第29天】MongoDB是流行的NoSQL数据库,以其文档存储、动态模式、高性能和丰富查询功能著称。它采用BSON格式,支持灵活的数据结构。基本操作包括安装、连接、创建数据库和集合、插入/查询/更新/删除文档。最佳实践涉及合理设计数据模型、使用索引、监控调优、备份恢复及确保安全性。MongoDB为复杂应用提供了高效的数据管理解决方案。
|
5月前
|
存储 NoSQL MongoDB
MongoDB技术架构详解
MongoDB技术架构详解
|
6月前
|
存储 NoSQL 数据挖掘
MongoDB的产品特性
MongoDB的产品特性
|
6月前
|
存储 运维 负载均衡
MongoDB详解(二)——MongoDB架构与原理
MongoDB详解(二)——MongoDB架构与原理
203 2
|
6月前
|
存储 NoSQL MongoDB
MongoDB的优势是什么
MongoDB的优势是什么
606 5
|
NoSQL 分布式数据库 MongoDB
|
存储 传感器 分布式计算
「MongoDB」时序数据库和MongoDB第二部分-模式设计最佳实践
「MongoDB」时序数据库和MongoDB第二部分-模式设计最佳实践
|
存储 SQL JSON
「文档数据库之争」MongoDB和CouchDB的比较
「文档数据库之争」MongoDB和CouchDB的比较
|
存储 JSON NoSQL
「文档数据库迁移」从MongoDB迁移到Apache CouchDB
「文档数据库迁移」从MongoDB迁移到Apache CouchDB
|
NoSQL MongoDB 数据库
cassandra vs mongoDB in 2019,如何选型
提到NoSQL数据库,MongoDB和Cassandra可能看起来很相似,但却完全不同。两者都有类似的用例,但不适用于交易数据(即记账系统)。 谁使用这些数据库? Cassandra和MongoDB两者都有强大的追随者,其中都不乏一些大牌用户 Cassandra: Cassandra,于2008年发布,已被许多组织使用,包括AppScale,Constant Contact,Digg,Facebook,IBM,Instagram,Spotify,Netflix和Reddit。
6312 1