流数据存在于事件流平台(如 Apache Kafka)中,这些系统本质上是不可变的分布式日志。事件流平台使用 API 发布和消费事件数据。
开发人员需要使用流处理器来执行更高级的处理,例如有状态的聚合、窗口操作、突变以及创建物化视图。这些操作与在数据库上运行查询时执行的操作类似,只不过流处理是对无穷无尽的数据流进行连续查询。流处理的这一领域相对较新;不过,Apache Flink 和 Spark Streaming 等技术正在迅速得到推广。
借助 Atlas Stream Processing,MongoDB 为开发人员提供了一种更好的方法,利用聚合框架在应用程序中处理流。
流处理是持续发生的。在构建事件驱动型应用程序的背景下,流处理可实现卓越的反应式体验,如实时通知、个性化、路线规划或预测性维护。
批量处理不适用于持续生成的数据。相反,批量处理的处理方式是在指定时间内收集数据,然后根据需要处理这些静态数据。批量处理的一个示例是,零售企业在每天营业结束时收集销售数据,用于报告和/或更新库存水平。