你好,我是蔡元楠。
今天我要与你分享的主题是“从 SQL 到 Streaming SQL:突破静态数据查询的次元”。
在前面的章节中,我们介绍了一些流数据处理相关的知识和技术,比如 Apache Spark 的流处理模块——Spark Streaming 和 Structured Streaming,以及 Apache Beam 中的窗口处理。相信你对流处理的重要性和一些基本手段都有所了解了。
流处理之所以重要,是因为现在是个数据爆炸的时代,大部分数据源是每时每刻都在更新的,数据处理系统对时效性的要求都很高。作为当代和未来的数据处理架构师,我们势必要深刻掌握流数据处理的技能。
“批”“流”两手抓,两手都要硬。
你还记得,我在第 15 讲中介绍过的 Spark SQL 吗?它最大的优点就是 DataFrame/DataSet 是高级 API,提供类似于 SQL 的 query 接口,方便熟悉关系型数据库的开发人员使用。 当说到批处理的时候,我们第一个想到的工具就是 SQL,因为基本上每个数据从业者都懂,而且它的语法简单易懂,方便使用。那么,你也能很自然地联想到,如果在流处理的世界中也可以用 SQL,或者相似的语言,那真是太棒了。