Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-4557 Table API Stream Aggregations
  3. FLINK-5656

Add processing time OVER ROWS BETWEEN UNBOUNDED PRECEDING aggregation to SQL

    Details

    • Type: Sub-task
    • Status: Closed
    • Priority: Major
    • Resolution: Implemented
    • Affects Version/s: None
    • Fix Version/s: 1.3.0
    • Component/s: Table API & SQL
    • Labels:
      None

      Description

      The goal of this issue is to add support for OVER ROW aggregations on processing time streams to the SQL interface.

      Queries similar to the following should be supported:

      SELECT 
        a, 
        SUM(b) OVER (PARTITION BY c ORDER BY procTime() ROW BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS sumB,
        MIN(b) OVER (PARTITION BY c ORDER BY procTime() ROW BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS minB
      FROM myStream
      

      The following restrictions should initially apply:

      • All OVER clauses in the same SELECT clause must be exactly the same.
      • The PARTITION BY clause is optional (no partitioning results in single threaded execution).
      • The ORDER BY clause may only have procTime() as parameter. procTime() is a parameterless scalar function that just indicates processing time mode.
      • x PRECEDING is not supported (see FLINK-5653)
      • FOLLOWING is not supported.

      The restrictions will be resolved in follow up issues. If we find that some of the restrictions are trivial to address, we can add the functionality in this issue as well.

      This issue includes:

      • Design of the DataStream operator to compute OVER ROW aggregates
      • Translation from Calcite's RelNode representation (LogicalProject with RexOver expression).

        Issue Links

          Activity

          Hide
          sunjincheng121 sunjincheng added a comment - - edited

          HI, Fabian Hueske Jark Wu, IMO,In the case of `BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW`, ROWS and RANGE should have the same implementation, so I want to merge this JIRA Into FLINK-5803. What do you think?

          Show
          sunjincheng121 sunjincheng added a comment - - edited HI, Fabian Hueske Jark Wu , IMO,In the case of `BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW`, ROWS and RANGE should have the same implementation, so I want to merge this JIRA Into FLINK-5803 . What do you think?
          Hide
          jark Jark Wu added a comment - - edited

          sunjincheng I'm fine with this as I haven't start this issue. If you think you can implement them together, then feel free to go ahead!

          Show
          jark Jark Wu added a comment - - edited sunjincheng I'm fine with this as I haven't start this issue. If you think you can implement them together, then feel free to go ahead!
          Hide
          sunjincheng121 sunjincheng added a comment -

          Hi, Jark Wu, I'll take the JIRA.
          Thanks,
          SunJincheng

          Show
          sunjincheng121 sunjincheng added a comment - Hi, Jark Wu , I'll take the JIRA. Thanks, SunJincheng
          Hide
          sunjincheng121 sunjincheng added a comment - - edited

          Hi, Fabian Hueske I think PR( #3397 ) Has solved this issue, So, I want close this JIRA. What do you think?
          Best,
          SunJIncheng

          Show
          sunjincheng121 sunjincheng added a comment - - edited Hi, Fabian Hueske I think PR( #3397 ) Has solved this issue, So, I want close this JIRA. What do you think? Best, SunJIncheng
          Hide
          fhueske Fabian Hueske added a comment -

          You're right sunjincheng. I'll close it.

          Show
          fhueske Fabian Hueske added a comment - You're right sunjincheng . I'll close it.
          Hide
          fhueske Fabian Hueske added a comment -

          Implemented with 53fb8f3b532a1be3d3cd655fbb5516a7e1ae8ada

          Show
          fhueske Fabian Hueske added a comment - Implemented with 53fb8f3b532a1be3d3cd655fbb5516a7e1ae8ada

            People

            • Assignee:
              sunjincheng121 sunjincheng
              Reporter:
              fhueske Fabian Hueske
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development