[ https://issues.apache.org/jira/browse/FLINK-5386?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
sunjincheng updated FLINK-5386: ------------------------------- Description: Similar to the SQL, window clause is defined "as" a symbol which is explicitly used in groupby/over. We are proposing to refactor the way to write groupby+window tableAPI as follows: {code} tab //Table('a,'b,'c) .window( Slide over 10.milli every 5.milli as 'w1as 'w1) // WindowedTable .groupBy('w1,'a,'b) // WindowGroupedTable .select('a,'b,c.count as 'mycount) // Table .window(Tumble over 5.milli on 'b as 'w2) .groupBy('w2) .select('a.count, 'w2.start, 'w2.end) {code} In this way, for row-window, we anyway need to define window clause as a symbol. This change will make the API of window and row-window consistent, example for row-window: {code} .window(RowXXXWindow as ‘x, RowYYYWindow as ‘y) // WindowedTable .select(‘a, ‘b.count over ‘x as ‘xcnt, ‘c.count over ‘y as ‘ycnt, ‘x.start, ‘x.end) {code} What do you think? [~fhueske] [~twalthr] was: Similar to the SQL, window clause is defined "as" a symbol which is explicitly used in groupby/over. We are proposing to refactor the way to write groupby+window tableAPI as follows: {code} val windowedTable = table .window(Slide over 10.milli every 5.milli as 'w1) .groupBy('w1, 'key) .select('string, 'int.count as 'count, 'w1.start) .window(Tumble over 5.milli as 'w2) .groupBy( 'w2, 'key2) .select('string, 'count.sum as sum2) .window(Tumble over 5.milli as 'w3) .groupBy( 'w3) // windowAll .select('sum2, 'w3.start, 'w3.end) {code} In this way, we can remove both GroupWindowedTable and the window() method in GroupedTable which makes the API a bit clean. In addition, for row-window, we anyway need to define window clause as a symbol. This change will make the API of window and row-window consistent, example for row-window: {code} .window(RowXXXWindow as ‘x, RowYYYWindow as ‘y) .select(‘a, ‘b.count over ‘x as ‘xcnt, ‘c.count over ‘y as ‘ycnt, ‘x.start, ‘x.end) {code} What do you think? [~fhueske] [~twalthr] > Refactoring Window Clause > ------------------------- > > Key: FLINK-5386 > URL: https://issues.apache.org/jira/browse/FLINK-5386 > Project: Flink > Issue Type: Sub-task > Components: Table API & SQL > Reporter: sunjincheng > Assignee: sunjincheng > > Similar to the SQL, window clause is defined "as" a symbol which is > explicitly used in groupby/over. We are proposing to refactor the way to > write groupby+window tableAPI as follows: > {code} > tab //Table('a,'b,'c) > .window( Slide over 10.milli every 5.milli as 'w1as 'w1) // WindowedTable > .groupBy('w1,'a,'b) // WindowGroupedTable > .select('a,'b,c.count as 'mycount) // Table > .window(Tumble over 5.milli on 'b as 'w2) > .groupBy('w2) > .select('a.count, 'w2.start, 'w2.end) > {code} > In this way, for row-window, we anyway need to define window clause as a > symbol. This change will make the API of window and row-window consistent, > example for row-window: > {code} > .window(RowXXXWindow as ‘x, RowYYYWindow as ‘y) // WindowedTable > .select(‘a, ‘b.count over ‘x as ‘xcnt, ‘c.count over ‘y as ‘ycnt, ‘x.start, > ‘x.end) > {code} > What do you think? [~fhueske] [~twalthr] -- This message was sent by Atlassian JIRA (v6.3.4#6332)