加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (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

我们以3个元素(2 PRECEDING)的窗口为例,如下图:

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

上图所示窗口 user 1 的 w5和w6, user 2的 窗口 w2 和 w3,固然有元素都是统一时候达到,可是他们如故是在差异的窗口,这一点有别于RANGE OVER Window。

  • Table API 示例

操作item_tab测试数据,我们统计同类商品中当前和当前商品之前2个商品中的最高价值。

  1. val result = item 
  2. .window(Over partitionBy 'itemType orderBy 'rowtime preceding 2.rows following CURRENT_ROW as 'w) 
  3. .select('itemID, 'itemType, 'onSellTime, 'price, 'price.max over 'w as 'maxPrice) 
  • Result

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

(b) Bounded RANGE OVER Window

Bounded RANGE OVER Window 具有沟通时刻值的全部元素行视为统一计较行,即,具有沟通时刻值的全部行都是统一个窗口。

  • 语义

我们以3秒中数据(INTERVAL '2' SECOND)的窗口为例,如下图:

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

留意: 上图所示窗口 user 1 的 w6, user 2的 窗口 w3,元素都是统一时候达到,他们是在统一个窗口,这一点有别于ROWS OVER Window。

  • Tabel API 示例

我们统计同类商品中当前和当前商品之前2分钟商品中的最高价值。

  1. val result = item 
  2. .window(Over partitionBy 'itemType orderBy 'rowtime preceding 2.minute following CURRENT_RANGE as 'w) 
  3. .select('itemID, 'itemType, 'onSellTime, 'price, 'price.max over 'w as 'maxPrice) 

(编辑:湖南网)

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

热点阅读