使用Flink SQL时,碰到的 【Window can only be defined over a time attribute column】

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

使用Flink SQL时,碰到的 【Window can only be defined over a time attribute column】

amenhub@163.com
各位好,


在使用Flink SQL时,创建如下DDL,使用窗口时报错:


INSERT INTO sql_out
SELECT product_id, TUMBLE_END(ts, INTERVAL '2' MINUTE) AS window_end, count(*) AS cnt FROM kafka_out WHERE behavior = 'pv' GROUP BY product_id, TUMBLE(ts, INTERVAL '2' MINUTE)


错误信息:Window can only be defined over a time attribute column. 请大佬帮我解惑,谢谢


祝好




 
Reply | Threaded
Open this post in threaded view
|

Re: 使用Flink SQL时,碰到的 【Window can only be defined over a time attribute column】

Benchao Li
hi amenhub,

这个错误的意思是,窗口内引用的字段需要是一个时间字段,可以是事件时间,也可以是处理时间。你需要check一下你的ts字段是不是定义了时间属性。

可以参考下官方文档:
https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/sql.html#group-windows

amenhub <[hidden email]> 于2020年1月6日周一 下午4:45写道:

> 各位好,
>
>
> 在使用Flink SQL时,创建如下DDL,使用窗口时报错:
>
>
> INSERT INTO sql_out
> SELECT product_id, TUMBLE_END(ts, INTERVAL '2' MINUTE) AS window_end,
> count(*) AS cnt FROM kafka_out WHERE behavior = 'pv' GROUP BY product_id,
> TUMBLE(ts, INTERVAL '2' MINUTE)
>
>
> 错误信息:Window can only be defined over a time attribute column. 请大佬帮我解惑,谢谢
>
>
> 祝好
>
>
>
>
>



--

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: [hidden email]; [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: 使用Flink SQL时,碰到的 【Window can only be defined over a time attribute column】

Leonard Xu
Hi,amenhub

这个提示是ts字段缺少了时间属性(time attribute),window中的ts字段需要定义为时间属性,目前Flink支持处理时间(processing time) 和 事件时间(event time),时间属性的定义方式可以参考[1]


[1]https://ci.apache.org/projects/flink/flink-docs-master/dev/table/streaming/time_attributes.html <https://ci.apache.org/projects/flink/flink-docs-master/dev/table/streaming/time_attributes.html>


Best,
Leonard

> 在 2020年1月6日,16:50,Benchao Li <[hidden email]> 写道:
>
> hi amenhub,
>
> 这个错误的意思是,窗口内引用的字段需要是一个时间字段,可以是事件时间,也可以是处理时间。你需要check一下你的ts字段是不是定义了时间属性。
>
> 可以参考下官方文档:
> https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/sql.html#group-windows
>
> amenhub <[hidden email]> 于2020年1月6日周一 下午4:45写道:
>
>> 各位好,
>>
>>
>> 在使用Flink SQL时,创建如下DDL,使用窗口时报错:
>>
>>
>> INSERT INTO sql_out
>> SELECT product_id, TUMBLE_END(ts, INTERVAL '2' MINUTE) AS window_end,
>> count(*) AS cnt FROM kafka_out WHERE behavior = 'pv' GROUP BY product_id,
>> TUMBLE(ts, INTERVAL '2' MINUTE)
>>
>>
>> 错误信息:Window can only be defined over a time attribute column. 请大佬帮我解惑,谢谢
>>
>>
>> 祝好
>>
>>
>>
>>
>>
>
>
>
> --
>
> Benchao Li
> School of Electronics Engineering and Computer Science, Peking University
> Tel:+86-15650713730
> Email: [hidden email]; [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re:Re: 使用Flink SQL时,碰到的 【Window can only be defined over a time attribute column】

amenhub@163.com
In reply to this post by Benchao Li
hi Benchao,


刚才了解到,flink1.9版本不支持DDL time以及watermark语义的定义,所以是因此不支持window窗口函数需要的时间属性。期待1.10发布~

祝好






在 2020-01-06 16:50:03,"Benchao Li" <[hidden email]> 写道:

>hi amenhub,
>
>这个错误的意思是,窗口内引用的字段需要是一个时间字段,可以是事件时间,也可以是处理时间。你需要check一下你的ts字段是不是定义了时间属性。
>
>可以参考下官方文档:
>https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/sql.html#group-windows
>
>amenhub <[hidden email]> 于2020年1月6日周一 下午4:45写道:
>
>> 各位好,
>>
>>
>> 在使用Flink SQL时,创建如下DDL,使用窗口时报错:
>>
>>
>> INSERT INTO sql_out
>> SELECT product_id, TUMBLE_END(ts, INTERVAL '2' MINUTE) AS window_end,
>> count(*) AS cnt FROM kafka_out WHERE behavior = 'pv' GROUP BY product_id,
>> TUMBLE(ts, INTERVAL '2' MINUTE)
>>
>>
>> 错误信息:Window can only be defined over a time attribute column. 请大佬帮我解惑,谢谢
>>
>>
>> 祝好
>>
>>
>>
>>
>>
>
>
>
>--
>
>Benchao Li
>School of Electronics Engineering and Computer Science, Peking University
>Tel:+86-15650713730
>Email: [hidden email]; [hidden email]