Table-api sql 预检查

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Table-api sql 预检查

Michael Ran
dear all :
            用table api 提交多个SQL 的时候,有什么API 能提前检查SQL 的错误吗? 每次都是提交执行的时候才报错。
            理论上里面在SQL解析部分就能发现,有现成的API吗?还是说需要自己去抓那部分解析代码,然后封装出API。
            如果没有,希望能提供这个功能,blink 应该是有的。




Thanks !
           
Reply | Threaded
Open this post in threaded view
|

Re: Table-api sql 预检查

Shengkai Fang
Hi.

可以看看 TableEnvironment#execute逻辑,如果能够将sql 转化成 `Transformation`,那么语法应该没有问题。

Best,
Shengkai

Michael Ran <[hidden email]> 于2021年4月29日周四 上午11:57写道:

> dear all :
>             用table api 提交多个SQL 的时候,有什么API 能提前检查SQL 的错误吗? 每次都是提交执行的时候才报错。
>             理论上里面在SQL解析部分就能发现,有现成的API吗?还是说需要自己去抓那部分解析代码,然后封装出API。
>             如果没有,希望能提供这个功能,blink 应该是有的。
>
>
>
>
> Thanks !
>
Reply | Threaded
Open this post in threaded view
|

Re:Re: Table-api sql 预检查

Michael Ran
从代码逻辑里面肯定能抓出来,就是觉得这个预检查的功能可以作为API 开放出来
在 2021-04-29 12:29:26,"Shengkai Fang" <[hidden email]> 写道:

>Hi.
>
>可以看看 TableEnvironment#execute逻辑,如果能够将sql 转化成 `Transformation`,那么语法应该没有问题。
>
>Best,
>Shengkai
>
>Michael Ran <[hidden email]> 于2021年4月29日周四 上午11:57写道:
>
>> dear all :
>>             用table api 提交多个SQL 的时候,有什么API 能提前检查SQL 的错误吗? 每次都是提交执行的时候才报错。
>>             理论上里面在SQL解析部分就能发现,有现成的API吗?还是说需要自己去抓那部分解析代码,然后封装出API。
>>             如果没有,希望能提供这个功能,blink 应该是有的。
>>
>>
>>
>>
>> Thanks !
>>
Reply | Threaded
Open this post in threaded view
|

Re: Table-api sql 预检查

silence-2
In reply to this post by Michael Ran
可以用explain



--
Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: Table-api sql 预检查

datayangl
In reply to this post by Shengkai Fang
flink的解析阶段主要是FlinkParserImpl(通过jj
和fftl文件编译产生),主要是语法解析,但是验证阶段,会涉及到catalog的一些验证(参考CatalogReader)。目前我记得没有开放的接口能在外部把解析和验证都做了。



--
Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: Table-api sql 预检查

HunterXHunter
In reply to this post by Michael Ran
tableEnv.explainSql("");



--
Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re:Re: Table-api sql 预检查

Michael Ran
org.apache.flink.table.api.TableException: Unsupported operation: org.apache.flink.table.operations.ddl.CreateTableOperation
At 2021-04-30 10:19:49, "HunterXHunter" <[hidden email]> wrote:
>tableEnv.explainSql("");
>
>
>
>--
>Sent from: http://apache-flink.147419.n8.nabble.com/