奶茶和奶绿有什么区别| 单抗是什么药| 肝介入治疗是什么意思| 急性阑尾炎可以吃什么| 称中药的小秤叫什么| 九月九日是什么日子| 指什么为什么| 薄荷叶有什么功效| 恶性贫血是什么意思| 哈达是什么意思| 路由器管理员密码是什么| xrd是什么| 十二月六号是什么星座| 惜字如金是什么意思| 什么是腺样体面容| 什么是虚拟币| 男人什么脸型最有福气| 喝莓茶有什么好处| 虎头虎脑是什么生肖| 口若什么什么| 老年人喝什么蛋白粉好| 肺实性结节是什么意思| 东北有什么好玩的景点| 为什么总是拉肚子| 曲奇饼干为什么不成形| 英语四级是什么水平| 澳门打车用什么软件| lh是什么意思| 丫丫的老公叫什么| 远字五行属什么| 得不到的永远在骚动什么意思| 倒挂对身体有什么好处| 五险一金什么时候开始交| 什么什么不生| 后背容易出汗是什么原因| 皮肤癣是什么原因造成的| 暴跳如雷是什么意思| siri是什么意思| 眼睛经常充血是什么原因引起的| 逍遥丸什么时候吃最好| 三高不能吃什么食物| 什么叫黑户| 歌帝梵巧克力什么档次| 为什么黑色吸热| 叔公是什么辈分| 大姨妈是什么意思| 身体逐渐消瘦是什么原因| 女性排卵期一般在什么时候| 有志什么成| 嬲是什么意思| 血热吃什么药| 上焦中焦下焦是什么| 胸为什么会胀痛| a型血为什么叫贵族血| 铁蛋白低吃什么可以补| 脊髓损伤有什么症状| 死精吃什么能调理成活精| 医保卡有什么用| 尿潴留是什么意思| 甲钴胺片是治什么病| 粘膜慢性炎是什么意思| 有恃无恐什么意思啊| 胃肠型感冒吃什么药| 省长是什么级别干部| 男属猴和什么属相最配| 孕妇梦见西瓜是什么意思| 什么叫幸福| 胸推什么意思| 巫师是什么意思| 喉咙疼吃什么消炎药| 什么是物理学| yg是什么意思| 烤冷面的面皮是什么面| 新生儿什么时候能看见东西| cm什么单位| 胆红素高吃什么食物能降得快| 肾综合征是什么病严重吗| 令瓦念什么| 喝什么牌子的水最健康| 客厅沙发后面墙上挂什么画好| 威海有什么好玩的| 隆科多为什么不姓佟| 腰闪了是什么症状| 情不自禁的意思是什么| 冰箱保鲜室不制冷是什么原因| 如家是什么内涵| 脚气看什么科| 鼻窦炎吃什么药| hoka是什么牌子| 弥留之际什么意思| 最后一个出场叫什么| 为什么有眼袋是什么原因引起的| 种植什么最赚钱农村| 蓓蕾是什么意思| 天高云淡是什么季节| 强心剂是什么意思| 刚刚什么地方地震了| 团委书记是什么级别| 溜肩是什么意思| 女生的胸部长什么样| 小腹痛吃什么药| meme什么意思| 满面红光是什么意思| 眼睛酸疼是什么原因| 介错是什么意思| 脚麻是什么病的前兆| 小产吃什么好恢复营养| 祥林嫂是什么样的人| 外露什么意思| 梦见狼是什么意思| 小便无力是什么原因男| 屏气是什么意思| 肌酐什么意思| 粗枝大叶是什么意思| 2020是什么年| 李子为什么不能多吃| 撸管是什么| 腿部肿胀是什么原因引起的| 野什么意思| 潜力是什么意思| 一般什么人戴江诗丹顿| 血型b型rh阳性是什么意思| 网络维护是做什么的| 怀璧其罪是什么意思| 例假为什么第一天最疼| 囊胚和冻胚有什么区别| 肝硬化早期有什么症状| 尿酸高吃什么中药能降下来| 醋纤是什么面料| 心律不齐房颤吃什么药| 孩子满月送什么礼物| thc是什么意思| 南辕北辙是什么意思| 吃什么会变白| 老保是什么意思| 女人舌苔厚白吃什么药| 望梅止渴是什么故事| 废电池乱丢对人体可能造成什么中毒| 流清鼻涕是什么原因| 11是什么生肖| 高危型hpv66阳性是什么意思| 寒疾现代叫什么病| 狍子是什么动物| 什么人容易得骨髓瘤| rd是什么| o2o什么意思| 灰水是什么| 胃疼去医院挂什么科| 胆固醇高吃什么| 杏仁有什么功效和作用| 鬼玺是什么| m是什么意思| 副司长是什么级别| 色弱是什么| 为什么闭眼单脚站不稳| 吃蒸苹果有什么好处| 上环是什么意思| 末法时代是什么意思| 环状肉芽肿是什么皮肤病| 吃什么水果补气血| 2.26是什么星座| exr是什么牌子| 抽搐是什么原因引起的| 狗尾巴草的花语是什么| 我炸了是什么意思| 痰核流注什么意思| 做什么运动可以长高| 吊是什么意思| 胰岛素是什么意思| 脸上出汗多是什么原因| 706代血浆又叫什么| 左室高电压是什么意思| 左肾钙化灶什么意思| 泼皮是什么意思| 嘈杂纳减是什么意思| 内眼角越揉越痒用什么眼药水| 健谈是什么意思| 寿眉属于什么茶| 潮吹是什么感觉| 念旧的人属于什么性格| 肉苁蓉与什么搭配好| 张飞穿针歇后语下一句是什么| 杀破狼是什么意思| 老年人嗜睡是什么原因| 做梦梦见考试是什么意思| 屁股上长痘痘是什么情况| 蔻驰包属于什么档次| 女性私处长痘痘是什么原因| 愈合是什么意思| 头昏吃什么药| 肚脐下方疼是什么原因| 割包皮挂什么科| 男性睾丸一边大一边小是什么原因| 王加呈念什么| 孩子鼻子出血什么原因造成的| 口臭严重是什么原因| 什么手机像素最高| 红玛瑙五行属什么| 海灵菇是什么| 柠檬配什么泡水喝最好| 眼角长脂肪粒是什么原因| 惨不忍睹是什么意思| 小腿肚酸胀是什么原因| 咳嗽两个月了一直不好是什么原因| 什么人不适合吃海参| 开除党籍有什么影响| 1988属什么生肖| 中班小朋友应该学什么| 一诺千金什么意思| 筒骨炖什么好吃| 多管闲事是什么意思| 甘蔗男是什么意思| 开光的手串有什么禁忌| 什么是央企| 胃不好早餐吃什么好| 颅压高吃什么药| 一什么毛驴| 女性肛门瘙痒用什么药| 泡打粉可以用什么代替| 不走寻常路是什么意思| 数典忘祖指什么动物| 头不舒服去医院挂什么科| 舌钉有什么用| 降结肠在什么位置| 咽拭子是检查什么的| 什么的山野| 年柱亡神是什么意思| 什么是湿疹| 鼓刹和碟刹有什么区别| 五官端正是什么意思| 骨折忌口什么食物| 五险都有什么| 三点水一个高念什么| 蚂蚱和蝗虫有什么区别| 特需号是什么意思| 男孩小名叫什么好听| 女人梦见鱼是什么意思| 耳朵轮廓痒是什么原因| 10度穿什么| 梦见被子是什么意思| 鸡柳是什么肉| 咲念什么| 吃什么有助于消化| 五行属土缺命里缺什么| zoom 是什么意思| 胎儿左心室点状强回声是什么意思| 峦是什么意思| 受持是什么意思| 老是掉发是什么原因| 女人梦见狗是什么预兆| 眼睛散光是什么症状| 蓝字五行属什么| 办身份证要带什么| 说是什么意思| 五月天主唱叫什么名字| 失落是什么意思| 肝肾不足吃什么中成药| 深呼吸有什么好处| 藿香正气水有什么用| 临汾有什么大学| 生殖感染有什么症状| 赤是什么颜色| 晚上11点到12点是什么时辰| 牙齿矫正挂什么科| 百度

