当前位置: 首页 > news >正文

Flink SQL Window TopN 详解

Window TopN 定义(⽀持 Streaming): Window TopN 是特殊的 TopN,返回结果是每⼀个窗⼝内的 N 个最⼩值或者最⼤值。

应⽤场景: TopN 会出现中间结果,出现回撤数据,Window TopN 不会出现回撤数据,因为 Window TopN 是在窗⼝结束时输出最终结果,不会产⽣中间结果。

注意: 因为是窗⼝上⾯的操作, Window TopN 在窗⼝结束时,会⾃动把 State 清除。

SQL 语法标准:

SELECT [column_list]
FROM (SELECT [column_list],ROW_NUMBER() OVER (PARTITION BY window_start, window_end [, col_key1...]ORDER BY col1 [asc|desc][, col2 [asc|desc]...]) AS rownumFROM table_name) -- windowing TVF
WHERE rownum <= N [AND conditions]

实际案例: 取当前这⼀分钟的搜索关键词下的搜索热度前 10 名的词条数据。

输⼊表字段:-- 字段名 备注
-- key 搜索关键词
-- name 搜索热度名称
-- search_cnt 热搜消费热度(⽐如 3000)
-- timestamp 消费词条时间戳
CREATE TABLE source_table (name STRING NOT NULL,search_cnt BIGINT NOT NULL,key STRING NOT NULL,row_time timestamp(3),WATERMARK FOR row_time AS row_time
) WITH ('connector' = 'filesystem', 'path' = 'file:///Users/hhx/Desktop/source_table.csv','format' = 'csv'
);A,100,a,2021-11-01 00:01:00
B,200,b,2021-11-01 00:01:00
C,300,c,2021-11-01 00:01:00
D,400,d,2021-11-01 00:01:00
A,200,a,2021-11-01 00:01:05
B,300,b,2021-11-01 00:01:05
C,400,c,2021-11-01 00:01:05
D,500,d,2021-11-01 00:01:05
A,300,a,2021-11-01 00:02:00
B,400,b,2021-11-01 00:02:00
C,500,c,2021-11-01 00:02:00
D,600,d,2021-11-01 00:02:00-- 输出表字段:
-- 字段名 备注
-- key 搜索关键词
-- name 搜索热度名称
-- search_cnt 热搜消费热度(⽐如 3000)
-- window_start 窗⼝开始时间戳
-- window_end 窗⼝结束时间戳
CREATE TABLE sink_table (key BIGINT,name BIGINT,search_cnt BIGINT,window_start TIMESTAMP(3),window_end TIMESTAMP(3)
) WITH (...
);INSERT INTO sink_table
SELECT key, name, search_cnt, window_start, window_end
FROM (SELECT key, name, search_cnt, window_start, window_end, ROW_NUMBER() OVER (PARTITION BY window_start, window_end, keyORDER BY search_cnt desc) AS rownumFROM (SELECT window_start, window_end, key, name, max(search_cnt) as search_cnt-- window tvf 写法FROM TABLE(TUMBLE(TABLE source_table, DESCRIPTOR(row_time), INTERVAL '1' MINUTE))GROUP BY window_start, window_end, key, name)
)
WHERE rownum <= 2;

输出结果:

在这里插入图片描述

SQL 转换为算子:

  • 数据源 :数据源即最新的词条下⾯的搜索词的搜索热度数据,消费到 Kafka 后,将数据按照窗⼝聚合的 key 通过 hash 分发策略发送到下游窗⼝聚合算⼦。
  • 窗⼝聚合算⼦ :进⾏窗⼝聚合计算,随着时间的推进,将窗⼝聚合结果计算完成发往下游窗⼝排序算⼦。
  • 窗⼝排序算⼦ :这个算⼦其实也是⼀个窗⼝算⼦,只不过这个窗⼝算⼦为每个 Key 维护了⼀个 TopN 的榜单数据,接受到上游发送的窗⼝结果数据进⾏排序,随着时间的推进,窗⼝的结束,将排序的结果输出到下游数据汇算⼦。
  • 数据汇 :接收到上游的数据之后,然后输出到外部存储引擎中。

