Interface Planner
-
@Internal public interface Planner
This interface serves two purposes:- SQL parser via
getParser()
- transforms a SQL string into a Table API specific objects e.g. tree ofOperation
s - relational planner - provides a way to plan, optimize and transform tree of
ModifyOperation
into a runnable form (Transformation
)
The Planner is execution agnostic. It is up to the
TableEnvironment
to ensure that if any of theQueryOperation
pull any runtime configuration, all those configurations are equivalent. Example: If some of theQueryOperation
s scan DataStreams, all those DataStreams must come from the same StreamExecutionEnvironment, because the result oftranslate(List)
will strip any execution configuration from the DataStream information.All Tables referenced in either
Parser.parse(String)
ortranslate(List)
should be previously registered in aCatalogManager
, which will be provided during instantiation of thePlanner
. - SQL parser via
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description InternalPlan
compilePlan(List<ModifyOperation> modifyOperations)
String
explain(List<Operation> operations, ExplainFormat format, ExplainDetail... extraDetails)
Returns the AST of the specified Table API and SQL queries and the execution plan to compute the result of the given collection ofQueryOperation
s.String
explainPlan(InternalPlan plan, ExplainDetail... extraDetails)
Parser
getParser()
Retrieves aParser
that provides methods for parsing a SQL string.InternalPlan
loadPlan(PlanReference planReference)
List<Transformation<?>>
translate(List<ModifyOperation> modifyOperations)
Converts a relational tree ofModifyOperation
s into a set of runnableTransformation
s.List<Transformation<?>>
translatePlan(InternalPlan plan)
-
-
-
Method Detail
-
getParser
Parser getParser()
Retrieves aParser
that provides methods for parsing a SQL string.- Returns:
- initialized
Parser
-
translate
List<Transformation<?>> translate(List<ModifyOperation> modifyOperations)
Converts a relational tree ofModifyOperation
s into a set of runnableTransformation
s.This method accepts a list of
ModifyOperation
s to allow reusing common subtrees of multiple relational queries. Each query's top node should be aModifyOperation
in order to pass the expected properties of the outputTransformation
such as output mode (append, retract, upsert) or the expected output type.- Parameters:
modifyOperations
- list of relational operations to plan, optimize and convert in a single run.- Returns:
- list of corresponding
Transformation
s.
-
explain
String explain(List<Operation> operations, ExplainFormat format, ExplainDetail... extraDetails)
Returns the AST of the specified Table API and SQL queries and the execution plan to compute the result of the given collection ofQueryOperation
s.- Parameters:
operations
- The collection of relational queries for which the AST and execution plan will be returned.format
- The output format of explained statement. See more details atExplainFormat
.extraDetails
- The extra explain details which the explain result should include, e.g. estimated cost, changelog mode for streaming, displaying execution plan in json format
-
loadPlan
@Experimental InternalPlan loadPlan(PlanReference planReference) throws IOException
- Throws:
IOException
-
compilePlan
@Experimental InternalPlan compilePlan(List<ModifyOperation> modifyOperations)
-
translatePlan
@Experimental List<Transformation<?>> translatePlan(InternalPlan plan)
-
explainPlan
@Experimental String explainPlan(InternalPlan plan, ExplainDetail... extraDetails)
-
-