Re: 回复:flink 1.12如何实现window topN功能
可以将 1.13 的这个功能打在 flink 1.12 上面,然后引用你们新打的依赖 casel.chen 于2021年6月23日周三 下午12:08写道: > -- source > CREATE TABLE tmall_item( > itemID VARCHAR, > itemType VARCHAR, > onSellTime TIMESTAMP(3), > price DOUBLE, > proctime AS PROCTIME(), > WATERMARK FOR onSellTime AS onSellTime - INTERVAL '5' SECOND > ) WITH ( > 'connector' = 'filesystem' , > 'path' = 'file:///path/to/over-window.csv', > 'format' = 'csv' > ); > > -- sink > CREATE TABLE print_table ( > itemID VARCHAR, > itemType VARCHAR, > onSellTime TIMESTAMP(3), > price DOUBLE > ) WITH ( > 'connector' = 'print' > ); > > -- insert > INSERT INTO print_table > SELECT itemID, > itemType, > onSellTime, > price > FROM ( > SELECT itemID, > itemType, > onSellTime, > price, > ROW_NUMBER() OVER ( > PARTITION BY itemID, DATE_FORMAT(proctime, 'MMddHHmm') > ORDER BY onSellTime DESC > ) AS row_num > FROM tmall_item > ) WHERE row_num = 1; > > > > > > > > > > > > > > > > > > 在 2021-06-23 11:06:39,"杨光跃" 写道: > >应该是这样吧 > > > > > >1. 第一步以主键group by 以及分时间窗口 > >SELECT 主键, TUMBLE_START(ts, INTERVAL '10' SECOND) as wStart, FROM > source_event group by TUMBLE(ts, INTERVAL '10' SECOND), 主键 > > > > > >2. 根据上一步的结果取top5 > >select * from (select * ,ROW_NUMBER() OVER (PARTITION BY wStart ORDER BY > 处理时间字段 ) as rownum from 上一步的虚拟表) where rownum <= 5 > > > >| | > >杨光跃 > >| > >| > >yangguangyuem...@163.com > >| > >签名由网易邮箱大师定制 > >在2021年6月23日 10:58,casel.chen 写道: > >你指的是TopN吗? > https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/sql/queries.html#top-n > >但我想知道window topN写法,跟这个还不一样。 > >我的需求是: > >cdc场景同一个主键数据变更频繁,我想定义一个5秒处理时间窗口,在该窗口内取同一主键最新变更记录。用flink sql 1.12如何实现? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >在 2021-06-23 10:18:01,"杨光跃" 写道: > > > > > >Apache Flink 1.12 Documentation: Queries > >| | > >杨光跃 > >| > >| > >yangguangyuem...@163.com > >| > >签名由网易邮箱大师定制 > >在2021年6月23日 10:09,casel.chen 写道: > >请不要截图哦 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >在 2021-06-23 09:47:46,"杨光跃" 写道: > > > >1.12也支持的 > >| | > >杨光跃 > >| > >| > >yangguangyuem...@163.com > >| > >签名由网易邮箱大师定制 > >在2021年6月23日 09:45,casel.chen 写道: > >官网文档上显示flink 1.13支持window topN,但flink 1.12没看到相关文档,请问有什么work around方法吗? >
Re:回复:flink 1.12如何实现window topN功能
-- source CREATE TABLE tmall_item( itemID VARCHAR, itemType VARCHAR, onSellTime TIMESTAMP(3), price DOUBLE, proctime AS PROCTIME(), WATERMARK FOR onSellTime AS onSellTime - INTERVAL '5' SECOND ) WITH ( 'connector' = 'filesystem' , 'path' = 'file:///path/to/over-window.csv', 'format' = 'csv' ); -- sink CREATE TABLE print_table ( itemID VARCHAR, itemType VARCHAR, onSellTime TIMESTAMP(3), price DOUBLE ) WITH ( 'connector' = 'print' ); -- insert INSERT INTO print_table SELECT itemID, itemType, onSellTime, price FROM ( SELECT itemID, itemType, onSellTime, price, ROW_NUMBER() OVER ( PARTITION BY itemID, DATE_FORMAT(proctime, 'MMddHHmm') ORDER BY onSellTime DESC ) AS row_num FROM tmall_item ) WHERE row_num = 1; 在 2021-06-23 11:06:39,"杨光跃" 写道: >应该是这样吧 > > >1. 第一步以主键group by 以及分时间窗口 >SELECT 主键, TUMBLE_START(ts, INTERVAL '10' SECOND) as wStart, FROM source_event > group by TUMBLE(ts, INTERVAL '10' SECOND), 主键 > > >2. 根据上一步的结果取top5 >select * from (select * ,ROW_NUMBER() OVER (PARTITION BY wStart ORDER BY >处理时间字段 ) as rownum from 上一步的虚拟表) where rownum <= 5 > >| | >杨光跃 >| >| >yangguangyuem...@163.com >| >签名由网易邮箱大师定制 >在2021年6月23日 10:58,casel.chen 写道: >你指的是TopN吗?https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/sql/queries.html#top-n >但我想知道window topN写法,跟这个还不一样。 >我的需求是: >cdc场景同一个主键数据变更频繁,我想定义一个5秒处理时间窗口,在该窗口内取同一主键最新变更记录。用flink sql 1.12如何实现? > > > > > > > > > > > > > > > > > >在 2021-06-23 10:18:01,"杨光跃" 写道: > > >Apache Flink 1.12 Documentation: Queries >| | >杨光跃 >| >| >yangguangyuem...@163.com >| >签名由网易邮箱大师定制 >在2021年6月23日 10:09,casel.chen 写道: >请不要截图哦 > > > > > > > > > > > > > > > > >在 2021-06-23 09:47:46,"杨光跃" 写道: > >1.12也支持的 >| | >杨光跃 >| >| >yangguangyuem...@163.com >| >签名由网易邮箱大师定制 >在2021年6月23日 09:45,casel.chen 写道: >官网文档上显示flink 1.13支持window topN,但flink 1.12没看到相关文档,请问有什么work around方法吗?
回复:flink 1.12如何实现window topN功能
应该是这样吧 1. 第一步以主键group by 以及分时间窗口 SELECT 主键, TUMBLE_START(ts, INTERVAL '10' SECOND) as wStart, FROM source_event group by TUMBLE(ts, INTERVAL '10' SECOND), 主键 2. 根据上一步的结果取top5 select * from (select * ,ROW_NUMBER() OVER (PARTITION BY wStart ORDER BY 处理时间字段 ) as rownum from 上一步的虚拟表) where rownum <= 5 | | 杨光跃 | | yangguangyuem...@163.com | 签名由网易邮箱大师定制 在2021年6月23日 10:58,casel.chen 写道: 你指的是TopN吗?https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/sql/queries.html#top-n 但我想知道window topN写法,跟这个还不一样。 我的需求是: cdc场景同一个主键数据变更频繁,我想定义一个5秒处理时间窗口,在该窗口内取同一主键最新变更记录。用flink sql 1.12如何实现? 在 2021-06-23 10:18:01,"杨光跃" 写道: Apache Flink 1.12 Documentation: Queries | | 杨光跃 | | yangguangyuem...@163.com | 签名由网易邮箱大师定制 在2021年6月23日 10:09,casel.chen 写道: 请不要截图哦 在 2021-06-23 09:47:46,"杨光跃" 写道: 1.12也支持的 | | 杨光跃 | | yangguangyuem...@163.com | 签名由网易邮箱大师定制 在2021年6月23日 09:45,casel.chen 写道: 官网文档上显示flink 1.13支持window topN,但flink 1.12没看到相关文档,请问有什么work around方法吗?
Re:回复:flink 1.12如何实现window topN功能
你指的是TopN吗?https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/sql/queries.html#top-n 但我想知道window topN写法,跟这个还不一样。 我的需求是: cdc场景同一个主键数据变更频繁,我想定义一个5秒处理时间窗口,在该窗口内取同一主键最新变更记录。用flink sql 1.12如何实现? 在 2021-06-23 10:18:01,"杨光跃" 写道: > > >Apache Flink 1.12 Documentation: Queries >| | >杨光跃 >| >| >yangguangyuem...@163.com >| >签名由网易邮箱大师定制 >在2021年6月23日 10:09,casel.chen 写道: >请不要截图哦 > > > > > > > > > > > > > > > > >在 2021-06-23 09:47:46,"杨光跃" 写道: > >1.12也支持的 >| | >杨光跃 >| >| >yangguangyuem...@163.com >| >签名由网易邮箱大师定制 >在2021年6月23日 09:45,casel.chen 写道: >官网文档上显示flink 1.13支持window topN,但flink 1.12没看到相关文档,请问有什么work around方法吗?
回复:flink 1.12如何实现window topN功能
Apache Flink 1.12 Documentation: Queries | | 杨光跃 | | yangguangyuem...@163.com | 签名由网易邮箱大师定制 在2021年6月23日 10:09,casel.chen 写道: 请不要截图哦 在 2021-06-23 09:47:46,"杨光跃" 写道: 1.12也支持的 | | 杨光跃 | | yangguangyuem...@163.com | 签名由网易邮箱大师定制 在2021年6月23日 09:45,casel.chen 写道: 官网文档上显示flink 1.13支持window topN,但flink 1.12没看到相关文档,请问有什么work around方法吗?
Re:回复:flink 1.12如何实现window topN功能
请不要截图哦 在 2021-06-23 09:47:46,"杨光跃" 写道: 1.12也支持的 | | 杨光跃 | | yangguangyuem...@163.com | 签名由网易邮箱大师定制 在2021年6月23日 09:45,casel.chen 写道: 官网文档上显示flink 1.13支持window topN,但flink 1.12没看到相关文档,请问有什么work around方法吗?
回复:flink 1.12如何实现window topN功能
1.12也支持的 | | 杨光跃 | | yangguangyuem...@163.com | 签名由网易邮箱大师定制 在2021年6月23日 09:45,casel.chen 写道: 官网文档上显示flink 1.13支持window topN,但flink 1.12没看到相关文档,请问有什么work around方法吗?