Flink 编程接口(Flink SQL Table API DataStream API 和 DataSet API Stateful Stream Process API)
Flink 根据数据集类型的不同将核心数据处理接口分为两大类,一类是支持批计算的接口DataSet API,另外一类是支持流计算的接口 DataStream API。同时 Flink将数据处理接口抽象成四层,由上向下分别为SQL API、Table API、DataStream /DataSet API以及Stateful Stream Processing API,用户可以根据需要选择任意一层抽象接口来开发Flink应用。
Flink SQL
从下图中可以看出,Flink提供了统一的SQL API完成对批计算和流计算的处理,目前SQL API也是社区重点发展的接口层,对SQL API也正在逐步完善中,其主要因为SQL语言具有比较低的学习成本,能够让数据分析人员和开发人员更快速地上手,帮助其更加专注于业务本身而不是受限于复杂的编程接口。而且在后期版本升级等底层架构发生变化时,能够自如应对,无需修改。SQL 构建在 Table 之上,都需要构建 Table环境。
Table API
Table API将内存中的 DataStream和 DataSet数据集在原有的基础之上增加 Schema信息,将数据类型统一抽象成表结构,然后通过Table API提供的接口处理对应的数据集。SQL API则可以直接查询 Table API中注册表中的数据表。Table API构建在DataStream和 DataSet之上的同时,提供了大量面向领域语言的编程接口,例如 GroupByKey、Join等操作符,提供给用户一种更加友好的处理数据集的方式。除此之外,Table API在转换为 DataStream和 DataSet的数据处理过程中,也应用了大量的优化规则对处理逻辑进行了优化。同时 Table API中的 Table可以和 DataStream 及 DataSet之间进行相互转换。
DataStream API 和 DataSet API
DataStream API 和 DataSet API主要面向具有开发经验的用户,用户可以使用DataStream API处理无界流数据,使用DataSet API处理批量数据。DataStream API和 DataSet API接口同时提供了各种数据处理接口,例如 map,filter、oins、aggregations、window等方法,同时每种接口都支持了Java、Scala及 Python等多种开发语言的SDK。
Stateful Stream Process API
Stateful Stream Process API是 Flink中处理 Stateful Stream最底层的接口,通过 process function 嵌入到 DataStream API 中。用户可以使用 Stateful Stream Process 接口操作状态、时间等底层数据。使用Stream Process API接口开发应用的灵活性非常强,可以实现非常复杂的流式计算逻辑,但是相对用户使用成本也比较高。实际中,大多数应用程序并不需要最底层的stateful streaming,一般企业在使用 Flink进行二次开发或深度封装的时候会用到这层接口。主要处理 events,state,time。
Flink 编程接口(Flink SQL Table API DataStream API 和 DataSet API Stateful Stream Process API)的更多相关文章
- Flink 编程接口
欢迎来 kk大数据,今天分享的是 Flink 提供了哪些编程接口可以给我们开发. 一.数据集类型 现实世界中,所有的数据都是以流式的形态产生的,不管是哪里产生的数据,在产生的过程中都是一条条地生成,最 ...
- Java 9 揭秘(12. Process API 更新)
Tips 做一个终身学习的人. 在本章中,主要介绍以下内容: Process API是什么 如何创建本地进程 如何获取新进程的信息 如何获取当前进程的信息 如何获取所有系统进程的信息 如何设置创建,查 ...
- 【翻译】Flink Table Api & SQL —— Table API
本文翻译自官网:Table API https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/tableApi.ht ...
- [源码分析] 带你梳理 Flink SQL / Table API内部执行流程
[源码分析] 带你梳理 Flink SQL / Table API内部执行流程 目录 [源码分析] 带你梳理 Flink SQL / Table API内部执行流程 0x00 摘要 0x01 Apac ...
- 第05讲:Flink SQL & Table 编程和案例
Flink系列文章 第01讲:Flink 的应用场景和架构模型 第02讲:Flink 入门程序 WordCount 和 SQL 实现 第03讲:Flink 的编程模型与其他框架比较 第04讲:Flin ...
- Flink 编程模型
抽象层次 levels_of_abstraction 最低级的抽象接口是状态化的数据流接口(stateful streaming).这个接口是通过 ProcessFunction 集成到 Data ...
- <译>Flink编程指南
Flink 的流数据 API 编程指南 Flink 的流数据处理程序是常规的程序 ,通过再流数据上,实现了各种转换 (比如 过滤, 更新中间状态, 定义窗口, 聚合).流数据可以来之多种数据源 (比如 ...
- (转载)Linux系统调用及用户编程接口(API)
(转载)http://www.farsight.com.cn/news/emb167.htm 1 Linux系统调用 所谓系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组 ...
- USB联机线编程接口(API)
USB联机线编程接口(API) 2013-10-19 本页面的文字允许在知识共享 署名-相同方式共享 3.0协议和GNU自由文档许可证下修改和再使用. 关键字:USB隔离线.USB点对点通讯.USB通 ...
- Linux系统调用及用户编程接口(API)
系统调用 所谓系统调用是指操作系统提供给用户程序调用的一组"特殊"接口,用户程序能够通过这组"特殊"接口来获得操作系统内核提供的服务.比如用户能够通过进程控制相 ...
随机推荐
- 【BOOK】Ajax数据爬取
Requests获取原始HTML文档,Ajax加载和JavaScript处理的数据无法获得 一.Ajax Ajax-异步的JavaScript和XML Ajax请求页面更新: 1. 发送请求 2. 解 ...
- C++入门之unordered_map
1.介绍 unordered_map是c++语言STL库中一个比较重要的容器,不能自动排序,这一容器是根据哈希表这一数据结构设计而成的,能够极大地提升数据搜索.插入和删除操作的时间效率. 2.头文 ...
- app自动化前置准备&环境搭建
编写脚本之前的一些前置准备工作. 1,安装appium server:官网地址:http://appium.io/ 安装教程:https://www.cnblogs.com/gancuimian/p/ ...
- 【python】绘图,颜色,线型
颜色 最好用的:在网站上找到对应使用十六进制RGB/RGBA字符串表示颜色 可以看颜色及其对应色号名称:https://xkcd.com/color/rgb/ 参考:matplotlib指定绘图颜色的 ...
- Python从dic中随机取值
import random a = {'lab-1': '短视频', 'lab-1': '直播'} print(random.choice(list(a.keys()))) # 从keys的list中 ...
- 关于Java字符串、字符与数字之间的相互转换
一.数字转字符串 //将整个数字转化为字符串 int i=456; //方法一 String str1=Integer.toString(i); System.out.println(str1); / ...
- 算法题:消除字符串中全部的b和连续的ac
最近碰到了一道面试题,虽然不难但是临试没想出好的解法,记录下来以作分享. 题目:消除字符串中全部的b和连续的ac 用例: 'aabbc' -> 'a' 'aaabbbccc' -> '' ...
- OO课程第三阶段(实验和pta试题)总结Blog3
OO课程第三阶段(实验和pta试题)总结Blog3 前言:学习OOP课程的第三阶段已经结束了,在此进行对于知识点,题量,难度的个人看法. 学习OOP课程的第三阶段已经结束了,较第一次阶段学习难度加大, ...
- expected expression before')'token
如上图所示,今天遇到的一个编译问题,明明用法跟其他地方的一摸一样,在主程序里编译就没问题,动态库里死活都编译不过去,可把我折磨死了,最后没办法,只能请教大佬,大佬过来几分钟就找到了问题,真正出错的地方 ...
- 关于FPGA学习的疑惑
记录心路历程--第一次真正意义上的找工作. 最近在学习小梅哥的FPGA的过程中,总是学习着前面的东西忘着后面的,进行了过一次复习,我准备是在每个章节学完之后,再复习之前的章节,可这样是真的很耗费时间. ...