我们做任何数据计较都离不开读取原始数据,计较逻辑和写入计较功效数据三部门,虽然基于Apache Flink 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 SQL 焦点算子
今朝Flink SQL支持Union,Join,Projection,Difference, Intersection以及Window等大大都传统数据库支持的操纵,接下来为各人别离举办简朴直观的先容。
1. 情形
为了很好的体验和领略Apache Flink SQL算子我们必要先筹备一下测试情形,我们选择IDEA,以ITCase测试方法来举办体验。IDEA 安装这里不占篇幅先容了,信托各人能轻松搞定!我们举办成果体验有两种方法,详细如下:
(1) 源码方法
对付开源喜爱者也许更喜畛卮代码方法领略和体验Apache Flink SQL成果,那么我们必要下载源代码并导入到IDEA中:
- // 下载源代码
- git clone https://github.com/apache/flink.git study
- // 进入源码目次
- cd study
- // 拉取不变版release-1.6
- git fetch origin release-1.6:release-1.6
- //切换到不变版
- git checkout release-1.6
- //将依靠安装到当地mvn客栈,耐性守候必要一段时刻
- mvn clean install -DskipTests
导入到IDEA:将Flink源码导入到IDEA进程这里不再占用篇幅,导入后确保在IDEA中可以运行 org.apache.flink.table.runtime.stream.sql.SqlITCase 并测试所有通过,即证明体验情形已经完成。如下图所示:

如上图运行测试后表现测试通过,我们就可以继承下面的Apache Flink SQL成果体验了。
(2) 依靠Flink包方法
我们尚有一种更简朴直接的方法,就是新建一个mvn项目,并在pom中添加如下依靠:
- <properties>
- <table.version>1.6-SNAPSHOT</table.version>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.flink</groupId>
- <artifactId>flink-table_2.11</artifactId>
- <version>${table.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.flink</groupId>
- <artifactId>flink-scala_2.11</artifactId>
- <version>${table.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.flink</groupId>
- <artifactId>flink-streaming-scala_2.11</artifactId>
- <version>${table.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.flink</groupId>
- <artifactId>flink-streaming-java_2.11</artifactId>
- <version>${table.version}</version>
- </dependency>
-
- <dependency>
- <groupId>JUnit</groupId>
- <artifactId>JUnit</artifactId>
- <version>4.12</version>
- </dependency>
-
- </dependencies>
完成情形筹备后,我们开始筹备测试数据和写一个简朴的测试类。
2. 示例数据及测试类
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|