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

昆明制作网站费用软件测试培训机构哪家好

昆明制作网站费用,软件测试培训机构哪家好,网站开发资源网,网站排行首页怎么做之前做过数据平台,对于实时数据采集,使用了Flink。现在想想,在数据开发平台中,Flink的身影几乎无处不在,由于之前是边用边学,总体有点混乱,借此空隙,整理一下Flink的内容&#xff0c…

之前做过数据平台,对于实时数据采集,使用了Flink。现在想想,在数据开发平台中,Flink的身影几乎无处不在,由于之前是边用边学,总体有点混乱,借此空隙,整理一下Flink的内容,算是一个知识积累,同时也分享给大家。

注意由于框架不同版本改造会有些使用的不同,因此本次系列中使用基本框架是 Flink-1.19.x,Flink支持多种语言,这里的所有代码都是使用java,JDK版本使用的是19
代码参考:https://github.com/forever1986/flink-study.git

目录

  • 1 Window Top-N
    • 1.1 说明
    • 1.2 示例演示
  • 2 Window Deduplication
    • 2.1 说明
    • 2.2 示例演示

上一章针对了FlinkSQL中的水位线和窗口进行了讲解,那么这一章结合前面讲到的基于OVER函数的聚合TopN和Deduplication,实现在有窗口定义下的使用,下面统一做演示。

1 Window Top-N

1.1 说明

在《系列之二十七 - Flink SQL - 中间算子:OVER聚合》中讲过使用OVER函数来实现Top-N。这里加入上一章讲解的窗口,按照需求查询每个窗口的Top-N,以下是Top-N的语法:

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) -- relation applied windowing TVF
WHERE rownum <= N [AND conditions]

注意事项

  • 1)其中table_name替换为VTF窗口的写法,即可做到开窗求Top-N
  • 2)Window Top-N 需要 PARTITION BY 子句包含 窗口表值函数 或 窗口聚合 产生的 window_start 和 window_end
  • 3)不支持会话窗口

1.2 示例演示

示例说明:通过随机生成服务器cpu值,进行滚动窗口5秒内排名top-2的cpu值。为了演示说明方便,这里只生成一台服务器的数据

1)创建log表:使用它datagen的connector随机生成cpu值

CREATE TABLE log(id INT,cpu DOUBLE,ts AS cast(CURRENT_TIMESTAMP as timestamp(3)),WATERMARK FOR ts AS ts
) WITH ('connector' = 'datagen','rows-per-second'='1','fields.id.kind'='random','fields.id.min'='1','fields.id.max'='1','fields.cpu.kind'='random','fields.cpu.min'='1','fields.cpu.max'='100'
);

在这里插入图片描述

2)结合Top-N和窗口查询:5秒长度滚动窗口,窗口内排名前2的cpu值

SET sql-client.execution.result-mode=TABLEAU; 
SELECTid,cpu,ts,rownum,window_start, window_end
FROM
(SELECT id , cpu, ts, ROW_NUMBER() OVER(PARTITION BY window_start, window_end ORDER BY cpu desc) as rownum,window_start, window_endFROM TABLE(TUMBLE(TABLE log, DESCRIPTOR(ts), INTERVAL '5' SECOND))
)
WHERE rownum<=2;

在这里插入图片描述

说明:从上图可以看到每个窗口不断地打印出前2的cpu值,[15,20)的窗口只打印一条是刚好这个窗口只有1条数据(19秒的时候生产的)

2 Window Deduplication

2.1 说明

在《系列之二十七 - Flink SQL - 中间算子:OVER聚合》中讲过使用OVER函数来实现Deduplication。这里加入上一章讲解的窗口,按照需求查询每个窗口的去重Deduplication,以下是Deduplication的语法:

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

注意事项

  • 1)其中table_name替换为VTF窗口的写法,即可做到开窗去重
  • 2)Window Top-N 需要 PARTITION BY 子句包含 窗口表值函数 或 窗口聚合 产生的 window_start 和 window_end
  • 3)不支持会话窗口。不支持处理时间,只支持事件时间

2.2 示例演示

示例说明:通过随机生成服务器cpu值,进行滚动窗口5秒内每台服务器最大cpu值。

1)创建log表:使用它datagen的connector随机生成cpu值

CREATE TABLE log(id INT,cpu DOUBLE,ts AS cast(CURRENT_TIMESTAMP as timestamp(3)),WATERMARK FOR ts AS ts
) WITH ('connector' = 'datagen','rows-per-second'='1','fields.id.kind'='random','fields.id.min'='1','fields.id.max'='2','fields.cpu.kind'='random','fields.cpu.min'='1','fields.cpu.max'='100'
);

在这里插入图片描述

2)结合Top-N和窗口查询:5秒长度滚动窗口,窗口内不同服务器最大的cpu值

SET sql-client.execution.result-mode=TABLEAU;
SELECTid,cpu,ts,rownum,window_start, window_end
FROM
(SELECT id , cpu, ts, ROW_NUMBER() OVER(PARTITION BY window_start, window_end, id ORDER BY cpu desc) as rownum,window_start, window_endFROM TABLE(TUMBLE(TABLE log, DESCRIPTOR(ts), INTERVAL '5' SECOND))
)
WHERE rownum = 1;

在这里插入图片描述

说明:从上图可以看到每个窗口不断地打印出最大的cpu值

结语:本章主要是将《系列之二十七 - Flink SQL - 中间算子:OVER聚合》中的Top-N和Deduplication场景在有窗口定义下的情况进行演示。下章还是继续回到FlinkSQL的中间算子。

http://www.dtcms.com/wzjs/507319.html

相关文章:

  • 云服务器网站搭建长沙官网seo收费
  • 最新网站建设常见问题郑州网站技术顾问
  • 上海免费网站建设模板推荐三亚百度推广地址
  • 平板购物网站建设怎么网上宣传自己的产品
  • 武汉网站建设多少钱今日头条热点新闻
  • 苏州画廊网站建设最经典最常用的网站推广方式
  • ps做网站素材文件打包seo体系
  • 北京网站开发网站建设报价如何建立个人网址
  • 做网站要用到哪些架包全渠道营销案例
  • 刷手机网站关键词seo公司推荐推广平台
  • 做详情图的网站网络营销的概念与含义
  • 上海网站建设caiyiduo百度站内搜索
  • 做网站时图片要切片有什么作用东莞seo技术
  • 用php建设一个简单的网站seo权重优化软件
  • 高端网站建设南宁桂林网站优化
  • 营销型网站框架百度地图排名怎么优化
  • 免费做公众号的网站百度百科官网
  • 免费的seo网站膝商丘关键词优化推广
  • 上海app外包免费seo快速收录工具
  • 平台b2c网站建设北京seo地址
  • 北京网站开开发公司电话seo销售是做什么的
  • 中企动力济南分公司seo关键词排名优化方案
  • 网站开发及应用今天最新消息
  • 网站多多sem 优化价格
  • 视频背景做网站背景合肥网络推广营销
  • 购物网站优化的建议免费打广告平台有哪些
  • 最近三天的新闻大事摘抄优化关键词哪家好
  • 织梦网站怎么做301跳转企业关键词优化公司
  • 如何用dw做网站建网站的详细步骤
  • 西安手机网站开发互联网营销师报名费