Github user ioana-delaney commented on a diff in the pull request:
https://github.com/apache/spark/pull/15363#discussion_r106282966
--- Diff:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/CostBasedJoinReorder.scala
---
@@ -51,6 +51,11 @@ case class CostBasedJoinReorder(conf: CatalystConf)
extends Rule[LogicalPlan] wi
def reorder(plan: LogicalPlan, output: AttributeSet): LogicalPlan = {
val (items, conditions) = extractInnerJoins(plan)
+ // Find the star schema joins. Currently, it returns the star join
with the largest
+ // fact table. In the future, it can return more than one star join
(e.g. F1-D1-D2
+ // and F2-D3-D4).
+ val starJoinPlans = StarSchemaDetection(conf).findStarJoins(items,
conditions.toSeq)
--- End diff --
@ron8hu There are papers in the field that discuss options for reducing
query compilation times. Some that I found, mainly from the IBM research, are:
âMeasuring the Complexity of Join Enumeration in Query Optimizationâ â
K.Ono, et al., âEstimating Compilation Time of Query Optimizerâ â I.
Ilyas et al.
Regarding Sparkâs cost-based optimizer evolution, I would very interested
to help and contribute in this area. Star schema enhancements would be a
starting point.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]