Apache flink Apache Flink在不重新启动的情况下动态更新sql

Apache flink Apache Flink在不重新启动的情况下动态更新sql,apache-flink,flink-streaming,flink-cep,flink-sql,flink-batch,Apache Flink,Flink Streaming,Flink Cep,Flink Sql,Flink Batch,我对弗林克的行为有疑问。下面是我的代码片段。正如您所看到的,一些服务提供了Flink将逐个执行的sql标准列表(比如大约10k个sql)。 我的问题是,每当sql更新时,我如何指示flink使用新的sql?我看到的一种方法是停止并启动flink服务,这是我想要避免的,因为其他sql标准需要一直运行,只有得到更新的标准需要动态停止/启动/或更新。另外,我不想将10k SQL作为10k个不同的作业提交。因此,我正在寻找的行为,是否可能与Flink版本1.11 env is StreamExecuti

我对弗林克的行为有疑问。下面是我的代码片段。正如您所看到的,一些服务提供了Flink将逐个执行的sql标准列表(比如大约10k个sql)。 我的问题是,每当sql更新时,我如何指示flink使用新的sql?我看到的一种方法是停止并启动flink服务,这是我想要避免的,因为其他sql标准需要一直运行,只有得到更新的标准需要动态停止/启动/或更新。另外,我不想将10k SQL作为10k个不同的作业提交。因此,我正在寻找的行为,是否可能与Flink版本1.11

env is StreamExecutionEnvironment... 

Psudo-code:

List<String> allConditionsSqls = get_SQL_FROM_some_Service();
for(String sql : allConditionsSqls)
{
    Table table = env.sqlQuery(sql);
    env.toRetractStream(table, Row.class)
     .process(new ProcessFunction <Tuple2<Boolean, Row>, Object>() {
         @Override
         public void processElement(Tuple2<Boolean, Row> value, Context ctx,Collector<Object> out) throws Exception {
             Row ev = value.f1;
             log.info(ev);
             // more code here
         }    
     });
}
env是StreamExecutionEnvironment。。。
Psudo代码:
List allConditionsSqls=get_SQL_FROM_some_Service();
for(字符串sql:allConditionsSqls)
{
Table=env.sqlQuery(sql);
环境toRetractStream(表,行,类)
.process(新的ProcessFunction(){
@凌驾
公共void processElement(Tuple2值、上下文ctx、收集器输出)引发异常{
第ev行=value.f1;
日志信息(ev);
//这里有更多代码
}    
});
}

不,唯一的方法是将每个查询作为单独的作业运行。(值得一提的是,有人每天动态地创造10000份Flink工作——这是可以做到的。)