流式处理数据库是什么?
流式处理数据库是一种专门设计用于处理大量实时流数据的数据库。与传统数据库不同,流数据库在生成数据后立即对其进行处理,从而实现实时洞察和分析。流数据库可以存储数据并响应用户数据访问请求,适用于实时分析、欺诈检测、网络监控和物联网(IoT)等延迟关键型应用程序。流数据库可以简化技术堆栈。
简史
流数据库的概念于2002年首次在学术界引入。一组研究人员建立了第一个流数据库Aurora,用于管理数据库内部数据流。几年后,大型企业采用了这项技术。数据库供应商Oracle、IBM和Microsoft推出了他们的流处理解决方案,称为Oracle CQL,IBM System S和Microsoft SQLServer StreamInsight。这些供应商将流处理功能集成到其现有数据库中。
自2000年代后期以来,受MapReduce启发的开发人员将流处理功能与数据库系统分离,并开发了大规模的流处理引擎,包括Apache Storm、Apache Samza、Apache Flink和Apache Spark Streaming。这些系统旨在持续处理摄取的数据流,并将结果交付给下游系统。但是,与流式数据库相比,流处理引擎不存储数据,因此无法为用户启动的即席查询提供服务。
流数据库与流处理引擎并行发展。两个流数据库PipelineDB和KsqlDB是在2010年代开发的。在2020年代初期,出现了一些基于云的流媒体数据库,如RisingWave、Materialize和DeltaStream。这些产品旨在为用户提供云中的流式数据库服务,并设计了充分利用云资源的架构。
典型用例
流式数据库非常适合需要最新结果的实时应用程序,新鲜度要求从亚秒到几分钟不等。IoT和网络监控等应用程序需要亚秒级延迟,广告推荐、库存仪表板和食品配送等应用