相关文章:

Flink SQL Window TopN 详解

Window TopN 定义&#xff08;⽀持 Streaming&#xff09;&#xff1a; Window TopN 是特殊的 TopN&#xff0c;返回结果是每⼀个窗⼝内的 N 个最⼩值或者最⼤值。 应⽤场景&#xff1a; TopN 会出现中间结果&#xff0c;出现回撤数据&#xff0c;Window TopN 不会出现回撤数据…...

leetcode做题笔记216. 组合总和 III

找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回。 示例 1: 输入: k 3, n 7 输出: [[1,2,4]] 解释…...

Redis系列-Redis数据类型【3】

目录 Redis系列-Redis数据类型【3】字符串类型&#xff08;String&#xff09;SDS (simple dynamic string) 哈希类型&#xff08;Hash&#xff09;列表类型&#xff08;List&#xff09;集合类型&#xff08;Set&#xff09;有序集合类型&#xff08;ZSet&#xff09;字符串类…...

机器学习 - 决策树:技术全解与案例实战

目录 一、引言二、决策树基础决策树模型概述构建决策树的关键概念特征选择决策树的生成 决策树的剪枝 三、算法研究进阶提升树和随机森林提升树&#xff08;Boosted Trees&#xff09;随机森林&#xff08;Random Forests&#xff09; 进化算法与决策树决策树结构的进化 多目标…...

Opus 1.4 编译脚本

Opus 1.4 编译脚本 官网地址&#xff1a;https://www.opus-codec.org/ 仓库地址&#xff1a;https://gitlab.xiph.org/xiph/opus #!/bin/bash# 每次编译删除原来的编译文件 rm build -rf rm install -rf # 创建临时编译目录&#xff0c;避免污染源文件 mkdir build # 定义一…...

二进制搭建及高可用 Kubernetes v1.20

目录 一、实验规划&#xff1a; 二、操作系统初始化配置&#xff1a; 1. 关闭防火墙 selinux&#xff1a; 2. 关闭swap分区&#xff1a; 3. 根据规划设置主机名&#xff1a; 4. 所有主机添加hosts&#xff1a; 5. 调整内核参数: 6. 时间同步: 三、部署 etcd 集群&#xff1a…...

SpringBoot 使用WebSocket打造在线聊天室

1、WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。在WebSocket API中&#xff0c;浏览器和服务器只需要做一个握手的动作&#xff0c;然后&#xff0c;浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。 2、浏览器通过 Java…...

vcpkg安装第三方库,报错fatal error RC1107: invalid usage; use RC /? for Help

记录一下&#xff0c;vcpkg不知道什么原因安装库失败。 首先就是原本安装过的库&#xff0c;再次安装之后。不知道环境哪里修改了。会导致安装报错。 Change Dir: D:/Software/vcpkg/buildtrees/freeglut/x64-windows-dbgRun Build Command(s): "D:/Program Files/Micros…...

axios的介绍及配置多个服务器url

文章目录 1、常用的默认配置的是&#xff1a;baseURL、method、timeout2、axios配置多个服务器url3、配置api文件4、文件中使用 1、常用的默认配置的是&#xff1a;baseURL、method、timeout ① baseURL&#xff1a;设置url的基本结构&#xff08;请求根地址&#xff09;&…...

C# OpenCvSharp 通过特征点匹配图片

SIFT匹配 SURF匹配 项目 代码 using OpenCvSharp; using OpenCvSharp.Extensions; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text.RegularExpressions; using System.Windows.Forms; using static System.Net…...

10个python爬虫入门实例

昨天带伙伴学习python爬虫&#xff0c;准备了几个简单的入门实例&#xff0c;涉及主要知识点&#xff1a; web是如何交互的 requests库的get、post函数的应用 response对象的相关函数&#xff0c;属性 python文件的打开&#xff0c;保存 代码中给出了注释&#xff0c;并且…...

