Apache CouchDB 是一个开源 NoSQL 文档数据库,收集和存储以 JSON 为基础的文档格式的数据。与关系数据库不同,CouchDB 使用无模式数据模型,可以简化跨各种计算设备、移动设备和 Web 浏览器的记录管理。
CouchDB 于 2005 年推出,后来于 2008 年成为 Apache 软件基金会的一个项目。作为一个开源项目,CouchDB 得到活跃的开发者社区的支持,他们不断改进软件,注重易用性并拥抱网络。
对于大多数企业来说,在寻购数据管理技术时决定使用哪家供应商是一项挑战。专有软件不仅会对技术的使用施加一定的许可限制,而且在将所有企业数据转移到内部结构不可见的“泛用式”数据库管理系统 (DBMS) 时,会出现业务连续性问题。
CouchDB 则有所不同。与可能存在“供应商锁定”风险的专有软件不同,CouchDB 是免费开源软件,可以轻松整合至企业当前的数据管理基础架构中。由于企业对软件拥有更多的控制权,因此在根据业务的独特需求进行调整时,也具备更高的灵活性。无论是需要通用文档存储、实现高效数据同步,还是推行“离线优先”思维模式,CouchDB 都能为企业提供创建持久、可靠且可扩展的基础架构所需的灵活性。
CouchDB 的开发动机可以“放松”一词来定义。CouchDB 具有一系列功能,旨在降低运行弹性分布式系统的难度。以下是 CouchDB 的部分关键功能及其与其他 NoSQL 数据库的不同之处。
复制。CouchDB 的一大特色是双向复制,它可以通过双向复制实现跨多个服务器和设备的数据同步。该复制功能使企业能够最大限度地提高系统可用性,缩短数据恢复时间,将数据定位到最靠近终端用户的地理位置,并简化备份流程。
在 CouchDB 中,数据存储于一台服务器上还是多台服务器上,没有任何区别。相反,CouchDB 可以识别来自任何来源的文档更改,并确保所有数据库副本与最新信息保持同步。这使得多个数据库副本既能保持独立管理,又能跨越多个计算环境保存准确的实时信息。
视图。CouchDB 使用视图作为运行查询和基于存储文档文件创建报告的主要工具。借助视图功能,您可以筛选文档,查找与特定数据库流程相关的信息。然后,根据您的偏好对这些信息进行映射,并按特定顺序提取。
CouchDB 的美妙之处在于您可以自由选择信息的呈现方式。由于 CouchDB 视图是动态构建的,并且不会直接影响任何底层文档存储,因此对于运行相同数据的不同视图数量没有限制。这些视图在特殊设计文档中创建,能够像常规存储数据一样跨多个数据库实例进行复制。
CouchDB 的另一个重要功能是提供 MapReduce。CouchDB 视图可以对索引中保存的数据进行汇总聚合。这些是预先计算和存储的,意味着它们可以立即返回,甚至可以返回数十亿个文档。
HTTP API。CouchDB 可使用 REST API 从任何位置访问数据库,并具有完整的 CRUD(创建、读取、更新、删除)操作灵活性。这种简单有效的数据库连接方式使 CouchDB 兼具灵活性、高速和强大功能,同时保持高度可访问性。
专为离线而构建。当您扩展数据库的可用性和可访问性时,构建具备离线和在线无缝切换能力的应用程序至关重要。CouchDB 使应用程序能够将收集的数据本地存储于移动设备和浏览器,然后在数据重新上线后进行同步。
高效的文档存储。在 CouchDB 中,JSON 文档以及图像等相关二进制附件是主要的数据单元。每个文档的文本大小或元素数量没有限制。复制后,可以在全球分布的服务器集群上访问和更新数据。
兼容性。CouchDB 非常易于使用,在与当前的基础架构集成时可提供各种兼容性优势。CouchDB 采用 Erlang(一种通用、并发、垃圾回收式的编程语言和运行时)编写,因此对于开发人员来说既可靠又易于使用。可以将其放置在标准 HTTP 负载均衡器后面。HTTP 客户端可用于每种编程语言,以及特定于 CouchDB 的客户端库。
CouchDB 非常灵活,可以在许多作系统和虚拟化工具上安装和运行。它还兼容 PouchDB,这是一个设计用于在 Web 浏览器(包括移动设备)中运行的轻量级数据库。
CouchDB 为用户和开发人员提供了双重优势。
可扩展性。CouchDB 的架构设计使其在对数据库进行分区和将数据扩展到多个节点时适应性极强。CouchDB 支持水平分区和复制,从而创建一个易于管理的解决方案,在数据库部署期间平衡读取和写入负载。
CouchDB 搭载高度持久可靠的存储引擎,该引擎专为多云和多数据库基础设施而构建。作为 NoSQL 数据库,CouchDB 具有高度可定制性,能帮助您开发稳定的性能驱动型应用程序,而不受数据量或用户规模的影响。
无读锁。CouchDB 使用 MVCC(多版本并发控制)来管理对数据库的并发访问。这消除了在更新期间锁定数据片段的需求,并提高了 CouchDB 维持高吞吐工作量的能力。进行中的请求将读取其启动时存在的文档版本,仅当写入操作与并发更新产生冲突时才会被拒绝。
开源开发。得益于开源社区的全力支持,CouchDB 为企业数据库管理构筑了稳健、可靠的基础。作为无架构解决方案,CouchDB 经过多年开发,可提供大多数专有数据库解决方案难以实现的卓越灵活性。
使用 IBM 数据库解决方案满足混合云中的各种工作负载需求。
深入了解 IBM Db2,这是一种关系数据库,为存储和管理结构化数据提供高性能、可扩展性和可靠性。该数据库在 IBM Cloud 上作为 SaaS 提供,也可以用于自托管。
通过 IBM Consulting 发掘企业数据的价值,建立以洞察分析为导向的组织,实现业务优势。