《围观》第80期:拍成人电影的两年

百度 赛后,江苏队副攻姜倩雯和自由人陈展正式退役,在职业生涯的最后一战,陈展还获得了当场最佳。

最近更新时间:2025-08-07 15:19:01

我的收藏
在流式计算中,流通常是无穷无尽的,我们无法知道什么时候数据源会继续/停止发送数据,所以在流上处理聚合事件(count、sum 等)的处理方式与批处理中的处理方式会有所差异。在流上一般用窗口(Windows)来限定聚合的范围,例如“过去2分钟网站点击量的计数”、“在最近100个人中点赞这个视频的总人数”。窗口的概念相当于帮我们收集了一张有限数据的动态表,我们可以对表中的数据进行聚合计算。
窗口函数是一种特殊的函数,它并不在 SELECT 的投影列表中使用,而是在 GROUP BY 子句中使用。流计算 Oceanus 支持三种类型的窗口函数 TUMBLE、HOP 和 SESSION。
Flink 流处理介绍详见 及时流处理

TUMBLE WINDOW

TUMBLE WINDOW(滚动窗口)将每个进入的数据分配到一个指定窗口大小的窗口中。滚动窗口可以自定义固定的大小,并且不会出现重叠。我们可以对窗口内的数据进行计算。

语法

TUMBLE(time_attr, interval)
time_attr 参数表示时间戳字段,表示每条记录被处理的时间戳。如果指定为 PROCTIME 是自动生成的时间戳,记录了数据被 flink 处理的时刻,一般用在 Processing Time 模式下
interval 参数用来设置窗口大小。例如,设置为1天:INTERVAL '1' DAY;设置为2小时:INTERVAL '2' HOUR,其他用法可参见 时间相关函数
注意
如果在 Event Time 时间模式下(使用 WATERMARK FOR 语句定义了时间戳字段),那么 TUMBLE、HOP、SESSION 窗口函数的第一个参数必须为该字段。
如果在 Processing Time 时间模式下,则 TUMBLE、HOP、SESSION 窗口函数的第一个参数必须为 proctime() 函数生成的计算列,下文用 PROCTIME 举例,请在实际作业中替换为实际的列名。

标识函数

标识函数用来表示窗口的起始与结束时间。
函数名
功能描述
TUMBLE_START(time-attr, size-interval)
返回该窗口的起始时间
TUMBLE_END(time-attr, size-interval)
返回该窗口的结束时间

模拟用例

下文以 TUMBLE WINDOW 为例,帮助您更容易地理解 TUMBLE WINDOW。使用 Event Time 模拟统计每小时各用户收入金额。
示例数据:
username(VARCHAR)
income(BIGINT)
times(TIMESTAMP)
Tom
20
2025-08-07 10:30:00.0
Jack
10
2025-08-07 10:35:00.0
Tom
10
2025-08-07 10:35:00.0
Tom
10
2025-08-07 10:40:00.0
Tom
15
2025-08-07 11:30:00.0
Jack
10
2025-08-07 11:30:00.0
Jack
15
2025-08-07 11:40:00.0
SQL 语句:
CREATE TABLE user_income (
username VARCHAR,
Income INT,
times TIMESTAMP(3),
WATERMARK FOR times AS times - INTERVAL '3' SECOND
) WITH (
...
);
?
CREATE TABLE output (
win_start TIMESTAMP,
win_end TIMESTAMP,
username VARCHAR,
hour_income BIGINT
)WITH(
...
);
?
INSERT INTO output
SELECT
TUMBLE_START(times,INTERVAL '1' HOUR),
TUMBLE_END(times,INTERVAL '1' HOUR),
username,
SUM(Income)
FROM user_income
GROUP BY TUMBLE(times,INTERVAL '1' HOUR),username;
输出结果:
win_start(TIMESTAMP)
win_end(TIMESTAMP)
username(VARCHAR)
hour_income(BIGINT)
2025-08-07 10:00:00.0
2025-08-07 11:00:00.0
Tom
40
2025-08-07 10:00:00.0
2025-08-07 11:00:00.0
Jack
10
2025-08-07 11:00:00.0
2025-08-07 12:00:00.0
Tom
15
2025-08-07 11:00:00.0
2025-08-07 12:00:00.0
Jack
25

HOP WINDOW

HOP WINDOW(滑动窗口)将元素分配到固定长度的窗口中,与滚动窗口类似,窗口的大小由窗口大小参数来配置,另一个窗口滑动参数控制滑动窗口开始的频率。
HOP WINDOW(滑动窗口)保持窗口大小(Size)不变,每次滑动指定的时间周期(Slide),因而允许窗口之间的相互重叠。
Slide 的大小决定了 Flink 创建新窗口的频率。
当 Slide 小于 Size 时(如图 window1 与 window2),相邻窗口会重叠,一个时间会被分配到多个窗口。
当 Slide 大于 Size 时(如图 window1 与 window4),可能会导致有些事件被丢弃。
当 Slide 等于 Size 时(如图 window1 与 window3),等于是 TUMBLE WINDOW。

语法

HOP(time_attr, sliding_interval, window_size_interval)
time_attr 参数表示时间戳字段,表示每条记录被处理的时间戳。如果指定为 PROCTIME 是自动生成的时间戳,记录了数据被 flink 处理的时刻,一般用在 Processing Time 模式下。
window_size_interval 参数用来设置窗口大小。例如,设置为1天:INTERVAL '1' DAY;设置为2小时:INTERVAL '2' HOUR,其他用法可参见 时间相关函数
sliding_interval 参数用来设置滑动时间周期大小。例如,设置为1天:INTERVAL '1' DAY;设置为2小时:INTERVAL '2' HOUR,其他用法可参见 时间相关函数

