Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-5725 Support windowed JOIN between two streaming tables
  3. FLINK-6232

Support proctime inner equi-join between two streams in the SQL API

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Implemented
    • None
    • 1.4.0
    • Table SQL / API
    • None

    Description

      The goal of this issue is to add support for inner equi-join on proc time streams to the SQL interface.
      Queries similar to the following should be supported:

      SELECT o.proctime, o.productId, o.orderId, s.proctime AS shipTime 
      FROM Orders AS o 
      JOIN Shipments AS s 
      ON o.orderId = s.orderId 
      AND o.proctime BETWEEN s.proctime AND s.proctime + INTERVAL '1' HOUR;
      

      The following restrictions should initially apply:

      • The join hint only support inner join
      • The ON clause should include equi-join condition
      • The time-condition o.proctime BETWEEN s.proctime AND s.proctime + INTERVAL '1' HOUR only can use proctime that is a system attribute, the time condition only support bounded time range like o.proctime BETWEEN s.proctime - INTERVAL '1' HOUR AND s.proctime + INTERVAL '1' HOUR, not support unbounded like o.proctime > s.protime, and should include both two stream's proctime attribute, o.proctime between proctime() and proctime() + 1 should also not be supported.

      This issue includes:

      • Design of the DataStream operator to deal with stream join
      • Translation from Calcite's RelNode representation (LogicalJoin).

      Attachments

        Activity

          People

            Yuhong_kyo hongyuhong
            Yuhong_kyo hongyuhong
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: