[ https://issues.apache.org/jira/browse/FLINK-6066?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kurt Young closed FLINK-6066. ----------------------------- Resolution: Unresolved > Separate logical and physical RelNode layer in Flink > ---------------------------------------------------- > > Key: FLINK-6066 > URL: https://issues.apache.org/jira/browse/FLINK-6066 > Project: Flink > Issue Type: Improvement > Components: Table API & SQL > Reporter: Kurt Young > Assignee: Kurt Young > Priority: Major > > Currently flink-table contains two layer of RelNodes to work with Calcite. > One is actually from Calcite itself, such as TableScan, Project, Filter and > so on. Then depends on what environment we are using, the RelNode translate > to DataSetXXX or DataStreamXXX, like DataSetScan or DataStreamAggregate. All > the optimization rules happened in the phase in a cost base manner. > I suppose to further separate the second layer into two, one is more logical > just like Calcite, and the other one is more physical. In the logical layer, > we can do lots of optimization without real statistics involved, like > partition pruning, projection pushdown. And we may even use rule-based > optimization for logical optimize. In physical optimize phase, we then > introduce some real statistics and to choose what ever physical strategy we > want to use in a cost base manner, like join strategy selection or join > reorder. > Since the complexity for cost base optimization grows exponentially when the > plan is complex. By separating the optimization can make it more efficient > and easier to maintain. -- This message was sent by Atlassian JIRA (v7.6.3#76005)