|
|
|
|
公众号矩阵

解读NoSQL文档数据库:工作原理、优缺点

文档存储数据库被认为是所有NoSQL数据库类型中最复杂的。它们采用JSON格式来存储数据,而不是采用典型的行和列结构。

作者:布加迪编译来源:51CTO|2021-03-17 08:00

【51CTO.com快译】文档存储数据库被认为是所有NoSQL数据库类型中最复杂的。它们采用JSON格式来存储数据,而不是采用典型的行和列结构。

NoSQL数据库是大多数日常互联网使用的基础。从Twiiter使用FlockDB到亚马逊的DynamoDB,我们每天都会遇到NoSQL。

作为市面上流行的数据库模型之一,文档存储的工作方式与键值(key-value)非常相似,因为文档是以信息的特定键来存储的。有意思的是,Windows注册表就是文档存储数据库,因此它是很强大的数据模型。

文档数据库的工作原理

表面上,文档数据库背后的想法是,您可以在文档中存储任何类型的信息。这意味着您可以混合搭配所需的任何类型的数据,不必担心数据库无法解析它。实际上,大多数文档数据库仍往往使用某种形式的模式、文件格式和某种预定义结构。

相比关系型SQL数据库,文档存储没有与SQL同样的缺点和限制。这意味着处理手头的信息要容易得多,查询执行也要容易得多。出人意料的是,您在SQL数据库中可以执行的同一种操作也可以在文档存储数据库中执行,比如删除、添加和查询。

如前所述,每个文档都需要某种类型的键,这是通过唯一ID提供给它的。在任何过程中提供唯一ID时,直接读取和处理文档本身中的信息,而不是逐列取出信息。

说到文档数据库(以及所有NoSQL数据库),要注意的一点是,它们的安全性往往比SQL数据库差一点。因此,您需要考虑数据库安全,而加强安全的一种方法是使用SAST。 SAST即静态应用程序安全测试,直接查看源代码以查找漏洞。您还可以运行DAST(动态版本),同样有助于避免NoSQL注入攻击。

文档数据库的优点

文档存储的最大优点可能是,所有内容都在一个数据库当中,而不是信息分散在多个链接数据库中。因此,与SQL数据库相比,您可以获得更好的性能,只要不使用关系型流程。链接文档会大大增添复杂性,使用起来令人沮丧,引用在文档存储数据库中其实效果不好。

不像每个信息都有一个字段的传统数据库,即使没有任何内容,文档存储数据库也更加灵活。实际上,不需要文档有一致性,您就可以存储大量数据,基本上没有问题。

同样,由于文档存储更灵活,因此集成新数据根本不是问题。与必须将任何新类型的信息添加到所有数据集的关系数据库相比,文档存储数据库只需要添加到几个数据集即可。

更具体地说,由于可以在不造成任何停机的情况下修改模式,或者由于您将来可能不知道用户需求,因此文档存储数据库非常适合这些应用:

  • 大型电子商务平台(比如亚马逊)
  • 博客网站(比如Twitter)
  • 内容管理系统(WordPress和Windows注册表)
  • 分析平台

文件数据库的缺点

虽然大多数文档存储数据库已存在了一段时间,但除了小圈子和数据库自己的维基或论坛外,仍没有太多的说明文档。加上有太多的文档存储数据库可供选择,有时不深入研究,很难找到特定的信息。

此外,由于缺乏熟悉性而导致配置错误,或由于使用单个节点,数据有可能丢失。另一个问题是,文档存储数据库其实不适合运行多个复杂的操作或复杂的查询。

最后,文档数据库(和所有NoSQL数据库)快速发展,这个事实多少成了一把双刃剑。与SQL相对完善、不会有太大变化相比,如果您没有热情或兴趣,NoSQL可能很难跟上步伐。

流行文档数据库的例子

MongoDB:作为主要的NoSQL数据库引擎之一,它不仅应用广泛,还使用类似JSON的机制,有自己的查询语言。这篇指南全面介绍了MongoDB的基础知识

Elasticsearch:基于文档存储数据模型的搜索引擎。它用于搜索数据库并建立索引,学习起来也非常简单。

CouchDB:与Ubuntu和Facebook一起使用,它使用Javascript,用Erlang编写。

BaseX:一种基于XML的轻量级DBM,开源,使用Java。

结论

文档存储数据模型大受欢迎、广泛使用有充分理由,这归因其灵活性。随着数据库应用变得越来越复杂,能够轻松添加数据集或扩大规模意味着整体麻烦更少、项目更易于处理。

文档存储还有助于数据分析,因为公司可以轻松存储众多信息供日后使用。由于几个文档存储数据库在添加图形接口(比如MongoDB),因此可以更轻松地查找原本可能不明显的信息和模式。

原文标题:Understanding NoSQL Document Databases,作者:Alex Williams

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【编辑推荐】

  1. 边缘对象存储如何支持分布式计算
  2. Prometheus时序数据库-数据的查询
  3. 中台数据库设计:我选MongoDB,毅然放弃MySQL
  4. 面试官:Java中实例对象存储在哪?
  5. 亚马逊云科技宣布为Amazon EFS提供低成本存储级别
【责任编辑:华轩 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

数据湖与数据仓库的分析实践攻略

数据湖与数据仓库的分析实践攻略

助力现代化数据管理:数据湖与数据仓库的分析实践攻略
共3章 | 创世达人

7人订阅学习

云原生架构实践

云原生架构实践

新技术引领移动互联网进入急速赛道
共3章 | KaliArch

36人订阅学习

数据中心和VPDN网络建设案例

数据中心和VPDN网络建设案例

漫画+案例
共20章 | 捷哥CCIE

228人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微