Confluent 是一个围绕 Apache Kafka 构建的数据流平台。它提供托管服务、连接器、治理、架构管理、安全和流处理工具,以帮助组织大规模运行 Kafka。
其他流数据平台和服务包括:
流处理框架是开发人员用于处理和分析动态数据的工具。虽然像 Kafka 这样的流平台专注于提取、存储和传输事件,但流处理框架专注于计算:在数据流经管道时对其进行过滤、转换、连接、聚合和分析。
许多流处理框架与 Kafka 集成,将 Kafka 主题作为传入事件的源和处理结果的目标。
流处理框架和工具的例子包括:
想象一下监测患者的生命体征,但每隔几个小时才检查一次数据——医护人员将会错过需要立即采取行动的关键变化。
各行业的组织如果仅依赖延迟的或基于批处理的数据处理,也会面临类似的风险。 为了快速而精准地行动,他们需要在事件发生时就能获取信息。流处理系统通过持续实时地提取和分析数据,减少了 计划批处理提取、转换、加载 (ETL) 工作负载中固有的延迟,从而满足了这一需求。
通过实时处理来自 混合云 和 多云 环境中分布式系统(如 关系数据库、 数据湖、消息队列、IoT 设备和 企业应用程序)的数据,流处理帮助组织构建更统一、近乎实时的运营数据视图。这支持了 异常检测、欺诈预防、动态定价和实时个性化等用例。
流处理对于扩展依赖于持续更新数据的 AI 计划也变得越来越重要。随着数据量和模型复杂性的增长,企业数据基础设施必须能够处理高吞吐量并在分布式环境中快速扩展。
IBM 商业价值研究院的研究 表明,约一半的受访组织正在优先考虑 网络优化、更快速的 数据处理 和 分布式计算,以支持现代工作负载。如果没有处理并交付实时、海量数据的能力,组织将面临洞察延迟、 模型准确性 降低以及错失竞争优势的风险。
通过 Think 时事通讯,了解有关 AI、自动化、数据等方面最重要且最有趣的行业趋势。请参阅 IBM 隐私声明。
流处理在需要实时响应的 AI 应用程序中发挥着重要作用。例如,用于 预测性维护、欺诈检测、自主系统和个性化推荐的 AI 系统,通常依赖新鲜、高速的数据来生成及时的预测或决策。
通过让 AI 应用程序在数据产生时(无论是来自工业设备的传感器读数,还是网站上的用户行为)就能提取并据此采取行动,流处理帮助 AI 系统实时响应变化。这种能力提高了 AI 输出的准确性和相关性。事实上,根据 IBM 商业价值研究院的数据,近 55% 的受访组织将以实时 AI 能力提升客户体验作为投资 AI 基础设施的主要驱动力。
流处理还支持 AI 模型的部署和改进。流管道将实时数据传送到数据湖、数据仓库或特征存储中,为模型监控、评估和随着时间的推移重新训练提供持续的数据源。
流处理提供了广泛的优势,帮助组织实时响应事件、优化资源、集成数据生态系统中的 各种数据源 并支持数据驱动的应用程序。主要优势包括:
流处理使组织能够在数据产生时进行分析,从而更快地发现趋势、异常或机会。通过减少数据生成与分析之间的延迟,企业可以在毫秒内对事件做出响应——这对网络安全、欺诈检测、监控和其他时间敏感的工作负载至关重要。
流处理技术可以处理跨分布式系统的大量数据,并根据需求变化扩展容量。这种弹性使企业能够灵活适应波动的工作负载、集成各种数据源并支持新用例,而无需重构其基础设施。
流处理可以通过 推荐引擎 和响应式界面支持实时个性化。这些能力帮助企业提供更吸引人、更贴合的客户体验。
持续实时地监控系统、 供应链 和基础设施,有助于组织实现主动维护和流程优化,减少停机时间并降低成本。
流处理技术可以补充批处理系统,帮助组织同时分析历史数据和实时数据。例如,Apache Spark 同时支持批处理和流分析,而 Apache Kafka 可以作为事件流基础,处理供下游处理使用的事件数据。
流处理的核心遵循三阶段模型:
在摄取阶段,流连接器或事件流平台从传感器、联网设备、移动应用程序或企业系统等来源捕获实时数据。传入的数据通常是无边界的,并且持续到达,这意味着它没有固定的终点,并且随着新事件的发生可以无限增长。Kafka Connect 和 Apache Pulsar 等工具是处理高速 数据摄取的关键工具。
输出流是最后阶段,处理后的数据被传送到下游系统,例如用于监控的实时仪表板、用于存储的数据库,或用于启动工作流和警报的自动化系统。在许多情况下,处理后的数据也会被路由到数据湖进行灵活探索,或路由到数据仓库进行结构化查询和报告。
来自不同系统和设备的输入会产生大量快速移动的数据,需要低延迟处理。为了有效处理这些数据,组织需要能够水平扩展、在节点间分配工作负载并在数据量波动时保持性能的流处理引擎和设计系统。
组织还必须考虑流处理如何融入更广泛的数据生态系统。这种整合可能具有挑战性,因为数据团队需要确定哪些数据应实时处理,哪些应存储供后续分析,以及流系统应如何与现有应用程序和管道交互。
流应用程序经常通过 应用程序编程接口 (API)、事件驱动接口和微服务与其他服务交互,这些接口和微服务专为低延迟通信和容错而设计。此外,开发人员还应考虑用于分析动态数据的算法的复杂性,无论是用于异常检测、预测建模还是实时 决策。
流处理要求团队选择适合其性能、可扩展性和开发需求的工具和语言。开发人员通常使用 Java 和 Python,它们在流处理生态系统中各有不同的用途。Java 通常用于在 Apache Kafka 和 Apache Flink 等框架中构建可扩展的生产级管道,而 Python 则用于快速原型开发以及将机器学习模型集成到流工作流中。
为了在数据流经系统时保持其一致性和可解释性,流处理平台依赖于 架构,这些模式定义了数据的格式、类型和结构。这些模式有助于跨分布式节点验证数据,并支持实时查询。如果没有强有力的模式治理,事件格式的更改可能会破坏下游应用程序、仪表板或机器学习管道。
许多流处理平台提供类似 SQL 的接口,允许用户无需编写复杂代码即可对流数据进行过滤、聚合和连接。然而,查询动态数据可能具有挑战性。组织还需要将流系统与批处理和历史分析环境集成,以将实时洞察与历史背景相结合,这可能会增加复杂性。
各行业的组织正在采用流处理应用程序,以便在数据生成的那一刻就采取行动。以下是不同行业如何利用流处理来提高效率、患者治疗效果、客户参与度等的示例。
银行使用流处理在交易发生时对其进行分析,快速发现异常模式或异常情况。通过关联位置、设备和交易历史等多个数据点,系统可以在可疑活动升级之前将其标记出来。实时洞察还使交易员和风险管理人员能够立即对波动做出响应。通过整合来自交易所和内部系统的实时数据源,组织可以更快地做出明智决策并降低风险。
流处理通过实时提取保单详情、照片、IoT 传感器和其他数据源的数据,加速了索赔核验。自动化工作流可以即时批准简单的索赔,同时将复杂的案件转交审核。这减少了处理时间,提高了客户满意度并降低了运营成本。
医院和医疗保健提供者利用流处理来识别可能预示并发症(如败血症、心力衰竭或肺炎)的模式,从而主动进行及时干预并改善患者治疗效果。例如,埃默里大学医院使用 IBM 的流分析平台,在其 ICU 中每秒处理每名患者超过 10 万个数据点,并即时检测到危及生命的变化,从而实现更快的干预。1
电信提供商使用流处理实时监控网络性能和客户交互。运营商可以利用流分析每天处理数十亿条通话详单记录,即时检测服务异常和欺诈活动。通过在通话发生时分析语音和事件流,该系统还能预测客户流失风险,并主动将客户转接给挽留专员。
在流处理和批处理之间做出选择,取决于数据的性质、洞察的紧迫性以及分析的复杂性。
流处理适用于需要实时或近乎实时响应的工作负载。例如,流处理能够实现实时数据分析、实时监控、个性化推荐和动态库存管理,因为它可以在数据流经管道时持续处理海量数据。
另一方面,批处理更适用于处理大规模历史数据或延迟要求不那么严格的场景。批处理通常用于报告、数据仓库和长期趋势分析等任务,这些任务按计划时间间隔收集、存储和处理来自多个数据源的数据。
对于不需要即时结果的工作负载,批处理实现起来更简单,成本效益也更高。在许多现代架构中,组织会结合使用两种方式:用流处理获取即时洞察,用批处理进行更深入的回顾性分析。这种混合模式最大化了实时数据和历史数据的价值。
使用 IBM DataOps 平台解决方案整理您的数据,使其值得信赖并为 AI 做好业务准备。
通过直观的图形界面创建和管理智能流数据管道,促进跨混合和多云环境的无缝数据集成。
通过 IBM Consulting 发掘企业数据的价值,建立以洞察分析为导向的组织,实现业务优势。
1 埃默里大学医院探索“未来的重症监护病房”, 埃默里大学新闻中心,2013 年 11 月 5 日