麒麟KYLINOS命令行设置系统静音

原文链接&#xff1a;麒麟KYLINOS命令行设置系统静音 hello&#xff0c;大家好啊&#xff0c;今天给大家带来一篇在麒麟KYLINOS上使用命令行调节系统静音的方法&#xff0c;有时候需要制作模板&#xff0c;便可以采用此方法&#xff0c;话不多说&#xff0c;一起来看看吧。 1、…...

零信任安全:构建无懈可击的网络防护体系

随着网络技术的飞速发展&#xff0c;信息安全问题日益凸显&#xff0c;传统的安全防护手段已经无法满足复杂多变的安全需求。在此背景下&#xff0c;零信任安全模型逐渐受到广泛关注。本文将探讨零信任安全的概念、优势以及如何构建无懈可击的网络防护体系。 一、零信任安全概念…...

华为李鹏:到 2025 年智能算力需求将达到目前水平的 100 倍

在第十四届全球移动宽带论坛上&#xff0c;华为高级副总裁、运营商 BG 总裁李鹏表示&#xff0c;大模型为代表的 AI 应用发展带来对智能算力的爆发式需求。 李鹏在题为《加速 5G 商业正循环&#xff0c;拥抱更繁荣的 5.5G》的讲话中表示&#xff0c;「5G 已经走在商业成功的正确…...

【漏洞复现】深信服下一代防火墙NGAF存在任意文件上传漏洞 附POC

漏洞描述 深信服下一代防火墙(Next-Generation Application Firewall)NGAF是面向应用层设计,能够精确识别用户、应用和内容,具备完整安全防护能力,能够全面替代传统防火墙,并具有强劲应用层处理能力的全新网络安全设备。NGAF解决了传统安全设备在应用识别、访问控制、内…...

城市内涝积水预防,万宾科技内涝监测仪如何预警?

近几年来城市内涝所引发的安全隐患极为突出&#xff0c;影响着城市道路安全&#xff0c;而且也让市民心中多有惶恐。一旦城市内涝问题出现背后不仅是路面积水问题&#xff0c;更会导致城市无法正常运行&#xff0c;导致市民日常生活和工作受到影响。所以对于排水防涝设施的建设…...

SpringBoot定时任务打成jar 引入到新的项目中后并自动执行

一、springBoot开发定时任务 ①&#xff1a;连接数据库实现新增功能 1. 引入依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional> </dependency> <dependen…...

AD9371 官方例程 NO-OS 主函数 headless 梳理(一)

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 &#xff1a; AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射&#xff1a; AD9371 官方例程之 tx_jesd 与 xcvr接口映射 AD9371 官方例程 时钟间的关系与生成 &#xff1a; AD9371 官方…...

SHAP 和 LIME 解释模型

内容大纲 1、SHAP 解释器1.1 案例&#xff1a;用于预测患者肺癌1.2 案例中使用的shap解释器1.3 SHAP工作原理1.4 举例说明 2、LIME 解释器2.1 案例&#xff1a;判断法律案件胜诉可能性2.2 LIME解释器工作原理2.3 本地解释模型的训练过程2.4 举例说明1&#xff1a;新闻分类2.4 举…...

若依vue-初步下载使用

若依框架可以满足大部分的后台管理系统的开发,使用频率也是比较高的,所以这里讲一下如何使用若依框架 若依框架代码克隆 首先去若依官网 http://www.ruoyi.vip/ 这里演示的是若依-vue版本的使用 我们点击下载 会跳转到码云仓库 或者直接点击下面的链接去码云仓库 https://git…...

解锁NVIDIA Profile Inspector全球影响力:多语言本地化架构深度解析

解锁NVIDIA Profile Inspector全球影响力&#xff1a;多语言本地化架构深度解析 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 掌握显卡配置工具国际化&#xff0c;让全球玩家享受专业级图形优化体验 …...

