You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 苏 欣 <se...@live.com> on 2019/09/11 03:45:02 UTC

flink sql中怎么表达窗口的提前触发或延迟触发

Blink文档中有介绍到EMIT Strategy,可以用WITH DELAY '1' MINUTE BEFORE WATERMARK或者EMIT WITHOUT DELAY AFTER WATERMARK等类似的语法来控制窗口触发。
但是我使用这种语法作业运行就会报SQL解析错误,请问有没有办法可以在sql中实现控制窗口触发的操作?
Table result = tEnv.sqlQuery("select " +
                "count(*) " +
                "from dept group by tumble(crt_time, INTERVAL '10' SECOND) WITH DELAY '1' MINUTE BEFORE WATERMARK");
报错:
Exception in thread "main" org.apache.flink.table.api.SqlParserException:
************
ERR_ID:
     SQL-00120001
CAUSE:
     SQL parse failed:
     Encountered "WITH" at line 1, column 75.
     Was expecting one of:
         <EOF>
         "ORDER" ...
         "LIMIT" ...
         "OFFSET" ...
         "FETCH" ...
         "," ...

发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用


答复: flink sql中怎么表达窗口的提前触发或延迟触发

Posted by 苏 欣 <se...@live.com>.
感谢大佬解答,对于处理窗口迟到数据的话是不是可以通过setIdleStateRetentionTime方法来设置?



发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用



________________________________
发件人: Benchao Li <li...@gmail.com>
发送时间: Wednesday, September 11, 2019 6:38:44 PM
收件人: user-zh@flink.apache.org <us...@flink.apache.org>
主题: Re: flink sql中怎么表达窗口的提前触发或延迟触发

目前社区的1.9版本的blink-planner在parser层面还不支持,可以通过全局config来配置:
table.exec.emit.early-fire.enabled
table.exec.emit.early-fire.delay

可以尝试一下。

苏 欣 <se...@live.com> 于2019年9月11日周三 上午11:45写道:

> Blink文档中有介绍到EMIT Strategy,可以用WITH DELAY '1' MINUTE BEFORE WATERMARK或者EMIT
> WITHOUT DELAY AFTER WATERMARK等类似的语法来控制窗口触发。
> 但是我使用这种语法作业运行就会报SQL解析错误,请问有没有办法可以在sql中实现控制窗口触发的操作?
> Table result = tEnv.sqlQuery("select " +
>                 "count(*) " +
>                 "from dept group by tumble(crt_time, INTERVAL '10' SECOND)
> WITH DELAY '1' MINUTE BEFORE WATERMARK");
> 报错:
> Exception in thread "main" org.apache.flink.table.api.SqlParserException:
> ************
> ERR_ID:
>      SQL-00120001
> CAUSE:
>      SQL parse failed:
>      Encountered "WITH" at line 1, column 75.
>      Was expecting one of:
>          <EOF>
>          "ORDER" ...
>          "LIMIT" ...
>          "OFFSET" ...
>          "FETCH" ...
>          "," ...
>
> 发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用
>
>

--

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: libenchao@gmail.com; libenchao@pku.edu.cn

Re: flink sql中怎么表达窗口的提前触发或延迟触发

Posted by Benchao Li <li...@gmail.com>.
目前社区的1.9版本的blink-planner在parser层面还不支持,可以通过全局config来配置:
table.exec.emit.early-fire.enabled
table.exec.emit.early-fire.delay

可以尝试一下。

苏 欣 <se...@live.com> 于2019年9月11日周三 上午11:45写道:

> Blink文档中有介绍到EMIT Strategy,可以用WITH DELAY '1' MINUTE BEFORE WATERMARK或者EMIT
> WITHOUT DELAY AFTER WATERMARK等类似的语法来控制窗口触发。
> 但是我使用这种语法作业运行就会报SQL解析错误,请问有没有办法可以在sql中实现控制窗口触发的操作?
> Table result = tEnv.sqlQuery("select " +
>                 "count(*) " +
>                 "from dept group by tumble(crt_time, INTERVAL '10' SECOND)
> WITH DELAY '1' MINUTE BEFORE WATERMARK");
> 报错:
> Exception in thread "main" org.apache.flink.table.api.SqlParserException:
> ************
> ERR_ID:
>      SQL-00120001
> CAUSE:
>      SQL parse failed:
>      Encountered "WITH" at line 1, column 75.
>      Was expecting one of:
>          <EOF>
>          "ORDER" ...
>          "LIMIT" ...
>          "OFFSET" ...
>          "FETCH" ...
>          "," ...
>
> 发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用
>
>

-- 

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: libenchao@gmail.com; libenchao@pku.edu.cn