咨询下,FlinkSQl的event time必须在DDL中定义吗。能否DDL只是定义普通数据字段,比如有个time属性。 然后在select 的时候指定具体使用的watermark策略。 目的:假设基于同一个表A,我查询1需要使用watermark为time-1min,查询2需要使用watermark为time-2min。
其次除了这种case,如果我基于表1查询得到结果输出到表2,那么表2的event time定义呢?比如在表2的定义中基于表2的某个属性(比如叫time2),然后插入表2的时候只要time2属性存在就可以?
此外,如果对比datastream api的watermark传播机制,如果我希望查询1结构输出到表2,然后继续基于表2查询。貌似就需要 select xxx from (select yyy from t); 这种嵌套写法,一句sql会变成一个任务。 那如何用sql做非常复杂的任务组合呢,比如我是2句不搭嘎的sql的,就希望在同一个job中呢。*来自志愿者整理的flink邮件归档
对于第一个问题- 在查询语句之中定义watermark: 现在并不支持。这主要是由于在同一个作业之中,如果select的数据源是同一个表,那么在实际的优化过程之中,会将source进行复用,而现在同一个source并不支持多个watermark assigner。如果在不同的作业之中,那么显然只要修改watermark的定义语句即可。 对于第二个问题:rowtime的定义是必须建立在创建表的过程之中的。 对于第三个问题:社区正在讨论这个问题。现在仅支持多个insert的sql在同一个job之中。 *来自志愿者整理的flink
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。