无法在 Flink sql-client 中获取 SOURCE 文件

Cannot SOURCE file in Flink sql-client

我一直在尝试在 Flink sql-client 中 SOURCE 一个包含 SQL 语句的文件。来自文档:

SOURCE Reads a SQL SELECT query from a file and executes it on the Flink cluster.

这使用 Docker images 用于 Flink 版本 1.13.1,Scala 2.11。据我所知,关于这个 Flink 发行版的其他一切都工作正常。

容器内:

/opt/flink# echo "select 'hello';" > test.sql
/opt/flink# sql-client.sh

然后在 sql-客户端中:

Flink SQL> select 'hello';
-- works as intended
[INFO] Result retrieval cancelled.

Flink SQL> source test.sql;
[ERROR] Could not execute SQL statement. Reason:
org.apache.calcite.runtime.CalciteException: Non-query expression encountered in illegal context

我确定这是一个非常明显的错误。我错过了什么?

SOURCE 命令在以前的版本中不是 public API,它已在 1.13 中删除。作为替代方案,我们提供 sql-client.sh -f test.sql 来执行 SQL 文件,这是一种在其他系统中广泛使用的方式。查看更多:https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/dev/table/sqlclient/#execute-sql-files