步进电机PID与编码器

电机PID闭环控制完整总结&#xff08;扩充版&#xff09;一、系统需要什么&#xff1f;&#xff08;硬件层面&#xff09;组件作用推荐选择电机执行机构直流有刷 / 无刷电机传感器反馈位置/速度增量式编码器&#xff08;A/B两相&#xff09;MCU控制核心支持编码器模式&#xff…...

基于Chaboche物理约束与LSTM残差学习的316L不锈钢循环塑性灰箱本构建模研究

摘要&#xff1a;针对316L不锈钢循环塑性响应的非线性、路径依赖及滞回特征&#xff0c;传统经验本构模型在复杂加载条件下描述能力有限&#xff0c;纯数据驱动模型又缺乏物理可解释性。为兼顾物理意义与预测精度&#xff0c;本文提出一种基于Chaboche物理约束与LSTM残差学习的…...

同时开发 Android、iOS、鸿蒙 App 的最佳实践:用 Kuikly 一套代码搞定三端

摘要 当你面临"需要同时开发 Android、iOS、鸿蒙&#xff08;HarmonyOS&#xff09;三端 App"的需求时&#xff0c;最常见的困境是&#xff1a;三套代码库、三支团队、三倍维护成本。本文介绍目前业界最完整的三端统一开发方案——腾讯开源的 Kuikly 框架&#xff0…...

WeDLM-7B-Base镜像免配置:预置webui.py+supervisor.conf开箱即用

WeDLM-7B-Base镜像免配置&#xff1a;预置webui.pysupervisor.conf开箱即用 1. 模型简介 WeDLM-7B-Base是一款基于扩散机制&#xff08;Diffusion&#xff09;的高性能基座语言模型&#xff0c;拥有70亿参数。相比传统语言模型&#xff0c;它采用创新的并行解码技术&#xff…...

MGRE综合实验报告册

实验要求&#xff1a;1,R5为ISP&#xff0c;只能进行IP地址配置&#xff0c;其所有地址均配为公有IP地址&#xff1b;2,R1和R5间使用PPP的PAP认证&#xff0c;R5为主认证方&#xff1b;R2与R5之间使用ppp的CHAP认证&#xff0c;R5为主认证方&#xff1b; R3与R5之间使用HDLC封装…...

Vibe Coding与LLM:直觉式编程的新范式

1. 项目概述"Vibe Coding"这个概念最近在开发者社区引起了广泛讨论。它描述的是一种基于直觉和氛围的编程方式——开发者通过感知代码的"韵律感"和"流畅度"来编写和维护软件&#xff0c;而不仅仅是机械地遵循语法规则。这种编程风格特别适合创意…...

从单体到微前端:Motrix架构重构实战指南

从单体到微前端&#xff1a;Motrix架构重构实战指南 【免费下载链接】Motrix A full-featured download manager. 项目地址: https://gitcode.com/gh_mirrors/mo/Motrix Motrix作为一款功能全面的下载管理器&#xff0c;随着用户需求的不断增长&#xff0c;其架构也面临…...

FPGA实现工业以太网协议的关键技术与挑战

1. 工业以太网协议在FPGA驱动设计中的实现挑战工业以太网协议在FPGA驱动设计中的实现面临三大核心挑战&#xff1a;实时性要求、协议多样性以及硬件架构的复杂性。这些挑战直接决定了系统设计的成败。1.1 微秒级实时性要求的实现难点工业自动化对实时性的要求极为严苛&#xff…...

基于Git与CI/CD的学术论文自动化评审工作流实践

1. 项目概述与核心价值最近在学术圈子里&#xff0c;特别是计算机、软件工程这些需要大量代码和文档协同的领域&#xff0c;毕业论文的撰写与评审过程常常让人头疼。导师和学生之间来回传递Word文档&#xff0c;用邮件发送压缩包&#xff0c;版本管理混乱&#xff0c;格式调整费…...