什么是流处理?

流处理的定义

流处理是一种在数据实时生成时对其进行提取和分析的方法。


与处理静态 数据集的传统 批处理不同,流处理处理来自传感器、社交媒体平台、金融交易和 物联网 (IoT)  设备等各种来源的连续数据流。这些源系统中的每一个变化、操作或事件都可以表示为一个“事件”,这就是流处理有时也被称为“事件流处理”的原因。

这种 实时 方法帮助组织对新信息立即做出响应,使流处理成为 欺诈检测、 预测性分析 和个性化客户体验等应用程序的理想选择。诸如 Apache Kafka 之类的平台通常用于支持流处理,使系统能够可靠地、大规模地发布、传输和处理大量实时数据

流处理对于 人工智能 (AI)  和 机器学习 (ML)  应用程序也很重要,这些应用程序通常依赖于及时、持续更新的数据来生成准确的预测和洞察。 如果没有流处理,模型可能依赖于过时或不完整的数据,这会降低预测准确性并增加风险。

流处理架构

流处理架构包含实时提取、传输、处理和分析数据流的技术和模式。

在典型架构中,连续的数据流通过流数据平台,在那里被提取、存储并供下游系统使用。 然后,流处理框架和应用程序实时处理数据并将其传送到下游目标。

一些流处理架构遵循 Lambda 或 Kappa 等架构模式。Lambda 架构采用双管道方法,结合了批处理和流处理,通常用于支持历史数据分析和低延迟处理。Kappa 对所有数据使用单一流管道,这可以简化整体架构,通常用于事件驱动的数据。

流数据平台

流数据平台为实时数据管道和应用程序提供基础。它们充当消息高速公路和存储层,使数据能够在生成事件或系统与应用之间以及处理或分析这些事件的服务或应用之间流动。

Apache Kafka 是最广泛使用的 开源 事件流平台之一。通过其分布式、持久化的事件日志,Kafka 允许应用程序发布、订阅、存储和重放数据流。这些能力使其在实时分析应用程序集成、欺诈检测、物联网数据处理和事件驱动架构中非常有用。

Confluent 是一个围绕 Apache Kafka 构建的数据流平台。它提供托管服务、连接器、治理、架构管理、安全和流处理工具,以帮助组织大规模运行 Kafka。

其他流数据平台和服务包括:

  • 托管 Kafka 服务:为用户运行 Kafka 基础设施的云托管服务。

  • Amazon Kinesis:用于实时数据流和提取的云原生服务。

  • Google Cloud Pub/Sub:用于流式分析和应用集成的无服务器消息传递和事件提取服务。

  • Microsoft Azure Event Hubs:用于流数据工作负载的高吞吐量事件提取服务。

流处理框架

流处理框架是开发人员用于处理和分析动态数据的工具。虽然像 Kafka 这样的流平台专注于提取、存储和传输事件,但流处理框架专注于计算:在数据流经管道时对其进行过滤、转换、连接、聚合和分析。

许多流处理框架与 Kafka 集成,将 Kafka 主题作为传入事件的源和处理结果的目标。

流处理框架和工具的例子包括:

  • Kafka Streams: 用于直接在 Apache Kafka 上构建流处理应用程序的 Java 库。

  • ksqlDB: 基于 SQL 的流处理引擎,构建在 Kafka Streams 之上,允许开发人员使用 SQL 语法处理和查询流数据。

  • Apache Flink:具有内存管理的流处理框架,专为有状态计算和复杂事件处理而设计。它常用于欺诈检测和监控等用例。
  • Apache Spark Structured Streaming: 构建在原有 Apache Spark Streaming 解决方案之上,是支持实时分析与批处理并行的流处理引擎。它通常用于结合流数据和历史数据分析。

  • Apache Storm: 分布式实时计算系统,用于以极低延迟处理无界数据流。

为什么要使用流处理? 

想象一下监测患者的生命体征,但每隔几个小时才检查一次数据——医护人员将会错过需要立即采取行动的关键变化。

各行业的组织如果仅依赖延迟的或基于批处理的数据处理,也会面临类似的风险。 为了快速而精准地行动,他们需要在事件发生时就能获取信息。流处理系统通过持续实时地提取和分析数据,减少了 计划批处理提取、转换、加载 (ETL) 工作负载中固有的延迟,从而满足了这一需求。

通过实时处理来自 混合云 和 多云 环境中分布式系统(如 关系数据库、 数据湖、消息队列、IoT 设备和 企业应用程序)的数据,流处理帮助组织构建更统一、近乎实时的运营数据视图。这支持了 异常检测、欺诈预防、动态定价和实时个性化等用例。

流处理对于扩展依赖于持续更新数据的 AI 计划也变得越来越重要。随着数据量和模型复杂性的增长,企业数据基础设施必须能够处理高吞吐量并在分布式环境中快速扩展。

IBM 商业价值研究院的研究 表明,约一半的受访组织正在优先考虑 网络优化、更快速的 数据处理 和 分布式计算,以支持现代工作负载。如果没有处理并交付实时、海量数据的能力,组织将面临洞察延迟、 模型准确性 降低以及错失竞争优势的风险。

