温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
我们已经掌握了两种指定时间属性字段的方法,一种是在创建表的DDL当中直接指定,另外一种呢,就是将流data string转换成表的时候去指定一个时间属性字段啊那当然了,这两种我们在讲解的过程当中呢,其实默认当前的时间语义都是事件时间,因为在实际使用的过程当中,一般我们都是基于事件时间语义去进行时间和窗口处理操作的。如果说我们想要使用处理时间语义又应该怎么办呢?呃,其实非常的类似,而且处理时间语义呢,会更加的简单啊,所以这一部分呢,我们就简单的来了解一下就知道怎么回事儿了。在处理时间语义下,哎,那最关键的其实我们知道就是增加一个时间属性字段了,而且这个时间属性字段呢,就是当前的系统时间,它跟已有的那些字段没有任何关系,也不存在什么水位线生成啊之类的一些问题,所以呢,单独的追加一个字段就完事了,所以对应的它也存在两种创建的方式,我们说一种呢,就是在创建表的DDL当中追加一个字段去定义,我们看这个DDL怎么写呢?比方说现在啊,我们如果是处理时间语义的话,有user,有URL,呃,比如我们可能还有一个time s也有可能就根本没有啊,那这个不重要,我们只要单独再去额外定义一个时间属性就可以了。
01:25
这个字段,比方说我就叫做TS,然后后边呢,来了一个计算列的形式,S表示我当前本来没有这一列,只不过呢,要按照某种计算方法计算函数调用基于之前的某些字段,或者不基于直接把一个新的列创建出来。那像现在呢,我们就是没有基于任何其他的字段,直接调用一个pro time这样一个函数啊,它这个函数我们知道它其实就是processing time啊,直接获取当前的处理时间,而且把这个时间呢。交给TS就作为我们当前的时间属性字段了。
02:03
跟之前事件时间与一下的定义方式呢,非常的类似,而且更加简单,直接一个s pro就完事了。啊,那当然了,除了在创建表的D当中去定义,还有一种就是哎,我们把一个data stream嘛,数据流转换成表的时候,也可以单独定义处理时间语义的时间属性啊,那这种方式呢,也类似啊,那只不过就是说像之前我们这个事件时间语义啊,有可能就把之前已有的一个字段直接调一个点肉time,就把它改成时间属性了啊,改成一个time项类型了,呃,后面可以重命名,那如果要是处理时间呢,处理时间当然就不能这么干了,因为处理时间跟之前已有的那些字段根本就没有关系嘛,所以处理时间与一下这个字段一定是新增出来。一定是后面追加了一个之前没有的字段啊,然后这里调用的方法也不是点RO time,而是点pro time,所以指定的就是处理时间与一下的时间属性字段。
03:04
当然了,因为是处理时间嘛,就是我们当前的系统时间,它跟前面我们在创建数据流的时候,去asigntime stamp and water maps啊,去生成水位线,跟这些一点关系都没有,前面根本没有必要调用这些,只要有data,只要有这个流,后边我们再转换成表的时候,调一个点pro就可以指定时间字段了啊,这就是关于处理时间的一些处理的方式。
我来说两句