You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Rui Wang (Jira)" <ji...@apache.org> on 2020/02/09 06:39:00 UTC

[jira] [Comment Edited] (CALCITE-3737) HOP Table-valued Function

    [ 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)