流处理如何赋能 AI?

流处理在需要实时响应的 AI 应用程序中发挥着重要作用。例如,用于 预测性维护、欺诈检测、自主系统和个性化推荐的 AI 系统,通常依赖新鲜、高速的数据来生成及时的预测或决策。

通过让 AI 应用程序在数据产生时(无论是来自工业设备的传感器读数,还是网站上的用户行为)就能提取并据此采取行动,流处理帮助 AI 系统实时响应变化。这种能力提高了 AI 输出的准确性和相关性。事实上,根据  IBM 商业价值研究院的数据,近 55% 的受访组织将以实时 AI 能力提升客户体验作为投资 AI 基础设施的主要驱动力。

流处理还支持 AI 模型的部署和改进。流管道将实时数据传送到数据湖、数据仓库或特征存储中,为模型监控、评估和随着时间的推移重新训练提供持续的数据源。

流处理的优势有哪些?

流处理提供了广泛的优势,帮助组织实时响应事件、优化资源、集成数据生态系统中的 各种数据源 并支持数据驱动的应用程序。主要优势包括:

  • 实时洞察,更快决策
  • 可扩展性和灵活性
  • 改善客户体验
  • 运营效率
  • 与数据生态系统整合
  • 支持混合架构

实时洞察,更快决策

流处理使组织能够在数据产生时进行分析,从而更快地发现趋势、异常或机会。通过减少数据生成与分析之间的延迟,企业可以在毫秒内对事件做出响应——这对网络安全、欺诈检测、监控和其他时间敏感的工作负载至关重要。

可扩展性和灵活性

流处理技术可以处理跨分布式系统的大量数据,并根据需求变化扩展容量。这种弹性使企业能够灵活适应波动的工作负载、集成各种数据源并支持新用例,而无需重构其基础设施。

改善客户体验

流处理可以通过 推荐引擎 和响应式界面支持实时个性化。这些能力帮助企业提供更吸引人、更贴合的客户体验。

运营效率

持续实时地监控系统、 供应链 和基础设施,有助于组织实现主动维护和流程优化,减少停机时间并降低成本。

与数据生态系统集成

流处理可以将实时数据持续送入数据湖、数据仓库、湖仓一体和管道中,支持 数据工程、分析、机器学习和商业智能工作流。

支持混合架构

流处理技术可以补充批处理系统,帮助组织同时分析历史数据和实时数据。例如,Apache Spark 同时支持批处理和流分析,而 Apache Kafka 可以作为事件流基础,处理供下游处理使用的事件数据。

AI Academy

数据管理是生成式 AI 的秘诀吗?

深入了解为什么高质量数据对于成功使用生成式 AI 至关重要。

流处理是如何工作的?

流处理的核心遵循三阶段模型:

  • 摄取
  • 正在处理
  • 输出

摄取

在摄取阶段,流连接器或事件流平台从传感器、联网设备、移动应用程序或企业系统等来源捕获实时数据。传入的数据通常是无边界的,并且持续到达,这意味着它没有固定的终点,并且随着新事件的发生可以无限增长。Kafka Connect 和 Apache Pulsar 等工具是处理高速 数据摄取的关键工具。

处理

在处理阶段,数据在到达时被转换、过滤、 丰富 或分析。这一阶段可以包括聚合指标、检测异常、连接多个流或应用机器学习模型进行实时推理等操作。

流处理器在 大数据 环境中尤其有价值,因为组织必须管理和分析来自不同来源的大量快速移动的数据。这些操作通过处理管道进行编排,管道定义了数据流经系统时应用的转换序列和逻辑。

输出

输出流是最后阶段,处理后的数据被传送到下游系统,例如用于监控的实时仪表板、用于存储的数据库,或用于启动工作流和警报的自动化系统。在许多情况下,处理后的数据也会被路由到数据湖进行灵活探索,或路由到数据仓库进行结构化查询和报告。

流处理的挑战

尽管流处理有许多好处,但它也可能在数据管理架构、集成和运维等多个方面带来挑战:

  • 管理来自不同来源的高容量、高速数据
  • 将 流处理 整合到更广泛的数据策略中
  • 设计可靠的  API  和 实时 应用程序逻辑
  • 选择合适的编程语言
  • 维护数据一致性和 架构 治理
  • 支持 实时 查询和混合分析

管理来自不同来源的高容量、高速数据

来自不同系统和设备的输入会产生大量快速移动的数据,需要低延迟处理。为了有效处理这些数据,组织需要能够水平扩展、在节点间分配工作负载并在数据量波动时保持性能的流处理引擎和设计系统。

将流处理整合到更广泛的数据策略中

组织还必须考虑流处理如何融入更广泛的数据生态系统。这种整合可能具有挑战性,因为数据团队需要确定哪些数据应实时处理,哪些应存储供后续分析,以及流系统应如何与现有应用程序和管道交互。

设计可靠的 API 和实时应用程序逻辑

