[从0到1学习Flink]---- 2.2 DataSet API & DataStream API & Table & SQL API 的对比
2018-12-22 11:47
751 查看
版权声明:尊重原创,转载请标明,本文转自 https://blog.csdn.net/high2011/article/details/85199030
说明
本文基于 Flink -1.6.0 版本进行整理和分析,如有不妥之处,敬请指正。
内容
一、Flink 的技术栈
图片来源:https://ci.apache.org/projects/flink/flink-docs-release-1.6/internals/components.html
[code]注意 Table API & SQL 统一了 DataStream API 和 DataSet API ,所以,如果没有特殊业务场景,建议多使用 Table API &SQL .
二、Flink 分层架构
图片来源:https://ci.apache.org/projects/flink/flink-docs-release-1.6/concepts/programming-model.html
说明
1、Table API & SQL: 描述性API ,基于优化。
2、DataStream API: 提供了比 ProcessFunction 更丰富的API。
3、ProcessFunction:最底层的 API
三 、对比Flink 分层架构中的技术 Stack
1、DataStream API
执行 的Graph
特性
(1)流处理API
- 在Process Function基础上增加了了⼀一些内置Operators
- Join, filter, project, coGroup, connect, window…
(2)所写即所得
- 直接定义物理操作
- 不经过优化器优化
2、DataSet API
执行 Graph
特性
(1)批处理API
- 在Process Function基础上增加了了⼀一些内置Operators
- Join, filter, project, coGroup, connect, …
- sort, distinct, max, min, etc.
(2)经过Flink自带的优化器
- 不一定有用
3、SQL
- 批流统一
- 基于关系代数的标准查询语⾔言
- Apache Calcite优化
4、Table API VS SQL
Table API | SQL | e.g | |
流批统一 | Y | Y | SELECT/AGG/WINDOW etc. |
功能扩展性 | Y | N | FlatAGG/Iteration/Column operation etc. |
表达方式扩展性 | Y | N | map/flatMap/ Row.flatten()/minus.intersect etc |
编译检查 |
Y | N | Java / Scala |
相关文章推荐
- Flink Table & SQL API--动态表与Redo和Undo
- Flink Table API和SQL实践
- .NET学习笔记-1:DataSet和SqlDataReader性能差异
- Java数据持久层框架 MyBatis之API学习七(动态 SQL详解)
- SQLServer\framework启动报异常:Module的类型初始值设定项引发异常 [转]QQ空间、新浪微博、腾讯微博等一键分享API链接代码 window下 mongodb快速安装 数据表查询所有子/父节点 C#学习笔记1
- Flink DataSet API Programming Guide
- Flink DataSet API 使用示范
- oracle学习之路(四) ---------PL/SQL 表,二维数组(TABLE)
- 学习关于时间在sql里面的对比,用if语句(这个有点特别)
- SQL语句对比Oracle Berkeley DB 学习指南
- Swift 学习笔记 UITableView (二)Overview of the table View API
- Flink学习笔记 --- DataStream Transformations
- Java数据持久层框架 MyBatis之API学习九(SQL语句构建器详解)
- .NET深入学习笔记(1):DataSet和SqlDataReader性能差异深入剖析与测试(1)
- oracle学习之路(四) ---------PL/SQL 表,二维数组(TABLE)
- .NET深入学习笔记(1):DataSet和SqlDataReader性能差异深入剖析与测试(2)
- 菜鸟学习c#数据库之利用SqlDataAdatper填充dataset
- Hibernate的HQL查询语句对比Sql语句学习
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战006-DataStream与MySql自定义sink和source(Scala版)001
- sql 2005 学习2(2.2 管理对SQL Server实例的访问)