在其年度MongoDB 上。在本周的现场活动中,MongoDB将发布其同名数据库的下一个主要版本 - 5.0 版。在某种程度上,MongoDB 5.0 的亮点并不奇怪,因为其核心开发人员更关注生产力。但是新版本还通过新的时间序列支持扩展了数据类型的范围,其次是被认为对企业友好的功能。
强调这一点的是 MongoDB 及其快速增长的客户群,正在走向云优先。截至6 月报告的2022 财年第一季度的最新季度,Atlas管理的云数据库即服务 (DBaaS) 现在占总收入的 51%。
与开发者保持感情
考虑到 MongoDB 的核心支持者长期以来一直是应用程序开发人员,而不是 DBA 或数据工程师,因此 5.0 版本的主要重点是开发人员的生产力,这应该不足为奇。
列表顶部是从 5.0 版本开始的版本化 API。具体来说,这意味着只要应用程序使用Versioned API定义的命令,MongoDB 就会致力于向后兼容。数据库可以更改,但您的应用程序不应更改。
这是已被视为已建立的关系数据库(如 Oracle)的标准复选框的特性类型。它要求供应商几乎控制代码并处理所有兼容性测试——这是劳动密集型的,但对于控制底层代码的供应商来说很简单,而且更多的是为基于社区的开源平台的海洋努力像PostgreSQL。MongoDB 承诺无限期地为 MongoDB 5.0 及更高版本开发的应用程序 API 将继续工作,无需修改代码,即使数据库的底层版本发生变化。对此类功能的需求变得更加重要,因为从 5.0 开始,MongoDB 将转为每季度发布一次。
另一个亮点是 MongoDB 术语“原生”时间序列支持的发布。这属于生产力和可扩展性的范畴。它是可扩展的,因为这是一种新支持的本机数据类型。更准确地说,它是一种特殊类型的集合,针对时间序列数据的结构进行了优化,将架构重组为高度紧凑的格式,从而实现更高的存储密度、集群索引和更高效的 IOPS。它也可以被视为一种生产力增强,因为通过原生时间序列支持,MongoDB 5.0 处理与数据库引擎内的时间序列数据相关的日常任务。
许多 MongoDB 客户,例如 Bosch,一直在使用该平台处理时间序列数据。事实上,对于大多数基于云的 NoSQL 数据库,您可能会这么说。但是在 5.0 之前,许多相关的繁重工作,例如重复数据删除、数据汇总分桶和自动创建聚集索引,都必须由应用程序中的开发人员编码。现在它将作为数据库引擎的一部分自动化和/或使用查询语言中的新专用运算符进行处理,包括窗口函数和时间操作。
另一个主要的节省时间的是“实时”重新分片。你设置一个策略,到时候数据库会自动重新分配数据。以前,勇敢的客户可以在不关闭系统的情况下执行此操作,但过程很复杂。实时重新分片的一个关键用例是数据必须保留在一个国家/地区的本地。MongoDB 的全球地理分区已经有一段时间了,但是当不同国家的数据以不同的速度增长时,这将允许您更改分片策略,数据库将自动重新分配数据。
以开发人员为中心的公告包括用于 Unity 移动游戏引擎的 Realm SDK、对 Atlas Search 的增强以及来自 Atlas Data Lake 的 MongoDB Charts 支持的扩展。此功能特别有用的地方是当数据摄取和访问模式发生变化时,使高效的分片模式效率低下
跟上琼斯的步伐
有一些公告的主题是“跟上琼斯的步伐”。在此过程中,MongoDB 为其 Atlas 云服务推出了无服务器选项的预览版。MongoDB 并不是第一个在这里上市的;长期以来,无服务器一直是 NoSQL 世界的中流砥柱。Amazon DynamoDB、Azure Cosmos DB和Google Cloud Firestore是无服务器的,它已成为DataStax为 Apache Cassandra提供的 Astra DB 服务的默认设置。
明显的用例是没有可预测的工作负载水平的新数据库,或者开发团队无法可靠地估计将需要的流量水平。MongoDB 还针对相对狭窄的一组用例进行无服务器处理,例如数据密集型但不是查询密集型的“稀疏”工作负载,例如整体存储大量数据但仅将新读数写入数据的 IoT 应用程序数据库每天几次。无服务器也可以被视为开发人员的生产力功能,因为开发人员不再需要担心指定要配置的节点数量。尽管如此,如果您有一个稳定或可预测大小的工作负载,provisioned 可能是更好的选择。
在幕后,MongoDB 5.0 正在调整查询引擎以支持公司更广泛的使命,即取代关系作为新应用程序的默认平台(更多信息见下文)。它正在模块化查询引擎,使其更具可扩展性,不仅适用于操作查询,还适用于分析。一个很好的例子是长时间运行的快照查询,在此版本中引入,它支持针对全局事务一致快照的时间点查询。这是 MongoDB 不断扩大的吸引力的一部分;虽然它永远不会被视为纯粹的分析数据库,但将实时分析集成到操作平台中有令人信服的理由。我们已经看到了这一点与其他 NoSQL 操作平台。正如我们将在下面提到的,这可以为在数据库中运行 ML 推理工作负载提供跳板。
展望未来
MongoDB 的一个子主题是提供“统一的数据体验”。当我们问他们这意味着什么时,他们的回答是会见他们运营的客户,无论是在本地、在云中还是在世界任何地区。人们也可以说这是关于不同的数据或工作负载类型,时间序列的支持是一个主要的新推力。事实上,这一切都建立在 JSON 的灵活性之上。在 5.0 版本之前,MongoDB 中没有任何内容可以阻止客户使用它来存储时间序列数据。这同样与图形数据。由于 MongoDB 将自己定位为通用操作数据库,我们希望听到更多有关多模型支持的消息。
这将我们引向 SQL。到目前为止,MongoDB 一直通过BI 连接器与 SQL 保持一定距离,该连接器支持 Tableaus、Qliks 或其他 BI 可视化工具通过 ODBC 访问数据。早些时候,该公司对 SQL 的需求非常不屑一顾,甚至在提供给分析师的一些最新简报材料中,也包括对 SQL 缺点的批评性陈述。
但是,如果 MongoDB 渴望提供统一的数据体验,它必须更加欢迎那里庞大的 SQL 社区,这种社区不会很快消失。我们预计,随着 MongoDB 扩大其成为下一个默认企业数据库的信息,它将更积极地吸引 DBA,也许还有数据科学家。
如前所述,适应 SQL 人群将是一个明显的开始——技能库太大而不容忽视。MongoDB 可以通过多种方式到达那里。例如, 像 MySQL 一样,底层存储引擎是可插拔的。现在,我们不知道 MongoDB 是否必须采用与 SQL 兼容的存储引擎。因此,更实用的选择可能是添加 SQL 物化视图。我们的猜测是关系视图可以出现在查询层中,将视图投影到底层文档数据上。作为公司现任 CTO Mark Porter,其背景故事包括 Amazon Aurora 和 Oracle,MongoDB 现在有一个精通服务于数据组织这一方面的人。
我们预计 MongoDB 的议程上还有其他几个项目。随着 Atlas 的快速增长(22 财年第一季度的收入同比增长 73%),我们自然而然的好奇心转向了希望云操作简单的本地客户。还有混合云平台,从Kubernetes 变体到AWS Outposts或IBM Cloud Satellite 等产品,可以为 MongoDB 提供托管渠道,以在本地提供完整的供应商管理的 DBaaS 体验。
然后是房间里的 16 吨大猩猩:人工智能和机器学习,以及向数据科学家求爱。我们还没有从 MongoDB 听到太多消息,但它正在为更有效地运行此类工作负载奠定基础。是的,MongoDB 确实有连接到Databricks和Iguazio 的连接器,在那里提供数据并运行和管理模型。而且,是的,有第三方喜欢获取 Mongo 数据并将其传送到 ML 模型可以执行预测分析的数据仓库。有了统一的数据体验主题,MongoDB 在内部采用可操作的 AI 工作负载是有意义的。
上一条: 亚马逊开始使用其品牌域名