这里指定 id, name 两个字段,并指定 age 字段作为事件时间字段。
tableEnv.connect() .withSchema(new Schema() .field("id", DataTypes.INT()) .rowtime(new Rowtime() .timestampsFromField("age") .watermarksPeriodicBounded(1000)) .field("name", DataTypes.STRING()))
指定 age 为事件事件,必须为 long 或者 timestamp,新增 pt 为处理时间,pt 字段是可以自定义的
val tPerson: Table = tableEnv.fromDataStream(dsPerson, 'name, 'age.rowtime, 'pt.proctime)
开窗如下,按照处理时间 pt 来开滚动窗口
val tbName2age: Table = tPerson .window(Tumble over 4.second on 'pt as "w") .groupBy('w, 'name) .select('name, 'age.avg())