「文档数据库」数据库深度探索:MongoDB,最强文档数据库

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 「文档数据库」数据库深度探索:MongoDB,最强文档数据库


欢迎回到数据库深度探索,在这里我们将与数据库领域的工程师、构建者和领导者进行一对一的交流。最近,我们采访了来自MongoDB的Richard Kreuter。

阅读下面的采访,了解Atlas跨越多个云的未来发展方向,他们如何从一个数据库转变为一个拥有Atlas数据湖的数据平台,以及他们如何在NoSQL数据存储中构建和交付事务。

跟我们谈谈你自己和你今天在做什么?

理查德·克罗伊特(RK):我是理查德·克罗伊特,MongoDB的现场工程高级副总裁。我负责许多面向客户和合作伙伴的团队——我们的解决方案架构师、业务价值顾问、项目经理、咨询工程师、客户成功经理,以及支持我们合作伙伴的技术架构师。

你是如何接触到MongoDB的?

(RK):我第一次了解MongoDB是在2009年11月。我是一名软件工程师,在过去的十年里,我从事的项目确实需要一个比市场上现有的数据库更灵活的数据库。当我第一次看到MongoDB时,我想,“哇,我希望我以前的项目也有这样的功能。”

我申请了一个职位,并在2010年1月加入了公司,负责我们的软件产品。当我加入这家公司的时候,我们还不到10人,而现在,我们已经是一家拥有1500多人的公司,服务着14000多名客户。

我们于2017年10月上市——这是25年来第一家达到这一里程碑的数据库公司。在过去的几年中,我们已经收购了一些公司,这大大加快了我们的增长。在过去的几年中,我们已经将我们的产品从核心数据库扩展到了不同的产品平台,这些产品涵盖了数据管理和数据生命周期的几个不同方面。

随着Atlas的成功和更广泛的支持应用开发服务的生态系统(如Stitch和Charts),你认为MongoDB在未来5-10年将走向何方?

(RK):我们正在完善智能数据平台,这是一套集成的产品和功能,通过MongoDB的文档模型为用户提供处理数据的最佳方式。文档——灵活的、受json启发的文档——比许多人熟悉的处理数据的严格结构的传统方式更加简单、自然、通用和高性能。

如今,我们在核心数据库和其他产品中都有能力,我们正在不断开发这些产品,以使客户能够在全球范围内战略性地放置他们的数据。这可能意味着将数据保存在更接近大用户群的地方,以便为这些用户提供较低的延迟体验,或者为了遵守监管要求,将数据保存在国家和其他地理边界内。

我们还将继续致力于为客户提供在他们需要的任何地方运行MongoDB的自由。我们有可以在移动设备、标准服务器级硬件、云实例、IBM大型机和其他硬件上运行的MongoDB版本。它能够移动工作负载,在许多不同的环境中运行MongoDB软件,这是人们采用MongoDB的一个关键原因。

当然,从长远来看,人们都在为向云计算的宏观过渡而奋斗。但是,在可预见的未来,不同种类的工作负载和环境、国家、行业等仍然在本地运行。MongoDB的平台无论你是在自己的数据中心自己运行,还是通过MongoDB Atlas在公共云上为你运行,在两者之间的所有点上运行,基本上都是一样的。

作为这个更大故事的一部分,我们正在扩展我们平台提供的整体功能集。例如,我们最近发布了一个新产品——Atlas Data lake,它可以利用存储在对象存储中的数据,比如S3,在云中可用。

Atlas数据湖提供了MongoDB查询语言的全部功能,MongoDB查询语言是一种非常强大且丰富的查询语言,人们在操作数据库上下文中已经享受了多年,并将这种能力带到了对象存储中的数据中。由于人们在S3中存储大量数据,其中大部分数据倾向于以常见格式存储,如JSON、逗号分隔值或其他格式。我们可以利用MongoDB查询语言,它非常适合于像JSON这样的半结构化和层次化数据,从而能够充分利用存储在S3 bucket中的信息。

我们最近还收购了一家移动数据库公司,Realm,它有一种非常类似mongodb的灵活方式来处理移动设备中的数据。随着MongoDB的发展,我们从用户和客户那里得知,MongoDB在数据库级别上所解决的挑战在其他领域仍然存在。MongoDB希望将其为开发人员提供处理数据的最佳方式的使命带到更多的数据生态系统中。

让我们来谈谈多文档事务——为什么需要它,公司是如何交付这个特性的?

(RK): MongoDB总是在单个文档级别上具有ACID事务能力。Richard,如果你正在建模关于我的所有数据,作为你公司的一个客户,你可能会存储关于我的大部分信息在一个文档中。当文档从一种状态更改到另一种状态时,我们总是在单文档级别上有ACID事务。

但是,当我们的客户不确定未来的需求是什么时,为了让他们的应用程序经得起时间的限制,多文档事务提供了一个保证,即使他们的应用程序的需求会随着时间的推移而变化,客户也不会以某种方式达到MongoDB能为他们做的极限。MongoDB能够在单个事务中封装跨多个集合和文档的多个操作。

业务分析为什么我们想要在这个方向提供了完整的、传统的、会话事务应用程序可以做任意的事情的范围内事务和不需要,例如,预定义的操作可以在事务作用域或限制哪些操作可以在执行一个事务。

对多文档事务的技术需求始于MongoDB的第一次收购,一个名为WiredTiger的数据库存储引擎,它是由创建BerkeleyDB嵌入式数据库(世界上最流行的数据库引擎之一)的人创建的。

WiredTiger存储引擎,自从几年前MongoDB 3.2以来就一直是默认的存储引擎,实际上已经支持了多记录事务的底层能力。然后,我们的工程师通过MongoDB的查询语言、复制协议、分片架构将该功能向上线程化,这样MongoDB应用程序就可以利用底层存储引擎提供的这种功能。

今天,我们的客户开始以非常先进的方式利用这些交易。在这方面,它使从传统的表格数据库到MongoDB更容易一些。

你认为在Mongo堆栈中哪里有改进的空间?

(RK):我们正在用MongoDB Atlas扩展我们的多云能力,这可能是我们目前正在做的工作,它最能引起我们最大客户的共鸣。

今天,如果你想启动MongoDB Atlas部署,你必须选择一个特定的云,如IBM云、AWS、Azure或GCP。每个单独的MongoDB部署可以跨越这些云中的多个区域,但不能跨越多个云。

我们的目标是让单个MongoDB部署跨越不同的云提供商,让客户能够利用每个不同云提供的最佳技术。因此,如果他们想利用Amazon特有的一些功能,他们可以这样做,并让这些功能在MongoDB中读写他们的数据。当我们提供跨云集群时,相同管理域下、相同用户权限和访问控制角色下的相同集群也将能够通过复制存在于其他云中,这样用户就可以利用Azure或GCP中可用的技术。

你对自己运行MongoDB的人有什么建议?

(RK):首先,如果你自己运行MongoDB,你就会疏忽,不去看MongoDB Atlas可以提供的功能。Atlas是获得MongoDB好处的最简单方式,因为坦率地说,我们将为您运行它。所以,你会得到你投入到任务和升级操作,安全操作,等等的资源。这是一种让您的团队更高效、更快的方法,同时让构建MongoDB的专家们安心地运行操作。

如果你现在在一些on-prem或其他自管理的情况下运行MongoDB,你应该看看MongoDB的管理工具。我们有几个不同的管理套件,其中一个叫做MongoDB云管理器,它可以在云环境中协调、运行、监控和备份MongoDB。

我们也有一个打包的,on-prem版本的相同功能称为MongoDB Ops Manager,它是运行MongoDB最完整的管理工具套件,包含了你需要的所有功能,包括编排、升级、维护任务、监控和警报。

MongoDB专家组成了一个庞大的生态系统,这也是一个有价值的资源。我们的核心数据库已经有超过7500万的下载量,在线教育平台MongoDB University的注册人数也超过了100万。有非常支持的论坛,如谷歌组为用户支持,以及堆栈溢出为其他关于MongoDB技术的问答。当然,在MongoDB,我们有大量的MongoDB专家,如果你自己运行MongoDB,你需要额外的帮助,他们可以以各种方式帮助你。

相关实践学习
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
相关文章
|
13天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
14天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。
|
15天前
|
存储 NoSQL MongoDB
MongoDB 数据库引用
10月更文挑战第20天
11 1
|
21天前
|
存储 NoSQL MongoDB
mongodb的数据库表怎么创建
在此过程中,理解并掌握这些基本操作,是深入探索MongoDB魅力,乃至构建高效数据解决方案的关键所在。通过实践,您将更加深刻地体会到这种随需应变的数据管理模式带来的便利与效率提升。
22 0
|
2天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
13 4
|
25天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
58 3
Mysql(4)—数据库索引
|
11天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
49 2
|
14天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
57 4
|
19天前
|
存储 关系型数据库 MySQL
如何在MySQL中创建数据库?
【10月更文挑战第16天】如何在MySQL中创建数据库?
|
23天前
|
SQL Oracle 关系型数据库
安装最新 MySQL 8.0 数据库(教学用)
安装最新 MySQL 8.0 数据库(教学用)
96 4
下一篇
无影云桌面