about云开发

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1245|回复: 1

[连载型] 彻底明白Flink系统学习20:【Flink1.7】Table API 和SQL概述

[复制链接]
发表于 2019-1-9 16:22:38 | 显示全部楼层 |阅读模式
问题导读

1.Flink有哪两个关系API?
2.Table API有那两种语言?
3.Table API和SQL接口彼此集成的好处是什么?
4.DataStream和DataSet API是否是集成的?
5.如何在项目中使用Table API和SQL?

上一篇
彻底明白Flink系统学习19:【Flink1.7】开发之本地与集群执行详解【附例子】
http://www.aboutyun.com/forum.php?mod=viewthread&tid=26587

Apache Flink具有两个关系API  - 表API和SQL  - 用于统一流和批处理。 Table API是Scala和Java的语言集成查询API,查询允许组合关系运算符,例如selection,过滤和连接。 Flink的SQL支持基于实现SQL标准的Apache Calcite
Table API和SQL接口彼此集成,以及Flink的DataStream和DataSet API亦是。可以在基于API构建的所有API和库之间切换。例如,可以使用CEP库从DataStream中提取模式,然后使用Table API分析模式,或者可以在预处理上运行Gelly图算法之前使用SQL查询扫描,过滤和聚合批处理表数据。

注意,Table API和SQL很多功能正在开发中。 并非[Table API,SQL]和[stream,batch]输入的每种组合都支持所有操作。

设置
Table API和SQL在flink-table Maven中。 必须将以下依赖项添加到项目中才能使用Table API和SQL:
[XML] 纯文本查看 复制代码
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-table_2.11</artifactId>
  <version>1.7.0</version>
</dependency>


此外,需要为Flink的Scala批处理或流API添加依赖项。 对于批处理查询,需要添加:
[XML] 纯文本查看 复制代码
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-scala_2.11</artifactId>
  <version>1.7.0</version>
</dependency>


对于流式查询,需要添加:
[XML] 纯文本查看 复制代码
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-streaming-scala_2.11</artifactId>
  <version>1.7.0</version>
</dependency>

注意:由于Apache Calcite中存在阻止用户类加载器被垃圾收集的问题,我们不建议构建包含flink-table依赖关系的fat-jar。 相反,我们建议配置Flink以在系统类加载器中包含flink-table依赖项。 这可以通过将.ink文件夹中的flink-table.jar文件复制到./lib文件夹来完成。 有关详细信息,请参阅这些说明

最新经典文章,欢迎关注公众号





您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /3 下一条

QQ|小黑屋|about云开发-学问论坛|社区 ( 京ICP备12023829号

GMT+8, 2019-3-24 19:17 , Processed in 0.368925 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2 Licensed

快速回复 返回顶部 返回列表