Re: flink创建视图后,SELECT语句后使用OPTIONS报错
这个包:flink-table_2.11-1.13.0.jar (legacy planner 的包) Best, Godfrey liangjinghong 于2022年2月17日周四 09:59写道: > > 感谢老师的回复,然而我的部署环境下的lib中没有您说的这个包,请问是要移除哪个包呢? > > 我的lib下有的包: > flink-csv-1.13.0.jar > flink-dist_2.11-1.13.0.jar > flink-json-1.13.0.jar > flink-shaded-zookeeper-3.4.14.jar > flink-sql-connector-mysql-cdc-2.1.1.jar > flink-table_2.11-1.13.0.jar > flink-table-blink_2.11-1.13.0.jar > log4j-1.2-api-2.12.1.jar > log4j-api-2.12.1.jar > log4j-core-2.12.1.jar > log4j-slf4j-impl-2.12.1.jar > -邮件原件- > 发件人: godfrey he [mailto:godfre...@gmail.com] > 发送时间: 2022年2月16日 16:47 > 收件人: user-zh > 主题: Re: flink创建视图后,SELECT语句后使用OPTIONS报错 > > Hi liangjinghong, > > 原因是 blink planner 中引入并修改了 SqlTableRef 类, 而 Legacy planner 中没有引入 SqlTableRef > 类,从而导致加载到了Calcite 中 SqlTableRef (该类有问题)。 > 解决方案:如果只使用到了blink planner,可以把legacy planner 的包冲lib下移除。 > > Best, > Godfrey > > liangjinghong 于2022年2月14日周一 17:26写道: > > > 各位老师们好,以下代码在开发环境中可以执行,打包部署后报错: > > > > 代码: > > > > CREATE VIEW used_num_common > > > > (toolName,region,type,flavor,used_num) > > > > AS > > > > select info.toolName as toolName,r.regionName as > > region,f.type,f.flavor,count(1) as used_num from > > > > tbl_schedule_job/*+ OPTIONS('server-id'='1001-1031') */ job > > > > join > > > > tbl_schedule_task/*+ OPTIONS('server-id'='2001-2031') */ task > > > > on job.jobId = task.jobId > > > > join > > > > tbl_broker_node/*+ OPTIONS('server-id'='3001-3031') */ node > > > > on task.nodeId = node.id > > > > join > > > > tbl_app_info/*+ OPTIONS('server-id'='4001-4031') */ info > > > > on job.appId = info.appId > > > > join > > > > tbl_region r > > > > on node.region/*+ OPTIONS('server-id'='5001-5031') */ = r.region > > > > join > > > > tbl_flavor/*+ OPTIONS('server-id'='6001-6031') */ f > > > > on node.resourcesSpec = f.flavor > > > > where job.jobStatus in ('RUNNING','ERROR','INITING') > > > > and task.taskStatus in ('RUNNING','ERROR','INITING') > > > > and node.machineStatus <> 'DELETED' > > > > and toolName is not null > > > > group by info.toolName,r.regionName,f.type,f.flavor > > > > … > > > > 打包部署后报错如下: > > > > The main method caused an error: class org.apache.calcite.sql.SqlSyntax$6: > > SPECIAL > > > > 2022-02-08 13:33:39,350 WARN > > org.apache.flink.client.deployment.application.DetachedApplicationRunn > > er [] > > - Could not execute application: > > > > org.apache.flink.client.program.ProgramInvocationException: The main > > method caused an error: class org.apache.calcite.sql.SqlSyntax$6: > > SPECIAL > > > > at > > org.apache.flink.client.program.PackagedProgram.callMainMethod(Package > > dProgram.java:372) > > ~[flink-dist_2.11-1.13.0.jar:1.13.0] > > > > at > > org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeF > > orExecution(PackagedProgram.java:222) > > ~[flink-dist_2.11-1.13.0.jar:1.13.0] > > > > at > > org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:11 > > 4) > > ~[flink-dist_2.11-1.13.0.jar:1.13.0] > > > > at > > org.apache.flink.client.deployment.application.DetachedApplicationRunn > > er.tryExecuteJobs(DetachedApplicationRunner.java:84) > > ~[flink-dist_2.11-1.13.0.jar:1.13.0] > > > > at > > org.apache.flink.client.deployment.application.DetachedApplicationRunn > > er.run(DetachedApplicationRunner.java:70) > > ~[flink-dist_2.11-1.13.0.jar:1.13.0] > > > > at > > org.apache.flink.runtime.webmonitor.handlers.JarRunHandler.lambda$hand > > leRequest$0(JarRunHandler.java:102) > > ~[flink-dist_2.11-1.13.0.jar:1.13.0] > > > > at > > java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFutu > > re.java:1700) > > [?:?] > > > > at > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515 > > ) > > [?:?] > > > > at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] > > > > at > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.r > > un(ScheduledThreadPoolExecutor.java:304) > > [?:?] > > > > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j > > ava:1128) > > [?:?] > > > > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
Re: flink创建视图后,SELECT语句后使用OPTIONS报错
Hi liangjinghong, 原因是 blink planner 中引入并修改了 SqlTableRef 类, 而 Legacy planner 中没有引入 SqlTableRef 类,从而导致加载到了Calcite 中 SqlTableRef (该类有问题)。 解决方案:如果只使用到了blink planner,可以把legacy planner 的包冲lib下移除。 Best, Godfrey liangjinghong 于2022年2月14日周一 17:26写道: > 各位老师们好,以下代码在开发环境中可以执行,打包部署后报错: > > 代码: > > CREATE VIEW used_num_common > > (toolName,region,type,flavor,used_num) > > AS > > select info.toolName as toolName,r.regionName as > region,f.type,f.flavor,count(1) as used_num from > > tbl_schedule_job/*+ OPTIONS('server-id'='1001-1031') */ job > > join > > tbl_schedule_task/*+ OPTIONS('server-id'='2001-2031') */ task > > on job.jobId = task.jobId > > join > > tbl_broker_node/*+ OPTIONS('server-id'='3001-3031') */ node > > on task.nodeId = node.id > > join > > tbl_app_info/*+ OPTIONS('server-id'='4001-4031') */ info > > on job.appId = info.appId > > join > > tbl_region r > > on node.region/*+ OPTIONS('server-id'='5001-5031') */ = r.region > > join > > tbl_flavor/*+ OPTIONS('server-id'='6001-6031') */ f > > on node.resourcesSpec = f.flavor > > where job.jobStatus in ('RUNNING','ERROR','INITING') > > and task.taskStatus in ('RUNNING','ERROR','INITING') > > and node.machineStatus <> 'DELETED' > > and toolName is not null > > group by info.toolName,r.regionName,f.type,f.flavor > > … > > 打包部署后报错如下: > > The main method caused an error: class org.apache.calcite.sql.SqlSyntax$6: > SPECIAL > > 2022-02-08 13:33:39,350 WARN > org.apache.flink.client.deployment.application.DetachedApplicationRunner [] > - Could not execute application: > > org.apache.flink.client.program.ProgramInvocationException: The main > method caused an error: class org.apache.calcite.sql.SqlSyntax$6: SPECIAL > > at > org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:372) > ~[flink-dist_2.11-1.13.0.jar:1.13.0] > > at > org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:222) > ~[flink-dist_2.11-1.13.0.jar:1.13.0] > > at > org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:114) > ~[flink-dist_2.11-1.13.0.jar:1.13.0] > > at > org.apache.flink.client.deployment.application.DetachedApplicationRunner.tryExecuteJobs(DetachedApplicationRunner.java:84) > ~[flink-dist_2.11-1.13.0.jar:1.13.0] > > at > org.apache.flink.client.deployment.application.DetachedApplicationRunner.run(DetachedApplicationRunner.java:70) > ~[flink-dist_2.11-1.13.0.jar:1.13.0] > > at > org.apache.flink.runtime.webmonitor.handlers.JarRunHandler.lambda$handleRequest$0(JarRunHandler.java:102) > ~[flink-dist_2.11-1.13.0.jar:1.13.0] > > at > java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700) > [?:?] > > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) > [?:?] > > at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] > > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) > [?:?] > > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > [?:?] > > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > [?:?] > > at java.lang.Thread.run(Thread.java:829) [?:?] > > Caused by: java.lang.UnsupportedOperationException: class > org.apache.calcite.sql.SqlSyntax$6: SPECIAL > > at org.apache.calcite.util.Util.needToImplement(Util.java:1075) > ~[flink-table_2.11-1.13.0.jar:1.13.0] > > at org.apache.calcite.sql.SqlSyntax$6.unparse(SqlSyntax.java:116) > ~[flink-table_2.11-1.13.0.jar:1.13.0] > > at org.apache.calcite.sql.SqlOperator.unparse(SqlOperator.java:329) > ~[flink-table_2.11-1.13.0.jar:1.13.0] > > at org.apache.calcite.sql.SqlDialect.unparseCall(SqlDialect.java:453) > ~[flink-table_2.11-1.13.0.jar:1.13.0] > > at org.apache.calcite.sql.SqlCall.unparse(SqlCall.java:101) > ~[flink-table_2.11-1.13.0.jar:1.13.0] > > at > org.apache.calcite.sql.SqlJoin$SqlJoinOperator.unparse(SqlJoin.java:199) > ~[flink-table_2.11-1.13.0.jar:1.13.0] > > at org.apache.calcite.sql.SqlDialect.unparseCall(SqlDialect.java:453) > ~[flink-table_2.11-1.13.0.jar:1.13.0] > > at org.apache.calcite.sql.SqlCall.unparse(SqlCall.java:104) > ~[flink-table_2.11-1.13.0.jar:1.13.0] > > at > org.apache.calcite.sql.SqlJoin$SqlJoinOperator.unparse(SqlJoin.java:199) > ~[flink-table_2.11-1.13.0.jar:1.13.0] > > at org.apache.calcite.sql.SqlDialect.unparseCall(SqlDialect.java:453) > ~[flink-table_2.11-1.13.0.jar:1.13.0] > > at org.apache.calcite.sql.SqlCall.unparse(SqlCall.java:104) > ~[flink-table_2.11-1.13.0.jar:1.13.0] > > at > org.apache.calcite.sql.SqlJoin$SqlJoinOperator.unparse(SqlJoin.java:199) > ~[flink-table_2.11-1.13.0.jar:1.13.0] > > at org.apache.calcite.sql.SqlDialect.unparseCall(SqlDialect.java:453) > ~[flink-table_2.11-1.13.0.jar:1.13.0] > > at org.apache.calcite.sql.SqlCall.unparse(SqlCall.java:104) >