Atlas Stream Processing 现已推出公共预览版

Clark Gates-George and Joe Niemiec

今天,我们很高兴地宣布,Atlas Stream Processing现已推出公共预览版。在Atlas平台上有兴趣尝试这项功能的开发者都享有完全的访问权限。参阅相关文档了解更多详细信息,或立即开始使用。

欢迎收听MongoDB播客,聆听流媒体产品负责人Kenny Gorman对于Atlas Stream Processing公共预览版的详细介绍。


开发者青睐文档模型的灵活性、易用性以及Query API查询方式,这使得他们能够在MongoDB Atlas中以代码方式处理数据。借助Atlas Stream Processing,我们将这些相同的基本原则应用于流处理中。Atlas Stream Processing在2023年纽约MongoDB用户大会上首次推出,它正在重塑旨在聚合和丰富快速变化的事件数据流的体验,并统一了处理流动数据和静态数据的方法。

到目前为止,开发者使用该产品的情况如何?我们从中学到了什么?

在内测阶段,我们收到了数千个开发团队关于希望获取访问权限的请求,并且从数百个参与团队中收集了有价值的反馈意见。其中一些用例包括:

  • 某全球领先的航空公司利用复杂的聚合技术,快速处理维护和运营数据,以确保航班能够准时起飞和到达,满足成千上万名乘客的需求;

  • 某大型能源设备制造商使用Atlas Stream Processing来连续监控关于泵设备的海量数据,以避免意外停机并提升运行效果;以及

  • 某创新型企业“软件即服务”(SaaS)提供商充分利用Atlas Stream Processing中丰富的处理功能来及时提供包含背景信息的产品内警报,从而提升产品参与度。

这些用例仅仅是我们在各行各业中观察到的Atlas Stream Processing众多应用实例中的一小部分。除了我们观察到的众多用例外,开发者也向我们提供了丰富的见解,使我们了解到他们希望未来Atlas Stream Processing应添加哪些功能。

除了支持通过 change stream 对 Atlas 数据库中的数据进行持续处理外,开发者可使用 Atlas Stream Processing 处理由 ConfluentAmazon MSKAzure Event HubsRedpanda 等重要合作伙伴托管的 Kafka 数据,此功能也非常强大。我们开发者数据平台功能的目标始终是为开发者所依赖的关键技术提供更好的体验。

公共预览版中有哪些新功能?

基于上述情况,我们增加了新功能。随着使用团队数量的增加,我们正在扩展功能,以便将在内测阶段收集到的呼声最高的反馈意见纳入其中。通过梳理大量的反馈意见,我们从中总结出了三个共同的主题:

  1. 提升开发者体验

  2. 扩展高级特性和功能

  3. 改善运行和增强安全性

提升开发者体验

在内测阶段,我们将开发者体验置于核心位置,这对于促使Atlas Stream Processing成为开发团队的首选解决方案至关重要。在公共预览版中,我们更注重提升开发者的体验,为此我们增加了两项增强型功能。

  • VS Code 集成
    MongoDB VS Code插件增加了对连接流处理实例的支持。对于那些已经使用了该插件的开发者而言,随着这项新功能的引入,团队能够在熟悉的开发环境中轻松地创建和管理处理器。这意味开发者不再需要频繁切换工具,而可以将更多时间用来构建应用程序!

  • 改进了死信队列 (DLQ) 功能
    DLQ支持是实现强大流处理功能的关键要素,在公开预览版中,我们进一步扩展了DLQ功能。现在,当使用sp.process()来执行管道操作以及在运行中的处理器上运行.sample()时,DLQ消息将自动显示,这样可以简化开发工作,而无需设置目标集合来充当DLQ。

扩展高级特性和功能

Atlas Stream Processing原本就已经支持很多常用的聚合操作符,这些操作符在静态数据Query API查询中经常被开发者所使用。而且我们还增加了强大的窗口功能,以及可轻松合并数据并将其发送到Atlas数据库或Kafka主题的功能。公开预览版将提供更多功能,以满足那些依靠流处理来提供卓越客户体验的先进团队的需求,包括:

  • $lookup操作符
    现在,开发者可以通过使用远程Atlas集群的数据,对流处理器中正在处理的文档以及目标集合中的字段进行连接,从而丰富流处理器中正在处理的文档。

  • 变更流变更前后文档信息的存储
    许多开发者正在使用Atlas Stream Processing通过变更流持续处理Atlas数据库(作为源)中的数据。我们在公共预览中增强了变更流$source变量,以支持变更前和变更后文档信息的存储。这一功能使得开发者能够处理一些常见的用例,包括计算文档中字段之间的增量或差异,以及访问已删除文档的完整内容等。

  • 在合并和发出阶段使用动态表达式进行条件路由
    通过条件路由,开发者可以使用Atlas Stream Processing正在处理的文档中的字段值,动态地将特定的消息发送到不同的Atlas集合或Kafka主题。现在$merge和$emit阶段也支持使用动态表达式。基于此,用户可以根据需求,在需要将信息分发到不同集合或主题的用例中使用Query API查询。

  • 空闲流超时
    现在,用户可以对那些因缺乏传入数据导致水印无法更新的流进行配置,在特定时间段后关闭这些数据流,并输出窗口结果。这对于处理数据流不一致的流媒体源来说至关重要。

改善运行和增强安全性

最后,在最近几个月,我们加大投入力度,改善Atlas Stream Processing的运行和安全。其中一些亮点包括:

  • 检查点
    目前,Atlas Stream Processing通过执行检查点的方式,在处理数据流过程中保存状态信息。由于流处理器处于持续运行状态,无论出现数据问题还是基础设施故障,都需要一种智能的恢复机制来确保它能够持续可靠地运行。通过采用检查点机制,用户可以轻松地从停止收集和处理数据的位置恢复流处理器的正常运行。

  • Terraform提供商支持
    Terraform目前支持创建连接和流处理实例(SPI)。这样可以将基础架构编写为可重复部署的代码。

  • 安全角色
    Atlas Stream Processing引入了项目级角色,为用户提供了执行流处理任务所需的完整权限。流处理器能够在特定角色的环境下运行,支持最低权限的配置选项。

  • Kafka消费者群组支持
    Atlas Stream Processing中的流处理器现在采用Kafka消费者群组来进行偏移跟踪。得益于此,用户可以轻松地调整处理器在流操作中的位置,并实时监控潜在的处理器延迟情况。

关于新功能的最后一点说明是,我们计划在Atlas Stream Processing的公开预览版中,开始按照促销价格收取费用,直至可广泛使用的版本正式发布。更多关于Atlas Stream Processing价格的详细信息,请参阅我们的相关文档。

即刻构建您的第一个流处理器

对我们而言,公共预览版的推出是重要的一步,它标志着我们的开发者数据平台得到了扩展,为更多团队提供了流处理解决方案。该解决方案旨在简化构建反应式、响应式和事件驱动型应用程序的操作复杂性,同时提升开发者的体验。

我们非常期待能够看到您构建的内容!

立即登录以开始使用或在我们的文档资源教程或 MongoDB University 上的 Learning Byte 中了解有关 Atlas Stream Processing 的更多信息。