[
https://issues.apache.org/jira/browse/CALCITE-3737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17033135#comment-17033135
]
Rui Wang edited comment on CALCITE-3737 at 2/9/20 6:38 AM:
-----------------------------------------------------------
[~julianhyde]
To illustrate the difference of implementation among TUMBLE, HOP, SESSION, I
add an implementation of SESSION table function to #1761. Hopefully from this
PR we can tell what's the better way to unify implementations of windowing
table functions.
was (Author: amaliujia):
[~julianhyde]
To illustrate the difference of implementation among TUMBLE, HOP, SESSION, I
add SESSION table function to #1761. Hopefully from this PR we can tell what's
the better way to unify implementations of windowing table functions.
> HOP Table-valued Function
> -------------------------
>
> Key: CALCITE-3737
> URL: https://issues.apache.org/jira/browse/CALCITE-3737
> Project: Calcite
> Issue Type: Sub-task
> Reporter: Rui Wang
> Assignee: Rui Wang
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.22.0
>
> Time Spent: 2h 40m
> Remaining Estimate: 0h
>
> Hopping windows place intervals of a fixed size evenly spaced across event
> time. Most importantly, in the most common use a given event time timestamp
> will generally fall into more than one window.
> The table-valued function Hop may produce zero, one, or multiple rows
> corresponding to each row of input. Hop takes four required parameters and
> one optional parameter. All parameters are analogous to those for Tumble
> except for hopsize, which specifies the duration between the starting points
> (and endpoints) of the hopping windows, allowing for overlapping windows
> (hopsize < dur, common) or gaps in the data (hopsize > dur, rarely useful).
> {code:java}
> Hop (data , timecol , dur, hopsize)
> {code}
> The return value of Hop is a relation that includes all columns of data as
> well as additional event time columns wstart and wend. Here is an example
> (from https://s.apache.org/streaming-beam-sql ):
> {code:sql}
> SELECT *
> FROM Hop (
> data => TABLE Bids ,
> timecol => DESCRIPTOR ( bidtime ) ,
> dur => INTERVAL '10' MINUTES ,
> hopsize => INTERVAL '5' MINUTES );
> ------------------------------------------
> | wstart | wend | bidtime | price | item |
> ------------------------------------------
> | 8:00 | 8:10 | 8:07 | $2 | A |
> | 8:05 | 8:15 | 8:07 | $2 | A |
> | 8:05 | 8:15 | 8:11 | $3 | B |
> | 8:10 | 8:20 | 8:11 | $3 | B |
> | 8:00 | 8:10 | 8:05 | $4 | C |
> | 8:05 | 8:15 | 8:05 | $4 | C |
> | 8:00 | 8:10 | 8:09 | $5 | D |
> | 8:05 | 8:15 | 8:09 | $5 | D |
> | 8:05 | 8:15 | 8:13 | $1 | E |
> | 8:10 | 8:20 | 8:13 | $1 | E |
> | 8:10 | 8:20 | 8:17 | $6 | F |
> | 8:15 | 8:25 | 8:17 | $6 | F |
> ------------------------------------------
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)