I think it is currently not possible to get the AST as JSON. There is a
similar feature request here:
https://issues.apache.org/jira/browse/FLINK-19687

Best,

Dawid

On 17/11/2020 20:59, Rex Fenley wrote:
> So I tried|userDocsTable.explain()| however it doesn't give me the AST
> as JSON so that I can use the visualizer tool
> https://ci.apache.org/projects/flink/flink-docs-stable/dev/execution_plans.html
> . Also, if I get rid of executeInsert or move it to after
> getExecutionPlan I still end up with "Caused by:
> java.lang.IllegalStateException: No operators defined in streaming
> topology. Cannot execute." Ordering doesn't seem to make a difference
> here.
>
> Anything else I can try to get the JSON?
>
> Thanks!
>
> On Tue, Nov 17, 2020 at 1:24 AM Dawid Wysakowicz
> <dwysakow...@apache.org <mailto:dwysakow...@apache.org>> wrote:
>
>     Hi Rex,
>
>     The executeInsert method as the name states executes the query.
>     Therefore after the method there is nothing in the topology and
>     thus you get the exception.
>
>     You can either explain the userDocsTable:
>
>     |userDocsTable.explain()|
>
>     or you can explain a statement set if you want to postpone the
>     execution:
>
>     |StatementSet set = tEnv.createStatementSet();|
>
>     |set.addInsert(SINK_ES_PEOPLE, userDocsTable);|
>
>     |set.explain()|
>
>     or you can explain SQL:
>
>     |String sqlQuery = ...||
>     |
>
>     |tEnv.explainSql(sqlQuery);|
>
>     Best,
>
>     Dawid
>
>     On 17/11/2020 09:16, Khachatryan Roman wrote:
>>     Hello,
>>
>>     Can you share the full program? 
>>     getExecutionPlan call is probably misplaced.
>>
>>     Regards,
>>     Roman
>>
>>
>>     On Tue, Nov 17, 2020 at 8:26 AM Rex Fenley <r...@remind101.com
>>     <mailto:r...@remind101.com>> wrote:
>>
>>         Hello,
>>
>>         I have the following code attempting to print the execution
>>         plan for my job locally. The job runs fine and Flink UI
>>         displays so I'd expect this to work.
>>
>>         valtableResult = userDocsTable.executeInsert(SINK_ES_PEOPLE)
>>         println(s"execution plan:\n${this.env.getExecutionPlan()}")
>>
>>         but instead I end up with
>>
>>         Caused by: java.lang.IllegalStateException: No operators
>>         defined in streaming topology. Cannot execute.
>>
>>         What am I doing wrong?
>>
>>         -- 
>>
>>         Rex Fenley | Software Engineer - Mobile and Backend
>>
>>
>>         Remind.com <https://www.remind.com/>|  BLOG
>>         <http://blog.remind.com/> |  FOLLOW US
>>         <https://twitter.com/remindhq> |  LIKE US
>>         <https://www.facebook.com/remindhq>
>>
>
>
> -- 
>
> Rex Fenley | Software Engineer - Mobile and Backend
>
>
> Remind.com <https://www.remind.com/>|  BLOG
> <http://blog.remind.com/> |  FOLLOW US
> <https://twitter.com/remindhq> |  LIKE US
> <https://www.facebook.com/remindhq>
>

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to