加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Apache Flink 漫谈系列 - SQL概览

发布时间:2018-11-15 16:12:14 所属栏目:教程 来源:孙金城
导读:一、SQL简述 SQL是Structured Query Language的缩写,最初是由美国计较机科学家Donald D. Chamberlin和Raymond F. Boyce在20世纪70年月早期从 Early History of SQL 中相识相关模子后在IBM开拓的。该版本最初称为[SEQUEL: A Structured English Query Lang

我们做任何数据计较都离不开读取原始数据,计较逻辑和写入计较功效数据三部门,虽然基于Apache Flink SQL编写的计较Job也离不开这三个部门,如下所示:

Apache Flink 漫谈系列 - SQL概览

如上所示,一个完备的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中:

  • 下载源码:
    1. // 下载源代码 
    2. git clone https://github.com/apache/flink.git study 
    3. // 进入源码目次 
    4. cd study 
    5. // 拉取不变版release-1.6 
    6. git fetch origin release-1.6:release-1.6 
    7. //切换到不变版 
    8. git checkout release-1.6 
    9. //将依靠安装到当地mvn客栈,耐性守候必要一段时刻 
    10. mvn clean install -DskipTests 
  • 导入到IDEA:将Flink源码导入到IDEA进程这里不再占用篇幅,导入后确保在IDEA中可以运行 org.apache.flink.table.runtime.stream.sql.SqlITCase 并测试所有通过,即证明体验情形已经完成。如下图所示:
  • Apache Flink 漫谈系列 - SQL概览

如上图运行测试后表现测试通过,我们就可以继承下面的Apache Flink SQL成果体验了。

(2) 依靠Flink包方法

我们尚有一种更简朴直接的方法,就是新建一个mvn项目,并在pom中添加如下依靠:

  1. <properties> 
  2. <table.version>1.6-SNAPSHOT</table.version> 
  3. </properties> 
  4.  
  5. <dependencies> 
  6. <dependency> 
  7. <groupId>org.apache.flink</groupId> 
  8. <artifactId>flink-table_2.11</artifactId> 
  9. <version>${table.version}</version> 
  10. </dependency> 
  11.  
  12. <dependency> 
  13. <groupId>org.apache.flink</groupId> 
  14. <artifactId>flink-scala_2.11</artifactId> 
  15. <version>${table.version}</version> 
  16. </dependency> 
  17.  
  18. <dependency> 
  19. <groupId>org.apache.flink</groupId> 
  20. <artifactId>flink-streaming-scala_2.11</artifactId> 
  21. <version>${table.version}</version> 
  22. </dependency> 
  23.  
  24. <dependency> 
  25. <groupId>org.apache.flink</groupId> 
  26. <artifactId>flink-streaming-java_2.11</artifactId> 
  27. <version>${table.version}</version> 
  28. </dependency> 
  29.  
  30. <dependency> 
  31. <groupId>JUnit</groupId> 
  32. <artifactId>JUnit</artifactId> 
  33. <version>4.12</version> 
  34. </dependency> 
  35.  
  36. </dependencies> 

完成情形筹备后,我们开始筹备测试数据和写一个简朴的测试类。

2. 示例数据及测试类

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读