标识函数

标识函数用来表示窗口的起始与结束时间。
函数名
功能描述
HOP_START(time-attr, slide-interval,size-interval)
返回该窗口的起始时间
HOP_END(time-attr, slide-interval,size-interval)
返回该窗口的结束时间

模拟用例

下文以 HOP WINDOW 为例,帮助您更容易地理解 HOP WINDOW。使用 Event Time 模拟统计每小时各用户收入金额,每30分钟更新一次。1小时的窗口,10分钟滑动一次。
样例数据:
username(VARCHAR)
income(BIGINT)
times(TIMESTAMP)
Tom
20
2025-08-07 10:30:00.0
Jack
10
2025-08-07 10:35:00.0
Tom
10
2025-08-07 10:35:00.0
Tom
10
2025-08-07 10:40:00.0
Tom
15
2025-08-07 11:35:00.0
Jack
10
2025-08-07 11:30:00.0
Jack
15
2025-08-07 11:40:00.0
SQL 语句:
CREATE TABLE user_income (
username VARCHAR,
Income INT,
times TIMESTAMP(3),
WATERMARK FOR times AS times - INTERVAL '3' MINUTE
)WITH(
...
);
?
CREATE TABLE output (
win_start TIMESTAMP,
win_end TIMESTAMP,
username VARCHAR,
hour_income BIGINT
)WITH(
...
);
?
INSERT INTO output
SELECT
HOP_START(times,INTERVAL '30' MINUTE,INTERVAL '1' HOUR),
HOP_END(times,INTERVAL '30' MINUTE,INTERVAL '1' HOUR),
username,
SUM(income)
FROM user_income
GROUP BY HOP(times,INTERVAL '30' MINUTE,INTERVAL '1' HOUR),username;
输出结果:
win_start(TIMESTAMP)
win_end(TIMESTAMP)
username(VARCHAR)
hour_income(BIGINT)
2025-08-07 10:00:00.0
2025-08-07 11:00:00.0
Tom
40
2025-08-07 10:00:00.0
2025-08-07 11:00:00.0
Jack
10
2025-08-07 10:30:00.0
2025-08-07 11:30:00.0
Jack
10
2025-08-07 10:30:00.0
2025-08-07 11:30:00.0
Tom
40
2025-08-07 11:00:00.0
2025-08-07 12:00:00.0
Tom
15
2025-08-07 11:00:00.0
2025-08-07 12:00:00.0
Jack
25
2025-08-07 11:30:00.0
2025-08-07 12:30:00.0
Jack
25
2025-08-07 11:30:00.0
2025-08-07 12:30:00.0
Tom
15

SESSION WINDOW

SESSION WINDOW(会话窗口)通过 session 活动对元素进行分组,session 窗口与滚动窗口和滑动窗口相比,不会有重叠和固定的开始时间和结束时间的情况,相反,当它在一个固定的时间周期内不再收到元素,即非活动间隔产生,那么这个窗口就会关闭。一个 session 窗口通过一个 session 间隔来配置。这个 session 间隔定义了非活跃周期的长度,当这个非活跃周期产生,那么当前的 session 将关闭并且后续的元素将被分配到新的 session 窗口中。
Session Window 并非以长度来划分窗口,而是以非活跃时间来划分。例如超过30分钟不活跃(没有新数据),则之前的窗口结束,下一个来到的数据将会形成一个新窗口。

语法

SESSION(time_attr, interval)
time_attr 参数表示时间戳字段,表示每条记录被处理的时间戳。如果指定为 PROCTIME 是自动生成的时间戳,记录了数据被 flink 处理的时刻,一般用在 Processing Time 模式下。
interval 参数用来设置窗口大小。例如,设置为1天:INTERVAL '1' DAY;设置为2小时:INTERVAL '2' HOUR,其他用法可参见 时间相关函数

标识函数

标识函数用来表示窗口的起始与结束时间。
函数名
功能描述
SESSION_START(time-attr, size-interval)
返回该窗口的起始时间
SESSION_END(time-attr, size-interval)
返回该窗口的结束时间

模拟用例

