You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "godfrey he (Jira)" <ji...@apache.org> on 2021/01/22 13:28:00 UTC

[jira] [Updated] (FLINK-21091) Support ExecNode json serialization/deserialization

     [ https://issues.apache.org/jira/browse/FLINK-21091?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

godfrey he updated FLINK-21091:
-------------------------------
    Description: 
Since FLINK-20435 is finished, an ExecNode graph can be serialized to a json plan or a json plan can deserialized to an ExecNode graph. Only Blink planner introduce ExecNode, so legacy planner does not supports this feature.

We will introduce the following methods to support json plan operations:
{code:java}
// Get the json plan for the given statement.
String getJsonPlan(String stmt);

//  Returns the execution plan for the given json plan.
String explainJsonPlan(String jsonPlan, ExplainDetail... extraDetails);

//  Execute the given json plan, and return the execution result. 
TableResult executeJsonPlan(String jsonPlan);
{code}

Currently, these methods are *experimental* features, so we introduce them into TableEnvironmentInternal as first step.

This is an umbrella issue, we will create more related sub-tasks, including:
1. introduce the above methods
2. support json serialization/deserialization for all StreamExecNodes
3. introduce complete testing to verify ExecNode serialization/deserialization for different queries


  was:
Since FLINK-20435 is finished, an ExecNode graph can be serialized to a json plan or a json plan can deserialized to an ExecNode graph. Only Blink planner introduce ExecNode, so legacy planner does not supports this feature.

We will introduce the following methods to support json plan operation:
{code:java}
// Get the json plan for the given statement.
String getJsonPlan(String stmt);

//  Returns the execution plan for the given json plan.
String explainJsonPlan(String jsonPlan, ExplainDetail... extraDetails);

//  Execute the given json plan, and return the execution result. 
TableResult executeJsonPlan(String jsonPlan);
{code}

Currently, these methods are *experimental* features, so we introduce them into TableEnvironmentInternal as first step.

This is an umbrella issue, we will create more related sub-tasks, including:
1. introduce the above methods
2. support json serialization/deserialization for all StreamExecNodes
3. introduce complete testing to verify ExecNode serialization/deserialization for different queries



> Support ExecNode json serialization/deserialization
> ---------------------------------------------------
>
>                 Key: FLINK-21091
>                 URL: https://issues.apache.org/jira/browse/FLINK-21091
>             Project: Flink
>          Issue Type: New Feature
>          Components: Table SQL / Planner
>            Reporter: godfrey he
>            Priority: Major
>
> Since FLINK-20435 is finished, an ExecNode graph can be serialized to a json plan or a json plan can deserialized to an ExecNode graph. Only Blink planner introduce ExecNode, so legacy planner does not supports this feature.
> We will introduce the following methods to support json plan operations:
> {code:java}
> // Get the json plan for the given statement.
> String getJsonPlan(String stmt);
> //  Returns the execution plan for the given json plan.
> String explainJsonPlan(String jsonPlan, ExplainDetail... extraDetails);
> //  Execute the given json plan, and return the execution result. 
> TableResult executeJsonPlan(String jsonPlan);
> {code}
> Currently, these methods are *experimental* features, so we introduce them into TableEnvironmentInternal as first step.
> This is an umbrella issue, we will create more related sub-tasks, including:
> 1. introduce the above methods
> 2. support json serialization/deserialization for all StreamExecNodes
> 3. introduce complete testing to verify ExecNode serialization/deserialization for different queries



--
This message was sent by Atlassian Jira
(v8.3.4#803005)