Apache Flink SQL
本篇核心目标是让大家概要了解一个完整的 Apache Flink SQL Job 的组成部分,以及 Apache Flink SQL 所提供的核心算子的语义,后会应用 TumbleWindow 编写一个 End-to-End 的页面访问的统计示例。
1.Apache Flink SQL Job 的组成
我们做任何数据计算都离不开读取原始数据,计算逻辑和写入计算结果数据三部分,当然基于 ApacheFlink SQL 编写的计算 Job 也离不开这个三部分,如下所所示:
如上所示,一个完整的 Apache Flink SQL Job 由如下三部分:
- Source Operator – Soruce operator 是对外部数据源的抽象, 目前 Apache Flink 内置了很多常用的数据源实现,比如上图提到的 Kafka。
- Query Operators – 查询算子主要完成如图的 Query Logic,目前支持了Union,Join,Projection,Difference, Intersection 以及 window 等大多数传统数据库支持的操作。
- Sink Operator – Sink operator 是对外结果表的抽象,目前 Apache Flink 也内置了很多常用的结果表的抽象,比如上图提到的 Kafka。
大数据Flink讨论群
2.Apache Flink SQL 核心算子
SQL 是 StructuredQuevy Language 的缩写,初是由美国计算机科学家 Donald D. Chamberlin 和 Raymond F. Boyce 在 20 世纪 70 年代早期从 Early History of SQL 中了解关系模型后在 IBM 开发的。该版本初称为[SEQUEL: A Structured EnglishQuery Language](结构化英语查询语言),旨在操纵和检索存储在 IBM 原始准关系数据库管理系统 System R 中的数据。直到 1986 年, ANSI 和 ISO 标准组正式采用了标准的”数据库语言 SQL”语言定义。Apache Flink SQL 核心算子的语义设计也参考了 1992 、2011 等 ANSI-SQL 标准。接下来我们将简单为大家介绍 Apache Flink SQL 每一个算子的语义。
2.1 SELECT
SELECT 用于从数据集/流中选择数据,语法遵循 ANSI-SQL 标准,语义是关系代数中的投影(Projection),对关系进行垂直分割,消去某些列。
一个使用 Select 的语句如下:
SELECT ColA, ColC FROME tab ;
相关文章