Hi, 我希望通过FlinkSQL的方式在一个Job中完成两步的操作,但似乎办不到,情况大致如下:
eg.有一个ETL过程,需要从Source获取数据--将每条数据拆分为一条多列数据--对拆分完的数据开窗聚合--输出到sink。 //从Source获取数据 CREATE TABLE sourceTable ( request_uri STRING ) WITH ( .......... ); //这个时候我希望能够创建一张临时中间表 tempTable用来存放 对Source表中数据拆分为多列后的结果,类似于下面这样(Flink 并不支持这么做) CREATE TABLE tempTable ( row1 STRING, row2 STRING, ) Insert into tempTable select * from sourceTable , LATERAL TABLE(ParseUriRow(request_uri)) as T( ).... //最后从 tempTable 表中获取数据并进行开窗做聚合操作 CREATE TABLE sinkTable ( row1 STRING, ) INSERT INTO sinkTable SELECT .., SUM(unit) AS unitSum from tempTable GROUP BY TUMBLE(rowtime,INTERVAL '30' SECOND), ... 以上是大致情况描述,我希望能在一个Job中一次性完成以上数据处理,而不分成两个Job,不知是否有好的解决方案? Thank!
