日前,MongoDB宣布推出Atlas Stream Processing公共预览版。
在Atlas平台上有兴趣尝试这项功能的开发者都享有完全的访问权限,可前往“阅读原文”链接点击了解更多详细信息或立即开始使用。
开发者喜欢文档型数据库的灵活性、易用性以及Query API查询方式,能够在MongoDB Atlas中以代码方式处理数据。借助Atlas Stream Processing,MongoDB将这些相同的基本原则应用于流处理中。
Atlas Stream Processing于2023年美国纽约MongoDB用户大会上首次推出,它旨在重塑聚合和丰富快速变化的事件数据流的体验,并统一了处理流数据和静态数据的方法。
在内测阶段,MongoDB收到数千个开发团队关于希望获取访问权限的请求,并且从数百个参与团队中收集了有价值的反馈意见。其中一些用例包括:
● 某全球领先的航空公司利用复杂的聚合技术,快速处理维护和运营数据,以确保航班能够准时起飞和到达,满足成千上万名乘客的需求;
● 某大型能源设备制造商使用Atlas Stream Processing来连续监控泵设备的海量数据,以避免意外停机并提升运行效果;
● 某创新型企业“软件即服务”(SaaS)提供商充分利用Atlas Stream Processing中丰富的处理功能来及时提供包含背景信息的产品内警报,从而提升产品参与度。
这些用例仅仅是MongoDB在各行各业中观察到的Atlas Stream Processing众多应用实例中的一小部分。
除了MongoDB观察到的众多用例外,开发者也向MongoDB提供了丰富的见解,使MongoDB了解到他们希望未来Atlas Stream Processing应添加哪些功能。
除了通过变更流在Atlas数据库中实现对数据的持续处理之外,许多开发者正在将Atlas Stream Processing与Kafka数据结合使用,这些Kafka数据被托管在Confluent Cloud、Amazon MSK、Azure Event Hubs和Redpanda等重要合作伙伴提供的服务中。在Atlas开发者数据平台功能方面,MongoDB的目标始终是为开发者所依赖的关键技术提供更好的体验。
随着使用团队数量的增加,MongoDB正在扩展功能,以便将在内测阶段收集到的呼声最高的反馈意见纳入其中。
通过梳理大量的反馈意见,MongoDB从中总结出了三个共同的主题:提升开发者体验、扩展高级特性和功能、改善运行和增强安全性。
提升开发者体验
MongoDB在内测阶段就将开发者体验置于核心位置,这对于促使Atlas Stream Processing成为开发团队的首选解决方案至关重要。在公共预览版中,MongoDB更注重提升开发者的体验,为此MongoDB增加了两项增强型功能。
● VS Code集成。MongoDB VS Code插件增加了对连接流处理实例的支持。对于那些已经使用了该插件的开发者而言,随着这项新功能的引入,团队能够在熟悉的开发环境中轻松地创建和管理处理器。这意味开发者不再需要频繁切换工具,而可以将更多时间用来构建应用程序!
● 改进死信队列(DLQ)功能。DLQ支持是实现强大流处理功能的关键要素,在公开预览版中,MongoDB进一步扩展了DLQ功能。现在,当使用sp.process()来执行管道操作以及在运行中的处理器上运行.sample()时,DLQ消息将自动显示,这样可以简化开发工作,而无需设置目标集合来充当DLQ。
扩展高级特性和功能
Atlas Stream Processing原本就已经支持很多常用的聚合操作符,这些操作符在静态数据Query API查询中经常被开发者所使用。而且MongoDB还增加了强大的窗口功能,以及可轻松合并数据并将其发送到Atlas数据库或Kafka主题的功能。
公开预览版将提供更多功能,以满足那些依靠流处理来提供卓越客户体验的先进团队的需求,包括:
●时间序列集合支持。Atlas Stream Processing现已支持将处理器的处理结果发送到时间序列集合中。这使得开发者能够通过Atlas Stream Processing连续地对数据进行预处理,并且将数据保存下来以便将来在时间序列集合中进行回顾访问(时间序列集合是Atlas平台上专为高效存储和查询时间序列数据而构建的一种集合类型)。
● $lookup操作符。现在,开发者可以通过使用远程Atlas集群的数据,对流处理器中正在处理的文档以及目标集合中的字段进行连接,从而丰富流处理器中正在处理的文档。
●变更流变更前后文档信息的存储。许多开发者正在使用Atlas Stream Processing通过变更流持续处理Atlas数据库(作为源)中的数据。MongoDB在公共预览中增强了变更流$source变量,以支持变更前和变更后文档信息的存储。这一功能使得开发者能够处理一些常见的用例,包括计算文档中字段之间的增量或差异,以及访问已删除文档的完整内容等。
● 在合并和发出阶段使用动态表达式进行条件路由。通过条件路由,开发者可以使用Atlas Stream Processing正在处理的文档中的字段值,动态地将特定的消息发送到不同的Atlas集合或Kafka主题。现在$merge和$emit阶段也支持使用动态表达式。基于此,用户可以根据需求,在需要将信息分发到不同集合或主题的用例中使用Query API查询。
● 空闲流超时。现在,用户可以对那些因缺乏传入数据导致水印无法更新的流进行配置,在特定时间段后关闭这些数据流,并输出窗口结果。这对于处理数据流不一致的流媒体源来说至关重要。
改善运行和增强安全性
最后,在最近几个月,MongoDB加大投入力度,改善Atlas Stream Processing的运行和安全。其中一些亮点包括:
● 检查点。目前,Atlas Stream Processing通过执行检查点的方式,在处理数据流过程中保存状态信息。由于流处理器处于持续运行状态,无论出现数据问题还是基础设施故障,都需要一种智能的恢复机制来确保它能够持续可靠地运行。通过采用检查点机制,用户可以轻松地从停止收集和处理数据的位置恢复流处理器的正常运行。
● Terraform提供商支持。Terraform目前支持创建连接和流处理实例(SPI)。这样可以将基础架构编写为可重复部署的代码。
● 安全角色。Atlas Stream Processing引入了项目级角色,为用户提供了执行流处理任务所需的完整权限。流处理器能够在特定角色的环境下运行,支持最低权限的配置选项。
● Kafka消费者群组支持。Atlas Stream Processing中的流处理器现在采用Kafka消费者群组来进行偏移跟踪。得益于此,用户可以轻松地调整处理器在流操作中的位置,并实时监控潜在的处理器延迟情况。
关于新功能的最后一点说明是,MongoDB计划在Atlas Stream Processing的公开预览版中,开始按照促销价格收取费用,直至可广泛使用的版本正式发布。更多关于Atlas Stream Processing价格的详细信息,请参阅MongoDB的相关文档。
对MongoDB而言,公共预览版的推出是重要的一步,它标志着MongoDB的开发者数据平台得到了扩展,为更多团队提供了流处理解决方案。该解决方案旨在简化构建反应式、响应式和事件驱动型应用程序的操作复杂性,同时提升开发者的体验。