不管是SQL还是DataStream,底层最终用来划分窗口的时候的时间,都是unix timestamp。
SQL里面的Timestamp类型,是可以带着时区的,但是转成unix timestamp表示的时候,时区信息就丢掉了。

Zhao,Yi(SEC) <zhaoy...@baidu.com> 于2020年8月13日周四 上午10:12写道:

> 大概懂你意思,sql情况下event time都是Timestamp数据类型,这是一种yyyy-MM-dd
> HH:mm:ss格式的,从这个角度讲的确是不需要考虑offset的问题(只要周期是1min/1h/1d等类似)。只需要这个Timestamp是我需要的时区格式的日期即可。
> 其实我是联系DatastreamAPI的,因为DatastreamAPI中是基于unix timestamp(时间戳)来划分的。
>
> 在 2020/8/12 下午9:21,“Benchao Li”<libenc...@apache.org> 写入:
>
>     Hi,
>
>     目前还没有支持offset,有一个issue[1] 在跟进解决这个问题。
>     但是你这个case应该是不需要offset就可以的,现在划分窗口的逻辑是直接按照毫秒级别的时间戳来整除进行计算的。
>     所以如果窗口是1min/1h/1d 这种,都是整点的窗口,没有问题的。如果你有这个问题,那应该是你的时间字段有时区问题。
>     有一种case是需要offset的,比如一周这种窗口,因为1980-1-1是周四,所以一周的窗口是从周四开始的。
>
>     [1] https://issues.apache.org/jira/browse/FLINK-17767
>
>     Zhao,Yi(SEC) <zhaoy...@baidu.com> 于2020年8月12日周三 下午8:15写道:
>
>     > 如题,是不是不支持offset呀。在中国,天窗口实际应该是 INTVERVAL ‘1’ DAY + 8小时offset。
>     > 但是看了文档没发现添加offset的语法。
>     >
>     >
>     > 如果仅仅是时间显示问题还好说,搞个函数转一转,但分窗这个不提供入口没办法。
>     >
>
>
>     --
>
>     Best,
>     Benchao Li
>
>
>

-- 

Best,
Benchao Li

回复