下文以 SESSION WINDOW 为例,帮助您更容易地理解 SESSION WINDOW。使用 Event Time 模拟统计每小时各用户收入金额,会话超时时长为30分钟。
样例数据:
username(VARCHAR)
income(BIGINT)
times(TIMESTAMP)
Tom
20
2025-08-07 10:30:00.0
Jack
10
2025-08-07 10:35:00.0
Tom
10
2025-08-07 10:35:00.0
Tom
10
2025-08-07 10:40:00.0
Tom
15
2025-08-07 11:50:00.0
Jack
10
2025-08-07 11:40:00.0
Jack
15
2025-08-07 11:45:00.0
SQL 语句:
CREATE TABLE user_income (
username VARCHAR,
Income INT,
times TIMESTAMP(3),
WATERMARK FOR times AS times - INTERVAL '3' MINUTE
)WITH(
...
);
?
CREATE TABLE output (
win_start TIMESTAMP,
win_end TIMESTAMP,
username VARCHAR,
hour_income BIGINT
)WITH(
...
);
?
INSERT INTO output
SELECT
SESSION_START(times,INTERVAL '30' MINUTE),
SESSION_END(times,INTERVAL '30' MINUTE),
username,
SUM(Income)
FORM user_income
GROUP BY SESSION(times,INTERVAL '30' MINUTE),username;
输出结果:
win_start(TIMESTAMP)
win_end(TIMESTAMP)
username(VARCHAR)
hour_income(BIGINT)
2025-08-07 10:30:00.0
2025-08-07 11:10:00.0
Tom
40
2025-08-07 10:35:00.0
2025-08-07 11:05:00.0
Jack
10
2025-08-07 11:30:00.0
2025-08-07 12:00:00.0
Tom
15
2025-08-07 11:30:00.0
2025-08-07 12:10:00.0
Jack
25

更多说明

以上三种窗口都有对应的辅助函数。以 TUMBLE 窗口为例(HOP、SESSION 也一样,只是前缀不同),辅助函数如下:
TUMBLE_ROWTIME:表示 TUMBLE 窗口的末端界限(包含,可用作 JOIN 或 GROUP 以及 OVER 条件,Event Time 时间模式下使用)。示例如下:
SELECT user,
TUMBLE_START(rowtime, INTERVAL '12' HOUR) AS sStart,
TUMBLE_ROWTIME(rowtime, INTERVAL '12' HOUR) AS snd,
SUM(amount)
FROM Orders
GROUP BY TUMBLE(rowtime, INTERVAL '12' HOUR), user
TUMBLE_PROCTIME:表示 TUMBLE 窗口的末端界限(包含,可用作 JOIN 或 GROUP 以及 OVER 条件,Processing Time 时间模式下使用)。示例如下:
SELECT user,
TUMBLE_START(PROCTIME, INTERVAL '12' HOUR) AS sStart,
TUMBLE_PROCTIME(PROCTIME, INTERVAL '12' HOUR) AS snd,
SUM(amount)
FROM Orders
GROUP BY TUMBLE(PROCTIME, INTERVAL '12' HOUR), user
?
牙龈疼是什么原因 胸是什么 朝鲜面是什么原料做的 醛固酮高吃什么降压药 为什么在
活血化瘀吃什么 打新股需要什么条件 左手大拇指麻木是什么原因 做肉丸用什么淀粉最佳 作梁是什么意思
12月20日是什么星座 食管裂孔疝是什么意思 膝盖积液有什么症状 乳痈是什么病 血线高是什么意思啊
盆腔少量积液是什么问题 势在必得是什么意思 平舌音是什么 鱼不能和什么一起吃 1962年属什么生肖
以什么当什么hcv8jop9ns6r.cn 同房后需要注意什么hcv8jop9ns0r.cn 孩子睡觉咬牙齿是什么原因引起的hcv9jop0ns3r.cn 剖腹产后可以吃什么食物hcv9jop5ns8r.cn 猪狗不如是什么意思hcv9jop3ns8r.cn
白猫是什么品种gysmod.com 眼睛发炎吃什么药hcv9jop1ns1r.cn 蝉喜欢吃什么hcv8jop6ns2r.cn 经常头晕吃什么食物好xinmaowt.com 痘痘里面挤出来的白色东西是什么hcv9jop1ns1r.cn
8月20号什么星座hcv8jop0ns9r.cn 生辉是什么意思hcv9jop7ns0r.cn 吃什么排铅hcv9jop4ns1r.cn 星期六打喷嚏代表什么hcv9jop2ns4r.cn 守宫是什么动物sanhestory.com
甲状腺结节低回声什么意思xinjiangjialails.com e抗原阳性是什么意思hcv8jop1ns5r.cn 医院归什么部门管理hcv8jop0ns7r.cn 红肿痒是什么原因hcv9jop8ns0r.cn 依然如故的故是什么意思hcv9jop3ns9r.cn
百度