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

Apache Flink 漫谈系列(13) - Table API 概述

发布时间:2019-01-18 02:39:04 所属栏目:教程 来源:孙金城
导读:一、什么是Table API 在《Apache Flink 漫谈系列(08) - SQL概览》中我们提纲的向各人先容了什么是好SQL,SQL和Table API是Apache Flink中的统一条理的API抽象,如下图所示: Apache Flink 针对差异的用户场景提供了三层用户API,最基层ProcessFunction API

(c) Result(Bounded RANGE OVER Window)

Apache Flink 漫谈系列(13) - Table API 概述

  • 出格声名

OverWindow最重要是要领略每一行数据都确定一个窗口,同时今朝在Apache Flink中只支持定时刻字段排序。而且OverWindow开窗与GroupBy方法数据分组最大的差异在于,GroupBy数据分组统计时辰,在SELECT中除了GROUP BY的key,不能直接选择其他非key的字段,可是OverWindow没有这个限定,SELECT可以选择任何字段。好比一张表table(a,b,c,d)4个字段,假如按d分组求c的最大值,两种写完如下:

  • GROUP BY - tab.groupBy('d).select(d, MAX(c))
  • OVER Window = tab.window(Over.. as 'w).select('a, 'b, 'c, 'd, c.max over 'w)

如上 OVER Window 固然PARTITION BY d,但SELECT 中如故可以选择 a,b,c字段。但在GROUPBY中,SELECT 只能选择 d 字段。

(2) Group Window

按照窗口数据分另外差异,今朝Apache Flink有如下3种Bounded Winodw:

  • Tumble - 转动窗口,窗口数据有牢靠的巨细,窗口数据无叠加;
  • Hop - 滑动窗口,窗口数据有牢靠巨细,而且有牢靠的窗口重建频率,窗口数据有叠加;
  • Session - 会话窗口,窗口数据没有牢靠的巨细,按照窗口数据活泼水中分别窗口,窗口数据无叠加。

声名: Aapche Flink 还支持UnBounded的 Group Window,也就是全局Window,流上全部数据都在一个窗口内里,语义很是简朴,这里不做具体先容了。

(a) Tumble

  • 语义

Tumble 转动窗口有牢靠size,窗口数据不重叠,详细语义如下:

Apache Flink 漫谈系列(13) - Table API 概述

  • Table API 示例

操作pageAccess_tab测试数据,我们必要按差异区域统计每2分钟的淘宝首页的会见量(PV)。

  1. val result = pageAccess 
  2. .window(Tumble over 2.minute on 'rowtime as 'w) 
  3. .groupBy('w, 'region) 
  4. .select('region, 'w.start, 'w.end, 'region.count as 'pv) 
  • Result

Apache Flink 漫谈系列(13) - Table API 概述

(b) Hop

(编辑:湖南网)

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

热点阅读