我的实时作业项目想解析sql获取到TableIdentifier做sql血缘,使用的版本是flink 1.15.2,同时引入了 
flink-table-planner_2.12 和 flink-table-planner-loader 依赖,debug时发现

 TableEnvironmentImpl create(EnvironmentSettings settings) 方法会调用

 FactoryUtil.discoverFactory(classLoader, ExecutorFactory.class, 
ExecutorFactory.DEFAULT_IDENTIFIER)方法
去寻找带有default标识的ExecutorFactory,结果找到了两个,一个是DelegateExcutorFactory,另一个是DefaultExecutorFactory。
于是抛了异常 "Multiple factories for identifier 'default' that implement 
ExecutorFactory found in the classpath."

 进一步查看到这个DelegateExcutorFactory其实代理的是就是DefaultExecutorFactory




 请问:

 1. 这个DelegateExcutorFactory起什么作用?

 2. 这两个module依赖的有什么区别和联系?

 3. 项目中只能依赖这两个当中的其中一个jar吗?正确的应该依赖哪个module呢?

回复