0

0

凭什么说流处理是未来?

蓮花仙者

蓮花仙者

发布时间:2025-10-04 09:58:37

|

799人浏览过

|

来源于php中文网

原创

策划编辑|natalie

作者|Stephan Ewen

整理|秦江杰

编辑|Debra

本文整理自 Flink 创始公司 dataArtisans(现已更名为 Ververica)的联合创始人兼 CTO Stephan Ewen 在 Flink Forward China 2018 上的演讲《Stream Processing takes on Everything》。演讲主题看似大胆:流处理解决一切问题。很多人对 Flink 的认知仍停留在流处理引擎的层面,但实际上,Flink 还可以承担批处理和应用程序等多种任务。

在演讲中,Stephan 首先简要阐述了他对 Flink 功能的看法,之后深入探讨了一个特定领域的事件处理场景。这个场景乍看之下似乎不适合流处理,但在 Stephan 看来,这恰恰是一个有趣的流处理应用场景。

凭什么说流处理是未来?上图解释了为什么流处理能够应对一切问题。将数据视为流是一个自然而强大的概念。大部分数据是随着时间生成的流,比如一个 Petabyte 的数据不是凭空产生的。这些数据通常是一些事件的积累,比如支付、将商品放入购物车、网页浏览、传感器采样输出等。

基于数据是流的概念,我们对数据处理有了新的理解。比如,将过去的历史数据视为截至某一时刻的有限流,或者将实时处理应用视为从某一时刻开始处理未来到达的数据。如果在未来某个时刻停止,那么它就变成了处理从开始到停止时刻的有限数据的批处理。当然,它也可能一直运行,不断处理新到达的数据。这种对数据的理解方式非常强大,基于此,Flink 能够支持数据处理领域内的所有场景。

凭什么说流处理是未来?最常见的 Flink 使用场景是流分析和连续处理(或称渐进式处理),Flink 在这些场景中实时或近实时地处理数据,或者采集并持续计算历史数据。

晓伟在之前的演讲中提到一个很好的例子,解释了如何通过优化 Flink 来处理有限数据集,使得 Flink 能够很好地支持批处理场景,并且在性能上与最先进的批处理引擎相媲美。

百度MCP广场
百度MCP广场

探索海量可用的MCP Servers

下载

而在另一端,我今天将要介绍的事件驱动应用的场景。这种应用在任何服务或微服务架构中都很常见。这些应用接收各种事件(可能是 RPC 调用或 HTTP 请求),并对这些事件作出响应,比如将商品放入购物车,或加入社交网络中的某个群组。

凭什么说流处理是未来?在进一步展开今天的演讲之前,我想先介绍一下社区在 Flink 的传统领域(实时分析、连续处理)近期所做的工作。

Flink 1.7 已于 2018 年 11 月 30 日发布。在 Flink 1.7 中,为典型的流处理场景添加了一些非常有趣的功能。比如我个人非常感兴趣的流式 SQL 中带时间版本的 Join。其基本思想是有两个不同的流,其中一个流被定义为随时间变化的参照表,另一个是与参照表进行 Join 的事件流。比如事件流是一个订单流,参照表是不断更新的汇率,每个订单需要使用最新的汇率进行换算,并将换算结果输出到结果表。

这个例子在标准 SQL 中实际上不容易表达,但在我们对 Streaming SQL 进行了一些小的扩展之后,这个逻辑表达变得非常简单,我们发现这样的表达有非常多的应用场景。

另一个在流处理领域非常强大的新功能是将复杂事件处理(CEP)和 SQL 结合。CEP 应用观察事件模式。比如某个 CEP 应用观察股市,当有两个上涨后紧跟一个下跌时,这个应用可能进行一些交易。再比如一个观察温度计的应用,当它发现有温度计在两个超过 90 摄氏度的读数之后的两分钟内没有任何操作,可能会进行一些操作。与 SQL 的结合使这类逻辑的表达变得非常简单。

第三个在 Flink 1.7 中做了很多工作的功能是 Schema 升级。这个功能与基于流的应用密切相关。就像你可以对数据库进行数据 Schema 升级一样,你可以修改 Flink 表中列的类型或重新定义一个列。

另外,我想简单介绍的是流处理技术不仅仅是简单地对数据进行计算,这还包括了与外部系统进行事务交互。流处理引擎需要在采用不同协议的系统之间以事务的方式移动数据,并保证计算过程和数据的一致性。这一部分功能也在 Flink 1.7 中得到了增强。

凭什么说流处理是未来?

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

683

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

320

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

347

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

1095

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

357

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

676

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

575

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

417

2024.04.29

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

11

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
极客学院Java8新特性视频教程
极客学院Java8新特性视频教程

共17课时 | 3.8万人学习

ASP 教程
ASP 教程

共34课时 | 3.7万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号