流应用程序经常通过 应用程序编程接口 (API)、事件驱动接口和微服务与其他服务交互,这些接口和微服务专为低延迟通信和容错而设计。此外,开发人员还应考虑用于分析动态数据的算法的复杂性,无论是用于异常检测、预测建模还是实时 决策

选择合适的编程语言

流处理要求团队选择适合其性能、可扩展性和开发需求的工具和语言。开发人员通常使用  Java  和 Python,它们在流处理生态系统中各有不同的用途。Java 通常用于在 Apache Kafka 和 Apache Flink 等框架中构建可扩展的生产级管道,而 Python 则用于快速原型开发以及将机器学习模型集成到流工作流中。

维护数据一致性和架构治理

为了在数据流经系统时保持其一致性和可解释性,流处理平台依赖于 架构,这些模式定义了数据的格式、类型和结构。这些模式有助于跨分布式节点验证数据,并支持实时查询。如果没有强有力的模式治理,事件格式的更改可能会破坏下游应用程序、仪表板或机器学习管道。

支持实时查询和混合分析

许多流处理平台提供类似 SQL 的接口,允许用户无需编写复杂代码即可对流数据进行过滤、聚合和连接。然而,查询动态数据可能具有挑战性。组织还需要将流系统与批处理和历史分析环境集成,以将实时洞察与历史背景相结合,这可能会增加复杂性。

实际中的流处理用例

各行业的组织正在采用流处理应用程序,以便在数据生成的那一刻就采取行动。以下是不同行业如何利用流处理来提高效率、患者治疗效果、客户参与度等的示例。

银行与金融市场

银行使用流处理在交易发生时对其进行分析,快速发现异常模式或异常情况。通过关联位置、设备和交易历史等多个数据点,系统可以在可疑活动升级之前将其标记出来。实时洞察还使交易员和风险管理人员能够立即对波动做出响应。通过整合来自交易所和内部系统的实时数据源,组织可以更快地做出明智决策并降低风险

保险业

流处理通过实时提取保单详情、照片、IoT 传感器和其他数据源的数据,加速了索赔核验。自动化工作流可以即时批准简单的索赔,同时将复杂的案件转交审核。这减少了处理时间,提高了客户满意度并降低了运营成本。

医疗保健

医院和医疗保健提供者利用流处理来识别可能预示并发症(如败血症、心力衰竭或肺炎)的模式,从而主动进行及时干预并改善患者治疗效果。例如,埃默里大学医院使用 IBM 的流分析平台,在其 ICU 中每秒处理每名患者超过 10 万个数据点,并即时检测到危及生命的变化,从而实现更快的干预。1

电信业

电信提供商使用流处理实时监控网络性能和客户交互。运营商可以利用流分析每天处理数十亿条通话详单记录,即时检测服务异常和欺诈活动。通过在通话发生时分析语音和事件流,该系统还能预测客户流失风险,并主动将客户转接给挽留专员。

零售

零售商正在转向流处理,以更快地获取洞察并改进数据驱动决策。一家生鲜食品零售商从每天批处理数据一次转变为近乎实时的消息提取。该零售商每天处理来自 2400 多家门店的 5000 万条消息,事件驱动的消息架构使其能够快速发现盗窃等问题并做出更明智的决策。

流处理与批处理

在流处理和批处理之间做出选择,取决于数据的性质、洞察的紧迫性以及分析的复杂性。

流处理适用于需要实时或近乎实时响应的工作负载。例如,流处理能够实现实时数据分析、实时监控、个性化推荐和动态库存管理,因为它可以在数据流经管道时持续处理海量数据。

另一方面,批处理更适用于处理大规模历史数据或延迟要求不那么严格的场景。批处理通常用于报告、数据仓库和长期趋势分析等任务,这些任务按计划时间间隔收集、存储和处理来自多个数据源的数据。

对于不需要即时结果的工作负载,批处理实现起来更简单,成本效益也更高。在许多现代架构中,组织会结合使用两种方式:用流处理获取即时洞察,用批处理进行更深入的回顾性分析。这种混合模式最大化了实时数据和历史数据的价值。

作者

Judith Aquino

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

相关解决方案
DataOps 平台解决方案

使用 IBM DataOps 平台解决方案整理您的数据,使其值得信赖并为 AI 做好业务准备。

深入了解 DataOps 解决方案
IBM StreamSets

通过直观的图形界面创建和管理智能流数据管道,促进跨混合和多云环境的无缝数据集成。

深入了解流媒体集
数据和分析咨询服务

通过 IBM Consulting 发掘企业数据的价值,建立以洞察分析为导向的组织,实现业务优势。

了解分析服务
采取后续步骤

通过多种方式(包括批量处理、实时流和复制)整合结构化和非结构化数据,以免您将时间和金钱浪费在工具切换上。

  1. 深入了解 IBM watsonx.data integration
  2. 深入了解数据集成解决方案
脚注

1 埃默里大学医院探索“未来的重症监护病房” 埃默里大学新闻中心,2013 年 11 月 5 日