diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java index 8495d73..abcd260 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java @@ -675,6 +675,7 @@ public int getTagForOperator(Operator op) { } public void cloneOriginalParentsList(List> opList) { + originalParents.clear(); originalParents.addAll(opList); } } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/GroupByOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/GroupByOperator.java index 9c5e7e2..b7b9212 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/GroupByOperator.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/GroupByOperator.java @@ -734,7 +734,7 @@ private void processKey(Object row, @Override public void process(Object row, int tag) throws HiveException { firstRow = false; - ObjectInspector rowInspector = inputObjInspectors[tag]; + ObjectInspector rowInspector = inputObjInspectors[0]; // Total number of input rows is needed for hash aggregation only if (hashAggr) { numRowsInput++; diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java index 21d0053..06ca4c1 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java @@ -21,8 +21,10 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.Stack; @@ -30,6 +32,7 @@ import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.conf.HiveConf.ConfVars; import org.apache.hadoop.hive.ql.exec.AppMasterEventOperator; +import org.apache.hadoop.hive.ql.exec.ColumnInfo; import org.apache.hadoop.hive.ql.exec.CommonJoinOperator; import org.apache.hadoop.hive.ql.exec.CommonMergeJoinOperator; import org.apache.hadoop.hive.ql.exec.DummyStoreOperator; @@ -43,12 +46,16 @@ import org.apache.hadoop.hive.ql.exec.OperatorFactory; import org.apache.hadoop.hive.ql.exec.OperatorUtils; import org.apache.hadoop.hive.ql.exec.ReduceSinkOperator; +import org.apache.hadoop.hive.ql.exec.RowSchema; import org.apache.hadoop.hive.ql.exec.SelectOperator; import org.apache.hadoop.hive.ql.exec.TableScanOperator; import org.apache.hadoop.hive.ql.exec.TezDummyStoreOperator; import org.apache.hadoop.hive.ql.lib.Node; import org.apache.hadoop.hive.ql.lib.NodeProcessor; import org.apache.hadoop.hive.ql.lib.NodeProcessorCtx; +import org.apache.hadoop.hive.ql.optimizer.correlation.CorrelationUtilities; +import org.apache.hadoop.hive.ql.optimizer.correlation.ReduceSinkDeDuplicationUtils; +import org.apache.hadoop.hive.ql.optimizer.metainfo.annotation.OpTraitsRulesProcFactory; import org.apache.hadoop.hive.ql.optimizer.physical.LlapClusterStateForCompile; import org.apache.hadoop.hive.ql.parse.GenTezUtils; import org.apache.hadoop.hive.ql.parse.OptimizeTezProcContext; @@ -64,6 +71,7 @@ import org.apache.hadoop.hive.ql.plan.MapJoinDesc; import org.apache.hadoop.hive.ql.plan.OpTraits; import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.apache.hadoop.hive.ql.plan.SelectDesc; import org.apache.hadoop.hive.ql.plan.Statistics; import org.apache.hadoop.hive.ql.stats.StatsUtils; import org.apache.hadoop.util.ReflectionUtils; @@ -272,25 +280,55 @@ private void convertJoinSMBJoin(JoinOperator joinOp, OptimizeTezProcContext cont int mapJoinConversionPos, int numBuckets, boolean adjustParentsChildren) throws SemanticException { MapJoinDesc mapJoinDesc = null; + int partialSMBJoin = -1; if (adjustParentsChildren) { mapJoinDesc = MapJoinProcessor.getMapJoinDesc(context.conf, joinOp, joinOp.getConf().isLeftInputJoin(), joinOp.getConf().getBaseSrc(), joinOp.getConf().getMapAliases(), mapJoinConversionPos, true); } else { - JoinDesc joinDesc = joinOp.getConf(); - // retain the original join desc in the map join. - mapJoinDesc = - new MapJoinDesc( - MapJoinProcessor.getKeys(joinOp.getConf().isLeftInputJoin(), - joinOp.getConf().getBaseSrc(), joinOp).getSecond(), - null, joinDesc.getExprs(), null, null, - joinDesc.getOutputColumnNames(), mapJoinConversionPos, joinDesc.getConds(), - joinDesc.getFilters(), joinDesc.getNoOuterJoin(), null, - joinDesc.getMemoryMonitorInfo(), joinDesc.getInMemoryDataSize()); - mapJoinDesc.setNullSafes(joinDesc.getNullSafes()); - mapJoinDesc.setFilterMap(joinDesc.getFilterMap()); - mapJoinDesc.setResidualFilterExprs(joinDesc.getResidualFilterExprs()); - mapJoinDesc.resetOrder(); + for (int i = 0; i < joinOp.getParentOperators().size(); i++) { + if (!(joinOp.getParentOperators().get(i) instanceof ReduceSinkOperator)) { + // We will not try partial SMB, all inputs should be RS + partialSMBJoin = -1; + break; + } + if (partialSMBJoin == -1) { + ReduceSinkOperator cRS = (ReduceSinkOperator) joinOp.getParentOperators().get(i); + if (cRS.getNumChild() != 1) { + // E.g. multiple children + break; + } + ReduceSinkOperator pRS = + CorrelationUtilities.findPossibleParent( + cRS, ReduceSinkOperator.class, + context.conf.getBoolVar(HiveConf.ConfVars.HIVESCRIPTOPERATORTRUST)); + if (pRS != null && ReduceSinkDeDuplicationUtils.merge(cRS, pRS, + context.conf.getIntVar(HiveConf.ConfVars.HIVEOPTREDUCEDEDUPLICATIONMINREDUCER))) { + // Deduplication is possible + mapJoinDesc = MapJoinProcessor.getMapJoinDesc(context.conf, + joinOp, joinOp.getConf().isLeftInputJoin(), joinOp.getConf().getBaseSrc(), + joinOp.getConf().getMapAliases(), mapJoinConversionPos, true); + partialSMBJoin = i; + } + } + } + + if (partialSMBJoin == -1) { + JoinDesc joinDesc = joinOp.getConf(); + // retain the original join desc in the map join. + mapJoinDesc = + new MapJoinDesc( + MapJoinProcessor.getKeys(joinOp.getConf().isLeftInputJoin(), + joinDesc.getBaseSrc(), joinOp).getSecond(), + null, joinDesc.getExprs(), null, null, + joinDesc.getOutputColumnNames(), mapJoinConversionPos, joinDesc.getConds(), + joinDesc.getFilters(), joinDesc.getNoOuterJoin(), null, + joinDesc.getMemoryMonitorInfo(), joinDesc.getInMemoryDataSize()); + mapJoinDesc.setNullSafes(joinDesc.getNullSafes()); + mapJoinDesc.setFilterMap(joinDesc.getFilterMap()); + mapJoinDesc.setResidualFilterExprs(joinDesc.getResidualFilterExprs()); + mapJoinDesc.resetOrder(); + } } CommonMergeJoinOperator mergeJoinOp = @@ -357,6 +395,79 @@ private void convertJoinSMBJoin(JoinOperator joinOp, OptimizeTezProcContext cont mergeJoinOp.getParentOperators().remove(parentIndex); mergeJoinOp.getParentOperators().add(parentIndex, dummyStoreOp); } + } else if (partialSMBJoin != -1) { + mergeJoinOp.getConf().setGenJoinKeys(true); + // Rewrite all the parents of the join. + // 1) Remove the cRS. + // 2) Rewrite rest of parents to introduce a DUMMYSTORE operator. + // For instance, consider iRS-MERGEJOIN, we will create a chain of operators: + // iRS-SEL-DUMMYSTORE-MERGEJOIN + // This will preserve the shuffle operation, while: + // * SEL is a backtrack Select operator which will create records with the same + // schema as the input to iRS. + // * DUMMYSTORE is a forward operator needed to aid the translation. + for (int i = 0; i < mergeJoinOp.getParentOperators().size(); i++) { + ReduceSinkOperator iRS = (ReduceSinkOperator) mergeJoinOp.getParentOperators().get(i); + Operator iRSParent = CorrelationUtilities.getSingleParent(iRS); + Operator cursor; + if (i == partialSMBJoin) { + // Remove iRS + CorrelationUtilities.removeOperator(iRS, mergeJoinOp, iRSParent, context.parseContext); + // Cursor is now RS parent + cursor = iRSParent; + } else { + Map descriptors = buildBacktrackFromReduceSink( + iRS, iRSParent); + SelectDesc selectDesc = new SelectDesc( + new ArrayList(descriptors.values()), + new ArrayList(descriptors.keySet())); + ArrayList cInfoLst = new ArrayList(); + for (ColumnInfo ci : iRSParent.getSchema().getSignature()) { + cInfoLst.add(new ColumnInfo(ci)); + } + SelectOperator selectOp = (SelectOperator) OperatorFactory.get( + iRS.getCompilationOpContext(), selectDesc); + selectOp.setConf(selectDesc); + selectOp.setSchema(new RowSchema(cInfoLst)); + selectOp.setColumnExprMap(descriptors); + // Link + selectOp.getParentOperators().add(iRS); + int index = iRS.getChildOperators().indexOf(mergeJoinOp); + iRS.getChildOperators().remove(index); + iRS.getChildOperators().add(index, selectOp); + iRS.getConf().setTag(0); // remove the tag + // Traits + OpTraitsRulesProcFactory.SelectRule.setSelectOpTraits(selectOp); + // Cursor is now SELECT + cursor = selectOp; + } + if (i != mapJoinConversionPos) { + // Insert DUMMYSTORE + DummyStoreOperator dummyStoreOp = new TezDummyStoreOperator( + mergeJoinOp.getCompilationOpContext()); + // Link + dummyStoreOp.setParentOperators(new ArrayList>()); + dummyStoreOp.getParentOperators().add(cursor); + int index = cursor.getChildOperators().indexOf(mergeJoinOp); + if (index == -1) { + cursor.setChildOperators(new ArrayList>()); + cursor.getChildOperators().add(dummyStoreOp); + } else { + cursor.getChildOperators().remove(index); + cursor.getChildOperators().add(index, dummyStoreOp); + } + // Cursor is now DUMMYSTORE + cursor = dummyStoreOp; + } + // Link last operator to MERGEJOIN + if (cursor.getChildOperators() == null || + !cursor.getChildOperators().contains(mergeJoinOp)) { + cursor.setChildOperators(new ArrayList>()); + cursor.getChildOperators().add(mergeJoinOp); + } + mergeJoinOp.getParentOperators().remove(i); + mergeJoinOp.getParentOperators().add(i, cursor); + } } mergeJoinOp.cloneOriginalParentsList(mergeJoinOp.getParentOperators()); } @@ -1124,4 +1235,30 @@ private static long estimateNDV(long numRows, List columnStats) { // to go a few % over. return Math.min(Math.round(v), numRows); } + + private static Map buildBacktrackFromReduceSink( + Operator op, Operator parentOp) throws SemanticException { + List inputRS = parentOp.getSchema().getSignature(); + Map columnDescriptors = new LinkedHashMap(); + for (int i = 0; i < inputRS.size(); i++) { + ColumnInfo info = new ColumnInfo(inputRS.get(i)); + String field = null; + for (Entry entry : op.getColumnExprMap().entrySet()) { + ExprNodeDesc exprNode = entry.getValue(); + if (exprNode instanceof ExprNodeColumnDesc && + ((ExprNodeColumnDesc) exprNode).getColumn().equals(info.getInternalName())) { + field = entry.getKey(); + break; + } + } + if (field == null) { + throw new SemanticException("Join algorithm selection: " + + "Could not find input expression in RS for join"); + } + ExprNodeColumnDesc desc = new ExprNodeColumnDesc(info.getType(), field, info.getTabAlias(), + info.getIsVirtualCol()); + columnDescriptors.put(info.getInternalName(), desc); + } + return columnDescriptors; + } } diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/CorrelationUtilities.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/CorrelationUtilities.java index 388399c..d1e30e3 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/CorrelationUtilities.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/CorrelationUtilities.java @@ -119,7 +119,7 @@ protected static boolean hasGroupingSet(ReduceSinkOperator cRS) throws SemanticE return null; } - protected static Operator getSingleParent(Operator operator) throws SemanticException { + public static Operator getSingleParent(Operator operator) throws SemanticException { return getSingleParent(operator, false); } @@ -215,7 +215,7 @@ protected static int indexOf(ExprNodeDesc cexpr, ExprNodeDesc[] pexprs, Operator return -1; } - protected static > T findPossibleParent(Operator start, Class target, + public static > T findPossibleParent(Operator start, Class target, boolean trustScript) throws SemanticException { T[] parents = findPossibleParents(start, target, trustScript); return parents != null && parents.length == 1 ? parents[0] : null; @@ -466,7 +466,7 @@ public static void removeOperator(Operator target, ParseContext context) { target.getChildOperators().get(0), target.getParentOperators().get(0), context); } - protected static void removeOperator(Operator target, Operator child, Operator parent, + public static void removeOperator(Operator target, Operator child, Operator parent, ParseContext context) { for (Operator aparent : target.getParentOperators()) { aparent.replaceChild(target, child); diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/ReduceSinkDeDuplication.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/ReduceSinkDeDuplication.java index 701bde4..154c607 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/ReduceSinkDeDuplication.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/ReduceSinkDeDuplication.java @@ -23,18 +23,14 @@ import java.util.ArrayList; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Stack; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.conf.HiveConf.ConfVars; -import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hadoop.hive.ql.exec.GroupByOperator; import org.apache.hadoop.hive.ql.exec.JoinOperator; import org.apache.hadoop.hive.ql.exec.Operator; -import org.apache.hadoop.hive.ql.exec.PTFOperator; import org.apache.hadoop.hive.ql.exec.ReduceSinkOperator; import org.apache.hadoop.hive.ql.exec.SelectOperator; import org.apache.hadoop.hive.ql.lib.DefaultGraphWalker; @@ -49,13 +45,6 @@ import org.apache.hadoop.hive.ql.optimizer.Transform; import org.apache.hadoop.hive.ql.parse.ParseContext; import org.apache.hadoop.hive.ql.parse.SemanticException; -import org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc; -import org.apache.hadoop.hive.ql.plan.ExprNodeDesc; -import org.apache.hadoop.hive.ql.plan.ExprNodeDescUtils; -import org.apache.hadoop.hive.ql.plan.OperatorDesc; -import org.apache.hadoop.hive.ql.plan.PlanUtils; -import org.apache.hadoop.hive.ql.plan.ReduceSinkDesc; -import org.apache.hadoop.hive.ql.plan.TableDesc; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -184,457 +173,6 @@ protected abstract Object process(ReduceSinkOperator cRS, ReduceSinkDeduplicateP protected abstract Object process(ReduceSinkOperator cRS, GroupByOperator cGBY, ReduceSinkDeduplicateProcCtx dedupCtx) throws SemanticException; - - // for JOIN-RS case, it's not possible generally to merge if child has - // less key/partition columns than parents - protected boolean merge(ReduceSinkOperator cRS, JoinOperator pJoin, int minReducer) - throws SemanticException { - List> parents = pJoin.getParentOperators(); - ReduceSinkOperator[] pRSs = parents.toArray(new ReduceSinkOperator[parents.size()]); - ReduceSinkDesc cRSc = cRS.getConf(); - for (ReduceSinkOperator pRSNs : pRSs) { - ReduceSinkDesc pRSNc = pRSNs.getConf(); - if (cRSc.getKeyCols().size() != pRSNc.getKeyCols().size()) { - return false; - } - if (cRSc.getPartitionCols().size() != pRSNc.getPartitionCols().size()) { - return false; - } - Integer moveReducerNumTo = checkNumReducer(cRSc.getNumReducers(), pRSNc.getNumReducers()); - if (moveReducerNumTo == null || - moveReducerNumTo > 0 && cRSc.getNumReducers() < minReducer) { - return false; - } - - Integer moveRSOrderTo = checkOrder(true, cRSc.getOrder(), pRSNc.getOrder(), - cRSc.getNullOrder(), pRSNc.getNullOrder()); - if (moveRSOrderTo == null) { - return false; - } - } - - boolean[] sorted = CorrelationUtilities.getSortedTags(pJoin); - - int cKeySize = cRSc.getKeyCols().size(); - for (int i = 0; i < cKeySize; i++) { - ExprNodeDesc cexpr = cRSc.getKeyCols().get(i); - ExprNodeDesc[] pexprs = new ExprNodeDesc[pRSs.length]; - for (int tag = 0; tag < pRSs.length; tag++) { - pexprs[tag] = pRSs[tag].getConf().getKeyCols().get(i); - } - int found = CorrelationUtilities.indexOf(cexpr, pexprs, cRS, pRSs, sorted); - if (found != i) { - return false; - } - } - int cPartSize = cRSc.getPartitionCols().size(); - for (int i = 0; i < cPartSize; i++) { - ExprNodeDesc cexpr = cRSc.getPartitionCols().get(i); - ExprNodeDesc[] pexprs = new ExprNodeDesc[pRSs.length]; - for (int tag = 0; tag < pRSs.length; tag++) { - pexprs[tag] = pRSs[tag].getConf().getPartitionCols().get(i); - } - int found = CorrelationUtilities.indexOf(cexpr, pexprs, cRS, pRSs, sorted); - if (found != i) { - return false; - } - } - - for (ReduceSinkOperator pRS : pRSs) { - pRS.getConf().setNumReducers(cRS.getConf().getNumReducers()); - } - - return true; - } - - /** - * Current RSDedup remove/replace child RS. For key columns, - * sorting order, and the number of reducers, copy - * more specific part of configurations of child RS to that of parent RS. - * For partitioning columns, if both child RS and parent RS have been assigned - * partitioning columns, we will choose the more general partitioning columns. - * If parent RS has not been assigned any partitioning column, we will use - * partitioning columns (if exist) of child RS. - */ - protected boolean merge(ReduceSinkOperator cRS, ReduceSinkOperator pRS, int minReducer) - throws SemanticException { - int[] result = extractMergeDirections(cRS, pRS, minReducer); - if (result == null) { - return false; - } - - if (result[0] > 0) { - // The sorting columns of the child RS are more specific than - // those of the parent RS. Assign sorting columns of the child RS - // to the parent RS. - List childKCs = cRS.getConf().getKeyCols(); - pRS.getConf().setKeyCols(ExprNodeDescUtils.backtrack(childKCs, cRS, pRS)); - } - - if (result[1] < 0) { - // The partitioning columns of the parent RS are more specific than - // those of the child RS. - List childPCs = cRS.getConf().getPartitionCols(); - if (childPCs != null && !childPCs.isEmpty()) { - // If partitioning columns of the child RS are assigned, - // assign these to the partitioning columns of the parent RS. - pRS.getConf().setPartitionCols(ExprNodeDescUtils.backtrack(childPCs, cRS, pRS)); - } - } else if (result[1] > 0) { - // The partitioning columns of the child RS are more specific than - // those of the parent RS. - List parentPCs = pRS.getConf().getPartitionCols(); - if (parentPCs == null || parentPCs.isEmpty()) { - // If partitioning columns of the parent RS are not assigned, - // assign partitioning columns of the child RS to the parent RS. - ArrayList childPCs = cRS.getConf().getPartitionCols(); - pRS.getConf().setPartitionCols(ExprNodeDescUtils.backtrack(childPCs, cRS, pRS)); - } - } - - if (result[2] > 0) { - // The sorting order of the child RS is more specific than - // that of the parent RS. Assign the sorting order of the child RS - // to the parent RS. - if (result[0] <= 0) { - // Sorting columns of the parent RS are more specific than those of the - // child RS but Sorting order of the child RS is more specific than - // that of the parent RS. - throw new SemanticException("Sorting columns and order don't match. " + - "Try set " + HiveConf.ConfVars.HIVEOPTREDUCEDEDUPLICATION + "=false;"); - } - pRS.getConf().setOrder(cRS.getConf().getOrder()); - pRS.getConf().setNullOrder(cRS.getConf().getNullOrder()); - } else { - // The sorting order of the parent RS is more specific or they are equal. - // We will copy the order from the child RS, and then fill in the order - // of the rest of columns with the one taken from parent RS. - StringBuilder order = new StringBuilder(cRS.getConf().getOrder()); - StringBuilder orderNull = new StringBuilder(cRS.getConf().getNullOrder()); - order.append(pRS.getConf().getOrder().substring(order.length())); - orderNull.append(pRS.getConf().getNullOrder().substring(orderNull.length())); - pRS.getConf().setOrder(order.toString()); - pRS.getConf().setNullOrder(orderNull.toString()); - } - - if (result[3] > 0) { - // The number of reducers of the child RS is more specific than - // that of the parent RS. Assign the number of reducers of the child RS - // to the parent RS. - pRS.getConf().setNumReducers(cRS.getConf().getNumReducers()); - } - - if (result[4] > 0) { - // This case happens only when pRS key is empty in which case we can use - // number of distribution keys and key serialization info from cRS - if (pRS.getConf().getKeyCols() != null && pRS.getConf().getKeyCols().size() == 0 - && cRS.getConf().getKeyCols() != null && cRS.getConf().getKeyCols().size() == 0) { - // As setNumDistributionKeys is a subset of keycols, the size should - // be 0 too. This condition maybe too strict. We may extend it in the - // future. - TableDesc keyTable = PlanUtils.getReduceKeyTableDesc(new ArrayList(), pRS - .getConf().getOrder(), pRS.getConf().getNullOrder()); - pRS.getConf().setKeySerializeInfo(keyTable); - } - } - return true; - } - - /** - * Returns merge directions between two RSs for criterias (ordering, number of reducers, - * reducer keys, partition keys). Returns null if any of categories is not mergeable. - * - * Values for each index can be -1, 0, 1 - * 1. 0 means two configuration in the category is the same - * 2. for -1, configuration of parent RS is more specific than child RS - * 3. for 1, configuration of child RS is more specific than parent RS - */ - private int[] extractMergeDirections(ReduceSinkOperator cRS, ReduceSinkOperator pRS, int minReducer) - throws SemanticException { - ReduceSinkDesc cConf = cRS.getConf(); - ReduceSinkDesc pConf = pRS.getConf(); - // If there is a PTF between cRS and pRS we cannot ignore the order direction - final boolean checkStrictEquality = isStrictEqualityNeeded(cRS, pRS); - Integer moveRSOrderTo = checkOrder(checkStrictEquality, cConf.getOrder(), pConf.getOrder(), - cConf.getNullOrder(), pConf.getNullOrder()); - if (moveRSOrderTo == null) { - return null; - } - // if cRS is being used for distinct - the two reduce sinks are incompatible - if (cConf.getDistinctColumnIndices().size() >= 2) { - return null; - } - Integer moveReducerNumTo = checkNumReducer(cConf.getNumReducers(), pConf.getNumReducers()); - if (moveReducerNumTo == null || - moveReducerNumTo > 0 && cConf.getNumReducers() < minReducer) { - return null; - } - List ckeys = cConf.getKeyCols(); - List pkeys = pConf.getKeyCols(); - Integer moveKeyColTo = checkExprs(ckeys, pkeys, cRS, pRS); - if (moveKeyColTo == null) { - return null; - } - List cpars = cConf.getPartitionCols(); - List ppars = pConf.getPartitionCols(); - Integer movePartitionColTo = checkExprs(cpars, ppars, cRS, pRS); - if (movePartitionColTo == null) { - return null; - } - Integer moveNumDistKeyTo = checkNumDistributionKey(cConf.getNumDistributionKeys(), - pConf.getNumDistributionKeys()); - return new int[] {moveKeyColTo, movePartitionColTo, moveRSOrderTo, - moveReducerNumTo, moveNumDistKeyTo}; - } - - private boolean isStrictEqualityNeeded(ReduceSinkOperator cRS, ReduceSinkOperator pRS) { - Operator parent = cRS.getParentOperators().get(0); - while (parent != pRS) { - assert parent.getNumParent() == 1; - if (parent instanceof PTFOperator) { - return true; - } - parent = parent.getParentOperators().get(0); - } - return false; - } - - private Integer checkNumDistributionKey(int cnd, int pnd) { - // number of distribution keys of cRS is chosen only when numDistKeys of pRS - // is 0 or less. In all other cases, distribution of the keys is based on - // the pRS which is more generic than cRS. - // Examples: - // case 1: if pRS sort key is (a, b) and cRS sort key is (a, b, c) and number of - // distribution keys are 2 and 3 resp. then after merge the sort keys will - // be (a, b, c) while the number of distribution keys will be 2. - // case 2: if pRS sort key is empty and number of distribution keys is 0 - // and if cRS sort key is (a, b) and number of distribution keys is 2 then - // after merge new sort key will be (a, b) and number of distribution keys - // will be 2. - if (pnd <= 0) { - return 1; - } - return 0; - } - - /** - * Overlapping part of keys should be the same between parent and child. - * And if child has more keys than parent, non-overlapping part of keys - * should be backtrackable to parent. - */ - private Integer checkExprs(List ckeys, List pkeys, - ReduceSinkOperator cRS, ReduceSinkOperator pRS) throws SemanticException { - // If ckeys or pkeys have constant node expressions avoid the merge. - for (ExprNodeDesc ck : ckeys) { - if (ck instanceof ExprNodeConstantDesc) { - return null; - } - } - for (ExprNodeDesc pk : pkeys) { - if (pk instanceof ExprNodeConstantDesc) { - return null; - } - } - - Integer moveKeyColTo = 0; - if (ckeys == null || ckeys.isEmpty()) { - if (pkeys != null && !pkeys.isEmpty()) { - moveKeyColTo = -1; - } - } else { - if (pkeys == null || pkeys.isEmpty()) { - for (ExprNodeDesc ckey : ckeys) { - if (ExprNodeDescUtils.backtrack(ckey, cRS, pRS) == null) { - // cKey is not present in parent - return null; - } - } - moveKeyColTo = 1; - } else { - moveKeyColTo = sameKeys(ckeys, pkeys, cRS, pRS); - } - } - return moveKeyColTo; - } - - // backtrack key exprs of child to parent and compare it with parent's - protected Integer sameKeys(List cexprs, List pexprs, - Operator child, Operator parent) throws SemanticException { - int common = Math.min(cexprs.size(), pexprs.size()); - int limit = Math.max(cexprs.size(), pexprs.size()); - int i = 0; - for (; i < common; i++) { - ExprNodeDesc pexpr = pexprs.get(i); - ExprNodeDesc cexpr = ExprNodeDescUtils.backtrack(cexprs.get(i), child, parent); - if (cexpr == null || !pexpr.isSame(cexpr)) { - return null; - } - } - for (; i < limit; i++) { - if (cexprs.size() > pexprs.size()) { - if (ExprNodeDescUtils.backtrack(cexprs.get(i), child, parent) == null) { - // cKey is not present in parent - return null; - } - } - } - return Integer.valueOf(cexprs.size()).compareTo(pexprs.size()); - } - - protected Integer checkOrder(boolean checkStrictEquality, String corder, String porder, - String cNullOrder, String pNullOrder) { - assert corder.length() == cNullOrder.length(); - assert porder.length() == pNullOrder.length(); - if (corder == null || corder.trim().equals("")) { - if (porder == null || porder.trim().equals("")) { - return 0; - } - return -1; - } - if (porder == null || porder.trim().equals("")) { - return 1; - } - corder = corder.trim(); - porder = porder.trim(); - if (checkStrictEquality) { - // order of overlapping keys should be exactly the same - cNullOrder = cNullOrder.trim(); - pNullOrder = pNullOrder.trim(); - int target = Math.min(corder.length(), porder.length()); - if (!corder.substring(0, target).equals(porder.substring(0, target)) || - !cNullOrder.substring(0, target).equals(pNullOrder.substring(0, target))) { - return null; - } - } - return Integer.valueOf(corder.length()).compareTo(porder.length()); - } - - /** - * If number of reducers for RS is -1, the RS can have any number of reducers. - * It's generally true except for order-by or forced bucketing cases. - * if both of num-reducers are not -1, those number should be the same. - */ - protected Integer checkNumReducer(int creduce, int preduce) { - if (creduce < 0) { - if (preduce < 0) { - return 0; - } - return -1; - } - if (preduce < 0) { - return 1; - } - if (creduce != preduce) { - return null; - } - return 0; - } - - protected boolean aggressiveDedup(ReduceSinkOperator cRS, ReduceSinkOperator pRS, - ReduceSinkDeduplicateProcCtx dedupCtx) throws SemanticException { - assert cRS.getNumParent() == 1; - - ReduceSinkDesc cConf = cRS.getConf(); - ReduceSinkDesc pConf = pRS.getConf(); - List cKeys = cConf.getKeyCols(); - List pKeys = pConf.getKeyCols(); - - // Check that in the path between cRS and pRS, there are only Select operators - // i.e. the sequence must be pRS-SEL*-cRS - Operator parent = cRS.getParentOperators().get(0); - while (parent != pRS) { - assert parent.getNumParent() == 1; - if (!(parent instanceof SelectOperator)) { - return false; - } - parent = parent.getParentOperators().get(0); - } - - // If child keys are null or empty, we bail out - if (cKeys == null || cKeys.isEmpty()) { - return false; - } - // If parent keys are null or empty, we bail out - if (pKeys == null || pKeys.isEmpty()) { - return false; - } - - // Backtrack key columns of cRS to pRS - // If we cannot backtrack any of the columns, bail out - List cKeysInParentRS = ExprNodeDescUtils.backtrack(cKeys, cRS, pRS); - for (int i = 0; i < cKeysInParentRS.size(); i++) { - ExprNodeDesc pexpr = cKeysInParentRS.get(i); - if (pexpr == null) { - // We cannot backtrack the expression, we bail out - return false; - } - } - cRS.getConf().setKeyCols(ExprNodeDescUtils.backtrack(cKeysInParentRS, cRS, pRS)); - - // Backtrack partition columns of cRS to pRS - // If we cannot backtrack any of the columns, bail out - List cPartitionInParentRS = ExprNodeDescUtils.backtrack( - cConf.getPartitionCols(), cRS, pRS); - for (int i = 0; i < cPartitionInParentRS.size(); i++) { - ExprNodeDesc pexpr = cPartitionInParentRS.get(i); - if (pexpr == null) { - // We cannot backtrack the expression, we bail out - return false; - } - } - cRS.getConf().setPartitionCols(ExprNodeDescUtils.backtrack(cPartitionInParentRS, cRS, pRS)); - - // Backtrack value columns of cRS to pRS - // If we cannot backtrack any of the columns, bail out - List cValueInParentRS = ExprNodeDescUtils.backtrack( - cConf.getValueCols(), cRS, pRS); - for (int i = 0; i < cValueInParentRS.size(); i++) { - ExprNodeDesc pexpr = cValueInParentRS.get(i); - if (pexpr == null) { - // We cannot backtrack the expression, we bail out - return false; - } - } - cRS.getConf().setValueCols(ExprNodeDescUtils.backtrack(cValueInParentRS, cRS, pRS)); - - // Backtrack bucket columns of cRS to pRS (if any) - // If we cannot backtrack any of the columns, bail out - if (cConf.getBucketCols() != null) { - List cBucketInParentRS = ExprNodeDescUtils.backtrack( - cConf.getBucketCols(), cRS, pRS); - for (int i = 0; i < cBucketInParentRS.size(); i++) { - ExprNodeDesc pexpr = cBucketInParentRS.get(i); - if (pexpr == null) { - // We cannot backtrack the expression, we bail out - return false; - } - } - cRS.getConf().setBucketCols(ExprNodeDescUtils.backtrack(cBucketInParentRS, cRS, pRS)); - } - - // Update column expression map - for (Entry e : cRS.getColumnExprMap().entrySet()) { - e.setValue(ExprNodeDescUtils.backtrack(e.getValue(), cRS, pRS)); - } - - // Replace pRS with cRS and remove operator sequence from pRS to cRS - // Recall that the sequence must be pRS-SEL*-cRS - parent = cRS.getParentOperators().get(0); - while (parent != pRS) { - dedupCtx.addRemovedOperator(parent); - parent = parent.getParentOperators().get(0); - } - dedupCtx.addRemovedOperator(pRS); - cRS.getParentOperators().clear(); - for (Operator op : pRS.getParentOperators()) { - op.replaceChild(pRS, cRS); - cRS.getParentOperators().add(op); - } - pRS.getParentOperators().clear(); - pRS.getChildOperators().clear(); - - return true; - } } static class GroupbyReducerProc extends AbsctractReducerReducerProc { @@ -652,7 +190,7 @@ public Object process(ReduceSinkOperator cRS, ReduceSinkDeduplicateProcCtx dedup ReduceSinkOperator pRS = CorrelationUtilities.findPossibleParent( pGBY, ReduceSinkOperator.class, dedupCtx.trustScript()); - if (pRS != null && merge(cRS, pRS, dedupCtx.minReducer())) { + if (pRS != null && ReduceSinkDeDuplicationUtils.merge(cRS, pRS, dedupCtx.minReducer())) { CorrelationUtilities.replaceReduceSinkWithSelectOperator( cRS, dedupCtx.getPctx(), dedupCtx); pRS.getConf().setDeduplicated(true); @@ -675,7 +213,7 @@ public Object process(ReduceSinkOperator cRS, GroupByOperator cGBY, } ReduceSinkOperator pRS = CorrelationUtilities.getSingleParent(pGBY, ReduceSinkOperator.class); - if (pRS != null && merge(cRS, pRS, dedupCtx.minReducer())) { + if (pRS != null && ReduceSinkDeDuplicationUtils.merge(cRS, pRS, dedupCtx.minReducer())) { CorrelationUtilities.removeReduceSinkForGroupBy( cRS, cGBY, dedupCtx.getPctx(), dedupCtx); pRS.getConf().setDeduplicated(true); @@ -693,7 +231,7 @@ public Object process(ReduceSinkOperator cRS, ReduceSinkDeduplicateProcCtx dedup throws SemanticException { JoinOperator pJoin = CorrelationUtilities.findPossibleParent(cRS, JoinOperator.class, dedupCtx.trustScript()); - if (pJoin != null && merge(cRS, pJoin, dedupCtx.minReducer())) { + if (pJoin != null && ReduceSinkDeDuplicationUtils.merge(cRS, pJoin, dedupCtx.minReducer())) { pJoin.getConf().setFixedAsSorted(true); CorrelationUtilities.replaceReduceSinkWithSelectOperator( cRS, dedupCtx.getPctx(), dedupCtx); @@ -717,7 +255,7 @@ public Object process(ReduceSinkOperator cRS, GroupByOperator cGBY, JoinOperator pJoin = CorrelationUtilities.findPossibleParent( start, JoinOperator.class, dedupCtx.trustScript()); - if (pJoin != null && merge(cRS, pJoin, dedupCtx.minReducer())) { + if (pJoin != null && ReduceSinkDeDuplicationUtils.merge(cRS, pJoin, dedupCtx.minReducer())) { pJoin.getConf().setFixedAsSorted(true); CorrelationUtilities.removeReduceSinkForGroupBy( cRS, cGBY, dedupCtx.getPctx(), dedupCtx); @@ -744,11 +282,11 @@ public Object process(ReduceSinkOperator cRS, ReduceSinkDeduplicateProcCtx dedup cRS, ReduceSinkOperator.class, dedupCtx.trustScript()); if (pRS != null) { // Try extended deduplication - if (aggressiveDedup(cRS, pRS, dedupCtx)) { + if (ReduceSinkDeDuplicationUtils.aggressiveDedup(cRS, pRS, dedupCtx)) { return true; } // Normal deduplication - if (merge(cRS, pRS, dedupCtx.minReducer())) { + if (ReduceSinkDeDuplicationUtils.merge(cRS, pRS, dedupCtx.minReducer())) { CorrelationUtilities.replaceReduceSinkWithSelectOperator( cRS, dedupCtx.getPctx(), dedupCtx); pRS.getConf().setDeduplicated(true); @@ -767,7 +305,7 @@ public Object process(ReduceSinkOperator cRS, GroupByOperator cGBY, ReduceSinkOperator pRS = CorrelationUtilities.findPossibleParent( start, ReduceSinkOperator.class, dedupCtx.trustScript()); - if (pRS != null && merge(cRS, pRS, dedupCtx.minReducer())) { + if (pRS != null && ReduceSinkDeDuplicationUtils.merge(cRS, pRS, dedupCtx.minReducer())) { if (dedupCtx.getPctx().getConf().getBoolVar(HiveConf.ConfVars.HIVEGROUPBYSKEW)) { return false; } diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/ReduceSinkDeDuplicationUtils.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/ReduceSinkDeDuplicationUtils.java new file mode 100644 index 0000000..3b56cae --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/ReduceSinkDeDuplicationUtils.java @@ -0,0 +1,499 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.hive.ql.optimizer.correlation; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import org.apache.hadoop.hive.conf.HiveConf; +import org.apache.hadoop.hive.metastore.api.FieldSchema; +import org.apache.hadoop.hive.ql.exec.ColumnInfo; +import org.apache.hadoop.hive.ql.exec.JoinOperator; +import org.apache.hadoop.hive.ql.exec.Operator; +import org.apache.hadoop.hive.ql.exec.PTFOperator; +import org.apache.hadoop.hive.ql.exec.ReduceSinkOperator; +import org.apache.hadoop.hive.ql.exec.SelectOperator; +import org.apache.hadoop.hive.ql.exec.Utilities; +import org.apache.hadoop.hive.ql.optimizer.correlation.ReduceSinkDeDuplication.ReduceSinkDeduplicateProcCtx; +import org.apache.hadoop.hive.ql.parse.SemanticException; +import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc; +import org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc; +import org.apache.hadoop.hive.ql.plan.ExprNodeDesc; +import org.apache.hadoop.hive.ql.plan.ExprNodeDescUtils; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.apache.hadoop.hive.ql.plan.PlanUtils; +import org.apache.hadoop.hive.ql.plan.ReduceSinkDesc; +import org.apache.hadoop.hive.ql.plan.TableDesc; + +public class ReduceSinkDeDuplicationUtils { + + // for JOIN-RS case, it's not possible generally to merge if child has + // less key/partition columns than parents + public static boolean merge(ReduceSinkOperator cRS, JoinOperator pJoin, int minReducer) + throws SemanticException { + List> parents = pJoin.getParentOperators(); + ReduceSinkOperator[] pRSs = parents.toArray(new ReduceSinkOperator[parents.size()]); + ReduceSinkDesc cRSc = cRS.getConf(); + for (ReduceSinkOperator pRSNs : pRSs) { + ReduceSinkDesc pRSNc = pRSNs.getConf(); + if (cRSc.getKeyCols().size() != pRSNc.getKeyCols().size()) { + return false; + } + if (cRSc.getPartitionCols().size() != pRSNc.getPartitionCols().size()) { + return false; + } + Integer moveReducerNumTo = checkNumReducer(cRSc.getNumReducers(), pRSNc.getNumReducers()); + if (moveReducerNumTo == null || + moveReducerNumTo > 0 && cRSc.getNumReducers() < minReducer) { + return false; + } + + Integer moveRSOrderTo = checkOrder(true, cRSc.getOrder(), pRSNc.getOrder(), + cRSc.getNullOrder(), pRSNc.getNullOrder()); + if (moveRSOrderTo == null) { + return false; + } + } + + boolean[] sorted = CorrelationUtilities.getSortedTags(pJoin); + + int cKeySize = cRSc.getKeyCols().size(); + for (int i = 0; i < cKeySize; i++) { + ExprNodeDesc cexpr = cRSc.getKeyCols().get(i); + ExprNodeDesc[] pexprs = new ExprNodeDesc[pRSs.length]; + for (int tag = 0; tag < pRSs.length; tag++) { + pexprs[tag] = pRSs[tag].getConf().getKeyCols().get(i); + } + int found = CorrelationUtilities.indexOf(cexpr, pexprs, cRS, pRSs, sorted); + if (found != i) { + return false; + } + } + int cPartSize = cRSc.getPartitionCols().size(); + for (int i = 0; i < cPartSize; i++) { + ExprNodeDesc cexpr = cRSc.getPartitionCols().get(i); + ExprNodeDesc[] pexprs = new ExprNodeDesc[pRSs.length]; + for (int tag = 0; tag < pRSs.length; tag++) { + pexprs[tag] = pRSs[tag].getConf().getPartitionCols().get(i); + } + int found = CorrelationUtilities.indexOf(cexpr, pexprs, cRS, pRSs, sorted); + if (found != i) { + return false; + } + } + + for (ReduceSinkOperator pRS : pRSs) { + pRS.getConf().setNumReducers(cRS.getConf().getNumReducers()); + } + + return true; + } + + /** + * Current RSDedup remove/replace child RS. For key columns, + * sorting order, and the number of reducers, copy + * more specific part of configurations of child RS to that of parent RS. + * For partitioning columns, if both child RS and parent RS have been assigned + * partitioning columns, we will choose the more general partitioning columns. + * If parent RS has not been assigned any partitioning column, we will use + * partitioning columns (if exist) of child RS. + */ + public static boolean merge(ReduceSinkOperator cRS, ReduceSinkOperator pRS, int minReducer) + throws SemanticException { + int[] result = extractMergeDirections(cRS, pRS, minReducer); + if (result == null) { + return false; + } + + if (result[0] > 0) { + // The sorting columns of the child RS are more specific than + // those of the parent RS. Assign sorting columns of the child RS + // to the parent RS. + List childKCs = cRS.getConf().getKeyCols(); + pRS.getConf().setKeyCols(ExprNodeDescUtils.backtrack(childKCs, cRS, pRS)); + } + + if (result[1] < 0) { + // The partitioning columns of the parent RS are more specific than + // those of the child RS. + List childPCs = cRS.getConf().getPartitionCols(); + if (childPCs != null && !childPCs.isEmpty()) { + // If partitioning columns of the child RS are assigned, + // assign these to the partitioning columns of the parent RS. + pRS.getConf().setPartitionCols(ExprNodeDescUtils.backtrack(childPCs, cRS, pRS)); + } + } else if (result[1] > 0) { + // The partitioning columns of the child RS are more specific than + // those of the parent RS. + List parentPCs = pRS.getConf().getPartitionCols(); + if (parentPCs == null || parentPCs.isEmpty()) { + // If partitioning columns of the parent RS are not assigned, + // assign partitioning columns of the child RS to the parent RS. + ArrayList childPCs = cRS.getConf().getPartitionCols(); + pRS.getConf().setPartitionCols(ExprNodeDescUtils.backtrack(childPCs, cRS, pRS)); + } + } + + if (result[2] > 0) { + // The sorting order of the child RS is more specific than + // that of the parent RS. Assign the sorting order of the child RS + // to the parent RS. + if (result[0] <= 0) { + // Sorting columns of the parent RS are more specific than those of the + // child RS but Sorting order of the child RS is more specific than + // that of the parent RS. + throw new SemanticException("Sorting columns and order don't match. " + + "Try set " + HiveConf.ConfVars.HIVEOPTREDUCEDEDUPLICATION + "=false;"); + } + pRS.getConf().setOrder(cRS.getConf().getOrder()); + pRS.getConf().setNullOrder(cRS.getConf().getNullOrder()); + } else { + // The sorting order of the parent RS is more specific or they are equal. + // We will copy the order from the child RS, and then fill in the order + // of the rest of columns with the one taken from parent RS. + StringBuilder order = new StringBuilder(cRS.getConf().getOrder()); + StringBuilder orderNull = new StringBuilder(cRS.getConf().getNullOrder()); + order.append(pRS.getConf().getOrder().substring(order.length())); + orderNull.append(pRS.getConf().getNullOrder().substring(orderNull.length())); + pRS.getConf().setOrder(order.toString()); + pRS.getConf().setNullOrder(orderNull.toString()); + } + + if (result[3] > 0) { + // The number of reducers of the child RS is more specific than + // that of the parent RS. Assign the number of reducers of the child RS + // to the parent RS. + pRS.getConf().setNumReducers(cRS.getConf().getNumReducers()); + } + + if (result[4] > 0) { + // This case happens only when pRS key is empty in which case we can use + // number of distribution keys and key serialization info from cRS + if (pRS.getConf().getKeyCols() != null && pRS.getConf().getKeyCols().size() == 0 + && cRS.getConf().getKeyCols() != null && cRS.getConf().getKeyCols().size() == 0) { + // As setNumDistributionKeys is a subset of keycols, the size should + // be 0 too. This condition maybe too strict. We may extend it in the + // future. + TableDesc keyTable = PlanUtils.getReduceKeyTableDesc(new ArrayList(), pRS + .getConf().getOrder(), pRS.getConf().getNullOrder()); + pRS.getConf().setKeySerializeInfo(keyTable); + } + } + return true; + } + + /** + * Returns merge directions between two RSs for criterias (ordering, number of reducers, + * reducer keys, partition keys). Returns null if any of categories is not mergeable. + * + * Values for each index can be -1, 0, 1 + * 1. 0 means two configuration in the category is the same + * 2. for -1, configuration of parent RS is more specific than child RS + * 3. for 1, configuration of child RS is more specific than parent RS + */ + private static int[] extractMergeDirections(ReduceSinkOperator cRS, ReduceSinkOperator pRS, int minReducer) + throws SemanticException { + ReduceSinkDesc cConf = cRS.getConf(); + ReduceSinkDesc pConf = pRS.getConf(); + // If there is a PTF between cRS and pRS we cannot ignore the order direction + final boolean checkStrictEquality = isStrictEqualityNeeded(cRS, pRS); + Integer moveRSOrderTo = checkOrder(checkStrictEquality, cConf.getOrder(), pConf.getOrder(), + cConf.getNullOrder(), pConf.getNullOrder()); + if (moveRSOrderTo == null) { + return null; + } + // if cRS is being used for distinct - the two reduce sinks are incompatible + if (cConf.getDistinctColumnIndices().size() >= 2) { + return null; + } + Integer moveReducerNumTo = checkNumReducer(cConf.getNumReducers(), pConf.getNumReducers()); + if (moveReducerNumTo == null || + moveReducerNumTo > 0 && cConf.getNumReducers() < minReducer) { + return null; + } + List ckeys = cConf.getKeyCols(); + List pkeys = pConf.getKeyCols(); + Integer moveKeyColTo = checkExprs(ckeys, pkeys, cRS, pRS); + if (moveKeyColTo == null) { + return null; + } + List cpars = cConf.getPartitionCols(); + List ppars = pConf.getPartitionCols(); + Integer movePartitionColTo = checkExprs(cpars, ppars, cRS, pRS); + if (movePartitionColTo == null) { + return null; + } + Integer moveNumDistKeyTo = checkNumDistributionKey(cConf.getNumDistributionKeys(), + pConf.getNumDistributionKeys()); + return new int[] {moveKeyColTo, movePartitionColTo, moveRSOrderTo, + moveReducerNumTo, moveNumDistKeyTo}; + } + + private static boolean isStrictEqualityNeeded(ReduceSinkOperator cRS, ReduceSinkOperator pRS) { + Operator parent = cRS.getParentOperators().get(0); + while (parent != pRS) { + assert parent.getNumParent() == 1; + if (parent instanceof PTFOperator) { + return true; + } + parent = parent.getParentOperators().get(0); + } + return false; + } + + private static Integer checkNumDistributionKey(int cnd, int pnd) { + // number of distribution keys of cRS is chosen only when numDistKeys of pRS + // is 0 or less. In all other cases, distribution of the keys is based on + // the pRS which is more generic than cRS. + // Examples: + // case 1: if pRS sort key is (a, b) and cRS sort key is (a, b, c) and number of + // distribution keys are 2 and 3 resp. then after merge the sort keys will + // be (a, b, c) while the number of distribution keys will be 2. + // case 2: if pRS sort key is empty and number of distribution keys is 0 + // and if cRS sort key is (a, b) and number of distribution keys is 2 then + // after merge new sort key will be (a, b) and number of distribution keys + // will be 2. + if (pnd <= 0) { + return 1; + } + return 0; + } + + /** + * Overlapping part of keys should be the same between parent and child. + * And if child has more keys than parent, non-overlapping part of keys + * should be backtrackable to parent. + */ + private static Integer checkExprs(List ckeys, List pkeys, + ReduceSinkOperator cRS, ReduceSinkOperator pRS) throws SemanticException { + // If ckeys or pkeys have constant node expressions avoid the merge. + for (ExprNodeDesc ck : ckeys) { + if (ck instanceof ExprNodeConstantDesc) { + return null; + } + } + for (ExprNodeDesc pk : pkeys) { + if (pk instanceof ExprNodeConstantDesc) { + return null; + } + } + + Integer moveKeyColTo = 0; + if (ckeys == null || ckeys.isEmpty()) { + if (pkeys != null && !pkeys.isEmpty()) { + moveKeyColTo = -1; + } + } else { + if (pkeys == null || pkeys.isEmpty()) { + for (ExprNodeDesc ckey : ckeys) { + if (ExprNodeDescUtils.backtrack(ckey, cRS, pRS) == null) { + // cKey is not present in parent + return null; + } + } + moveKeyColTo = 1; + } else { + moveKeyColTo = sameKeys(ckeys, pkeys, cRS, pRS); + } + } + return moveKeyColTo; + } + + // backtrack key exprs of child to parent and compare it with parent's + protected static Integer sameKeys(List cexprs, List pexprs, + Operator child, Operator parent) throws SemanticException { + int common = Math.min(cexprs.size(), pexprs.size()); + int limit = Math.max(cexprs.size(), pexprs.size()); + int i = 0; + for (; i < common; i++) { + ExprNodeDesc pexpr = pexprs.get(i); + ExprNodeDesc cexpr = ExprNodeDescUtils.backtrack(cexprs.get(i), child, parent); + if (cexpr == null || !pexpr.isSame(cexpr)) { + return null; + } + } + for (; i < limit; i++) { + if (cexprs.size() > pexprs.size()) { + if (ExprNodeDescUtils.backtrack(cexprs.get(i), child, parent) == null) { + // cKey is not present in parent + return null; + } + } + } + return Integer.valueOf(cexprs.size()).compareTo(pexprs.size()); + } + + protected static Integer checkOrder(boolean checkStrictEquality, String corder, String porder, + String cNullOrder, String pNullOrder) { + assert corder.length() == cNullOrder.length(); + assert porder.length() == pNullOrder.length(); + if (corder == null || corder.trim().equals("")) { + if (porder == null || porder.trim().equals("")) { + return 0; + } + return -1; + } + if (porder == null || porder.trim().equals("")) { + return 1; + } + corder = corder.trim(); + porder = porder.trim(); + if (checkStrictEquality) { + // order of overlapping keys should be exactly the same + cNullOrder = cNullOrder.trim(); + pNullOrder = pNullOrder.trim(); + int target = Math.min(corder.length(), porder.length()); + if (!corder.substring(0, target).equals(porder.substring(0, target)) || + !cNullOrder.substring(0, target).equals(pNullOrder.substring(0, target))) { + return null; + } + } + return Integer.valueOf(corder.length()).compareTo(porder.length()); + } + + /** + * If number of reducers for RS is -1, the RS can have any number of reducers. + * It's generally true except for order-by or forced bucketing cases. + * if both of num-reducers are not -1, those number should be the same. + */ + protected static Integer checkNumReducer(int creduce, int preduce) { + if (creduce < 0) { + if (preduce < 0) { + return 0; + } + return -1; + } + if (preduce < 0) { + return 1; + } + if (creduce != preduce) { + return null; + } + return 0; + } + + protected static boolean aggressiveDedup(ReduceSinkOperator cRS, ReduceSinkOperator pRS, + ReduceSinkDeduplicateProcCtx dedupCtx) throws SemanticException { + assert cRS.getNumParent() == 1; + + ReduceSinkDesc cConf = cRS.getConf(); + ReduceSinkDesc pConf = pRS.getConf(); + List cKeys = cConf.getKeyCols(); + List pKeys = pConf.getKeyCols(); + + // Check that in the path between cRS and pRS, there are only Select operators + // i.e. the sequence must be pRS-SEL*-cRS + Operator parent = cRS.getParentOperators().get(0); + while (parent != pRS) { + assert parent.getNumParent() == 1; + if (!(parent instanceof SelectOperator)) { + return false; + } + parent = parent.getParentOperators().get(0); + } + + // If child keys are null or empty, we bail out + if (cKeys == null || cKeys.isEmpty()) { + return false; + } + // If parent keys are null or empty, we bail out + if (pKeys == null || pKeys.isEmpty()) { + return false; + } + + // Backtrack key columns of cRS to pRS + // If we cannot backtrack any of the columns, bail out + List cKeysInParentRS = ExprNodeDescUtils.backtrack(cKeys, cRS, pRS); + for (int i = 0; i < cKeysInParentRS.size(); i++) { + ExprNodeDesc pexpr = cKeysInParentRS.get(i); + if (pexpr == null) { + // We cannot backtrack the expression, we bail out + return false; + } + } + cRS.getConf().setKeyCols(ExprNodeDescUtils.backtrack(cKeysInParentRS, cRS, pRS)); + + // Backtrack partition columns of cRS to pRS + // If we cannot backtrack any of the columns, bail out + List cPartitionInParentRS = ExprNodeDescUtils.backtrack( + cConf.getPartitionCols(), cRS, pRS); + for (int i = 0; i < cPartitionInParentRS.size(); i++) { + ExprNodeDesc pexpr = cPartitionInParentRS.get(i); + if (pexpr == null) { + // We cannot backtrack the expression, we bail out + return false; + } + } + cRS.getConf().setPartitionCols(ExprNodeDescUtils.backtrack(cPartitionInParentRS, cRS, pRS)); + + // Backtrack value columns of cRS to pRS + // If we cannot backtrack any of the columns, bail out + List cValueInParentRS = ExprNodeDescUtils.backtrack( + cConf.getValueCols(), cRS, pRS); + for (int i = 0; i < cValueInParentRS.size(); i++) { + ExprNodeDesc pexpr = cValueInParentRS.get(i); + if (pexpr == null) { + // We cannot backtrack the expression, we bail out + return false; + } + } + cRS.getConf().setValueCols(ExprNodeDescUtils.backtrack(cValueInParentRS, cRS, pRS)); + + // Backtrack bucket columns of cRS to pRS (if any) + // If we cannot backtrack any of the columns, bail out + if (cConf.getBucketCols() != null) { + List cBucketInParentRS = ExprNodeDescUtils.backtrack( + cConf.getBucketCols(), cRS, pRS); + for (int i = 0; i < cBucketInParentRS.size(); i++) { + ExprNodeDesc pexpr = cBucketInParentRS.get(i); + if (pexpr == null) { + // We cannot backtrack the expression, we bail out + return false; + } + } + cRS.getConf().setBucketCols(ExprNodeDescUtils.backtrack(cBucketInParentRS, cRS, pRS)); + } + + // Update column expression map + for (Entry e : cRS.getColumnExprMap().entrySet()) { + e.setValue(ExprNodeDescUtils.backtrack(e.getValue(), cRS, pRS)); + } + + // Replace pRS with cRS and remove operator sequence from pRS to cRS + // Recall that the sequence must be pRS-SEL*-cRS + parent = cRS.getParentOperators().get(0); + while (parent != pRS) { + dedupCtx.addRemovedOperator(parent); + parent = parent.getParentOperators().get(0); + } + dedupCtx.addRemovedOperator(pRS); + cRS.getParentOperators().clear(); + for (Operator op : pRS.getParentOperators()) { + op.replaceChild(pRS, cRS); + cRS.getParentOperators().add(op); + } + pRS.getParentOperators().clear(); + pRS.getChildOperators().clear(); + + return true; + } + +} diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java index 875ee9d..7e6f4f4 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java @@ -228,7 +228,7 @@ public Object process(Node nd, Stack stack, NodeProcessorCtx procCtx, public static class SelectRule implements NodeProcessor { - public List> getConvertedColNames( + private static List> getConvertedColNames( List> parentColNames, SelectOperator selOp) { List> listBucketCols = new ArrayList>(); if (selOp.getColumnExprMap() != null) { @@ -256,6 +256,11 @@ public Object process(Node nd, Stack stack, NodeProcessorCtx procCtx, public Object process(Node nd, Stack stack, NodeProcessorCtx procCtx, Object... nodeOutputs) throws SemanticException { SelectOperator selOp = (SelectOperator) nd; + setSelectOpTraits(selOp); + return null; + } + + public static void setSelectOpTraits(SelectOperator selOp) { List> parentBucketColNames = selOp.getParentOperators().get(0).getOpTraits().getBucketColNames(); @@ -281,7 +286,6 @@ public Object process(Node nd, Stack stack, NodeProcessorCtx procCtx, } OpTraits opTraits = new OpTraits(listBucketCols, numBuckets, listSortCols, numReduceSinks); selOp.setOpTraits(opTraits); - return null; } } diff --git ql/src/test/queries/clientpositive/partialsmbjoin.q ql/src/test/queries/clientpositive/partialsmbjoin.q new file mode 100644 index 0000000..c2a169c --- /dev/null +++ ql/src/test/queries/clientpositive/partialsmbjoin.q @@ -0,0 +1,49 @@ +set hive.strict.checks.cartesian.product=false; +set hive.merge.nway.joins=false; +set hive.optimize.shared.work=false; + +EXPLAIN +SELECT * +FROM ( + SELECT a.value + FROM src1 a + JOIN src1 b + ON (a.value = b.value) + GROUP BY a.value +) a +JOIN src +ON (a.value = src.value); + +SELECT * +FROM ( + SELECT a.value + FROM src1 a + JOIN src1 b + ON (a.value = b.value) + GROUP BY a.value +) a +JOIN src +ON (a.value = src.value); + +EXPLAIN +SELECT * +FROM src +JOIN ( + SELECT a.value + FROM src1 a + JOIN src1 b + ON (a.value = b.value) + GROUP BY a.value +) a +ON (src.value = a.value); + +SELECT * +FROM src +JOIN ( + SELECT a.value + FROM src1 a + JOIN src1 b + ON (a.value = b.value) + GROUP BY a.value +) a +ON (src.value = a.value); diff --git ql/src/test/results/clientpositive/llap/partialsmbjoin.q.out ql/src/test/results/clientpositive/llap/partialsmbjoin.q.out new file mode 100644 index 0000000..1358b9f --- /dev/null +++ ql/src/test/results/clientpositive/llap/partialsmbjoin.q.out @@ -0,0 +1,434 @@ +PREHOOK: query: EXPLAIN +SELECT * +FROM ( + SELECT a.value + FROM src1 a + JOIN src1 b + ON (a.value = b.value) + GROUP BY a.value +) a +JOIN src +ON (a.value = src.value) +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT * +FROM ( + SELECT a.value + FROM src1 a + JOIN src1 b + ON (a.value = b.value) + GROUP BY a.value +) a +JOIN src +ON (a.value = src.value) +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE) + Reducer 6 <- Map 5 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Filter Operator + predicate: value is not null (type: boolean) + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: value (type: string) + outputColumnNames: _col0 + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Execution mode: llap + LLAP IO: no inputs + Map 4 + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Filter Operator + predicate: value is not null (type: boolean) + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: value (type: string) + outputColumnNames: _col0 + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Execution mode: llap + LLAP IO: no inputs + Map 5 + Map Operator Tree: + TableScan + alias: src + Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE + Filter Operator + predicate: value is not null (type: boolean) + Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: key (type: string), value (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: _col1 (type: string) + sort order: + + Map-reduce partition columns: _col1 (type: string) + Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE + value expressions: _col0 (type: string) + Execution mode: llap + LLAP IO: no inputs + Reducer 2 + Execution mode: llap + Reduce Operator Tree: + Merge Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 _col0 (type: string) + 1 _col0 (type: string) + outputColumnNames: _col0 + Statistics: Num rows: 44 Data size: 3916 Basic stats: COMPLETE Column stats: COMPLETE + Group By Operator + keys: _col0 (type: string) + mode: hash + outputColumnNames: _col0 + Statistics: Num rows: 14 Data size: 1246 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 14 Data size: 1246 Basic stats: COMPLETE Column stats: COMPLETE + Reducer 6 + Reduce Operator Tree: + Group By Operator + keys: KEY._col0 (type: string) + mode: mergepartial + outputColumnNames: _col0 + Statistics: Num rows: 14 Data size: 1246 Basic stats: COMPLETE Column stats: COMPLETE + Execution mode: llap + Reduce Operator Tree: + Select Operator + expressions: VALUE._col0 (type: string), KEY.reducesinkkey0 (type: string) + outputColumnNames: _col0, _col1 + Merge Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 _col0 (type: string) + 1 _col1 (type: string) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 32 Data size: 8544 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + Statistics: Num rows: 32 Data size: 8544 Basic stats: COMPLETE Column stats: COMPLETE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: SELECT * +FROM ( + SELECT a.value + FROM src1 a + JOIN src1 b + ON (a.value = b.value) + GROUP BY a.value +) a +JOIN src +ON (a.value = src.value) +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Input: default@src1 +#### A masked pattern was here #### +POSTHOOK: query: SELECT * +FROM ( + SELECT a.value + FROM src1 a + JOIN src1 b + ON (a.value = b.value) + GROUP BY a.value +) a +JOIN src +ON (a.value = src.value) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Input: default@src1 +#### A masked pattern was here #### +val_146 146 val_146 +val_146 146 val_146 +val_150 150 val_150 +val_165 165 val_165 +val_165 165 val_165 +val_193 193 val_193 +val_193 193 val_193 +val_193 193 val_193 +val_213 213 val_213 +val_213 213 val_213 +val_238 238 val_238 +val_238 238 val_238 +val_255 255 val_255 +val_255 255 val_255 +val_265 265 val_265 +val_265 265 val_265 +val_27 27 val_27 +val_273 273 val_273 +val_273 273 val_273 +val_273 273 val_273 +val_278 278 val_278 +val_278 278 val_278 +val_311 311 val_311 +val_311 311 val_311 +val_311 311 val_311 +val_401 401 val_401 +val_401 401 val_401 +val_401 401 val_401 +val_401 401 val_401 +val_401 401 val_401 +val_406 406 val_406 +val_406 406 val_406 +val_406 406 val_406 +val_406 406 val_406 +val_409 409 val_409 +val_409 409 val_409 +val_409 409 val_409 +val_484 484 val_484 +val_66 66 val_66 +PREHOOK: query: EXPLAIN +SELECT * +FROM src +JOIN ( + SELECT a.value + FROM src1 a + JOIN src1 b + ON (a.value = b.value) + GROUP BY a.value +) a +ON (src.value = a.value) +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT * +FROM src +JOIN ( + SELECT a.value + FROM src1 a + JOIN src1 b + ON (a.value = b.value) + GROUP BY a.value +) a +ON (src.value = a.value) +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) + Reducer 4 <- Map 3 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: src + Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE + Filter Operator + predicate: value is not null (type: boolean) + Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: key (type: string), value (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: _col1 (type: string) + sort order: + + Map-reduce partition columns: _col1 (type: string) + Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE + value expressions: _col0 (type: string) + Execution mode: llap + LLAP IO: no inputs + Map 3 + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Filter Operator + predicate: value is not null (type: boolean) + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: value (type: string) + outputColumnNames: _col0 + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Execution mode: llap + LLAP IO: no inputs + Map 6 + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Filter Operator + predicate: value is not null (type: boolean) + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: value (type: string) + outputColumnNames: _col0 + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 25 Data size: 2225 Basic stats: COMPLETE Column stats: COMPLETE + Execution mode: llap + LLAP IO: no inputs + Reducer 2 + Reduce Operator Tree: + Group By Operator + keys: KEY._col0 (type: string) + mode: mergepartial + outputColumnNames: _col0 + Statistics: Num rows: 14 Data size: 1246 Basic stats: COMPLETE Column stats: COMPLETE + Execution mode: llap + Reduce Operator Tree: + Select Operator + expressions: VALUE._col0 (type: string), KEY.reducesinkkey0 (type: string) + outputColumnNames: _col0, _col1 + Merge Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 _col1 (type: string) + 1 _col0 (type: string) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 32 Data size: 8544 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + Statistics: Num rows: 32 Data size: 8544 Basic stats: COMPLETE Column stats: COMPLETE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Reducer 4 + Execution mode: llap + Reduce Operator Tree: + Merge Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 _col0 (type: string) + 1 _col0 (type: string) + outputColumnNames: _col0 + Statistics: Num rows: 44 Data size: 3916 Basic stats: COMPLETE Column stats: COMPLETE + Group By Operator + keys: _col0 (type: string) + mode: hash + outputColumnNames: _col0 + Statistics: Num rows: 14 Data size: 1246 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 14 Data size: 1246 Basic stats: COMPLETE Column stats: COMPLETE + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: SELECT * +FROM src +JOIN ( + SELECT a.value + FROM src1 a + JOIN src1 b + ON (a.value = b.value) + GROUP BY a.value +) a +ON (src.value = a.value) +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Input: default@src1 +#### A masked pattern was here #### +POSTHOOK: query: SELECT * +FROM src +JOIN ( + SELECT a.value + FROM src1 a + JOIN src1 b + ON (a.value = b.value) + GROUP BY a.value +) a +ON (src.value = a.value) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Input: default@src1 +#### A masked pattern was here #### +146 val_146 val_146 +146 val_146 val_146 +150 val_150 val_150 +165 val_165 val_165 +165 val_165 val_165 +193 val_193 val_193 +193 val_193 val_193 +193 val_193 val_193 +213 val_213 val_213 +213 val_213 val_213 +238 val_238 val_238 +238 val_238 val_238 +255 val_255 val_255 +255 val_255 val_255 +265 val_265 val_265 +265 val_265 val_265 +27 val_27 val_27 +273 val_273 val_273 +273 val_273 val_273 +273 val_273 val_273 +278 val_278 val_278 +278 val_278 val_278 +311 val_311 val_311 +311 val_311 val_311 +311 val_311 val_311 +401 val_401 val_401 +401 val_401 val_401 +401 val_401 val_401 +401 val_401 val_401 +401 val_401 val_401 +406 val_406 val_406 +406 val_406 val_406 +406 val_406 val_406 +406 val_406 val_406 +409 val_409 val_409 +409 val_409 val_409 +409 val_409 val_409 +484 val_484 val_484 +66 val_66 val_66 diff --git ql/src/test/results/clientpositive/perf/query14.q.out ql/src/test/results/clientpositive/perf/query14.q.out index 42bad8d..e5cc69d 100644 --- ql/src/test/results/clientpositive/perf/query14.q.out +++ ql/src/test/results/clientpositive/perf/query14.q.out @@ -1,6 +1,3 @@ -Warning: Shuffle Join MERGEJOIN[891][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 12' is a cross product -Warning: Shuffle Join MERGEJOIN[890][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 5' is a cross product -Warning: Shuffle Join MERGEJOIN[892][tables = [$hdt$_2, $hdt$_3, $hdt$_1]] in Stage 'Reducer 16' is a cross product PREHOOK: query: explain with cross_items as (select i_item_sk ss_item_sk @@ -210,1089 +207,1062 @@ POSTHOOK: type: QUERY Plan optimized by CBO. Vertex dependency in root stage -Reducer 11 <- Union 10 (CUSTOM_SIMPLE_EDGE) -Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE), Reducer 38 (CUSTOM_SIMPLE_EDGE), Reducer 47 (CUSTOM_SIMPLE_EDGE), Union 6 (CONTAINS) -Reducer 13 <- Map 1 (SIMPLE_EDGE), Map 17 (SIMPLE_EDGE), Union 14 (CONTAINS) -Reducer 15 <- Union 14 (CUSTOM_SIMPLE_EDGE) -Reducer 16 <- Reducer 15 (CUSTOM_SIMPLE_EDGE), Reducer 56 (CUSTOM_SIMPLE_EDGE), Reducer 65 (CUSTOM_SIMPLE_EDGE), Union 6 (CONTAINS) -Reducer 18 <- Map 17 (SIMPLE_EDGE), Map 88 (SIMPLE_EDGE), Union 19 (CONTAINS) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 17 (SIMPLE_EDGE), Union 3 (CONTAINS) -Reducer 20 <- Union 19 (CUSTOM_SIMPLE_EDGE) -Reducer 21 <- Map 17 (SIMPLE_EDGE), Map 97 (SIMPLE_EDGE) -Reducer 22 <- Map 96 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE) -Reducer 23 <- Reducer 22 (SIMPLE_EDGE), Union 24 (CONTAINS) -Reducer 25 <- Union 24 (SIMPLE_EDGE) -Reducer 26 <- Map 96 (SIMPLE_EDGE), Reducer 25 (SIMPLE_EDGE) -Reducer 27 <- Reducer 26 (SIMPLE_EDGE) -Reducer 28 <- Map 96 (SIMPLE_EDGE), Reducer 27 (SIMPLE_EDGE), Reducer 92 (SIMPLE_EDGE) -Reducer 29 <- Reducer 28 (SIMPLE_EDGE) -Reducer 30 <- Map 17 (SIMPLE_EDGE), Map 98 (SIMPLE_EDGE) -Reducer 31 <- Map 96 (SIMPLE_EDGE), Reducer 30 (SIMPLE_EDGE) -Reducer 32 <- Reducer 31 (SIMPLE_EDGE), Union 24 (CONTAINS) -Reducer 33 <- Map 17 (SIMPLE_EDGE), Map 99 (SIMPLE_EDGE) -Reducer 34 <- Map 96 (SIMPLE_EDGE), Reducer 33 (SIMPLE_EDGE) -Reducer 35 <- Reducer 34 (SIMPLE_EDGE), Union 24 (CONTAINS) -Reducer 36 <- Map 17 (SIMPLE_EDGE), Map 88 (SIMPLE_EDGE), Union 37 (CONTAINS) -Reducer 38 <- Union 37 (CUSTOM_SIMPLE_EDGE) -Reducer 39 <- Map 17 (SIMPLE_EDGE), Map 97 (SIMPLE_EDGE) -Reducer 4 <- Union 3 (CUSTOM_SIMPLE_EDGE) -Reducer 40 <- Map 96 (SIMPLE_EDGE), Reducer 39 (SIMPLE_EDGE) +Reducer 12 <- Map 11 (SIMPLE_EDGE), Map 91 (SIMPLE_EDGE), Union 13 (CONTAINS) +Reducer 14 <- Union 13 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 100 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE) +Reducer 17 <- Map 99 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (SIMPLE_EDGE), Union 19 (CONTAINS) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE), Union 3 (CONTAINS) +Reducer 20 <- Union 19 (SIMPLE_EDGE) +Reducer 21 <- Map 99 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) +Reducer 22 <- Reducer 21 (SIMPLE_EDGE) +Reducer 23 <- Map 99 (SIMPLE_EDGE), Reducer 22 (SIMPLE_EDGE), Reducer 95 (SIMPLE_EDGE) +Reducer 24 <- Reducer 23 (SIMPLE_EDGE) +Reducer 25 <- Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 24 (CUSTOM_SIMPLE_EDGE), Union 26 (CONTAINS), Union 3 (CUSTOM_SIMPLE_EDGE) +Reducer 27 <- Union 26 (SIMPLE_EDGE) +Reducer 28 <- Reducer 27 (SIMPLE_EDGE) +Reducer 29 <- Map 101 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE) +Reducer 30 <- Map 99 (SIMPLE_EDGE), Reducer 29 (SIMPLE_EDGE) +Reducer 31 <- Reducer 30 (SIMPLE_EDGE), Union 19 (CONTAINS) +Reducer 32 <- Map 102 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE) +Reducer 33 <- Map 99 (SIMPLE_EDGE), Reducer 32 (SIMPLE_EDGE) +Reducer 34 <- Reducer 33 (SIMPLE_EDGE), Union 19 (CONTAINS) +Reducer 35 <- Map 11 (SIMPLE_EDGE), Map 91 (SIMPLE_EDGE), Union 36 (CONTAINS) +Reducer 37 <- Union 36 (CUSTOM_SIMPLE_EDGE) +Reducer 39 <- Map 100 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE) +Reducer 40 <- Map 99 (SIMPLE_EDGE), Reducer 39 (SIMPLE_EDGE) Reducer 41 <- Reducer 40 (SIMPLE_EDGE), Union 42 (CONTAINS) Reducer 43 <- Union 42 (SIMPLE_EDGE) -Reducer 44 <- Map 96 (SIMPLE_EDGE), Reducer 43 (SIMPLE_EDGE) +Reducer 44 <- Map 99 (SIMPLE_EDGE), Reducer 43 (SIMPLE_EDGE) Reducer 45 <- Reducer 44 (SIMPLE_EDGE) -Reducer 46 <- Map 96 (SIMPLE_EDGE), Reducer 45 (SIMPLE_EDGE), Reducer 94 (SIMPLE_EDGE) +Reducer 46 <- Map 99 (SIMPLE_EDGE), Reducer 45 (SIMPLE_EDGE), Reducer 97 (SIMPLE_EDGE) Reducer 47 <- Reducer 46 (SIMPLE_EDGE) -Reducer 48 <- Map 17 (SIMPLE_EDGE), Map 98 (SIMPLE_EDGE) -Reducer 49 <- Map 96 (SIMPLE_EDGE), Reducer 48 (SIMPLE_EDGE) -Reducer 5 <- Reducer 20 (CUSTOM_SIMPLE_EDGE), Reducer 29 (CUSTOM_SIMPLE_EDGE), Reducer 4 (CUSTOM_SIMPLE_EDGE), Union 6 (CONTAINS) -Reducer 50 <- Reducer 49 (SIMPLE_EDGE), Union 42 (CONTAINS) -Reducer 51 <- Map 17 (SIMPLE_EDGE), Map 99 (SIMPLE_EDGE) -Reducer 52 <- Map 96 (SIMPLE_EDGE), Reducer 51 (SIMPLE_EDGE) -Reducer 53 <- Reducer 52 (SIMPLE_EDGE), Union 42 (CONTAINS) -Reducer 54 <- Map 17 (SIMPLE_EDGE), Map 88 (SIMPLE_EDGE), Union 55 (CONTAINS) -Reducer 56 <- Union 55 (CUSTOM_SIMPLE_EDGE) -Reducer 57 <- Map 17 (SIMPLE_EDGE), Map 97 (SIMPLE_EDGE) -Reducer 58 <- Map 96 (SIMPLE_EDGE), Reducer 57 (SIMPLE_EDGE) -Reducer 59 <- Reducer 58 (SIMPLE_EDGE), Union 60 (CONTAINS) -Reducer 61 <- Union 60 (SIMPLE_EDGE) -Reducer 62 <- Map 96 (SIMPLE_EDGE), Reducer 61 (SIMPLE_EDGE) -Reducer 63 <- Reducer 62 (SIMPLE_EDGE) -Reducer 64 <- Map 96 (SIMPLE_EDGE), Reducer 63 (SIMPLE_EDGE), Reducer 95 (SIMPLE_EDGE) +Reducer 48 <- Reducer 37 (CUSTOM_SIMPLE_EDGE), Reducer 47 (CUSTOM_SIMPLE_EDGE), Union 26 (CONTAINS), Union 6 (CUSTOM_SIMPLE_EDGE) +Reducer 49 <- Map 101 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE) +Reducer 5 <- Map 1 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE), Union 6 (CONTAINS) +Reducer 50 <- Map 99 (SIMPLE_EDGE), Reducer 49 (SIMPLE_EDGE) +Reducer 51 <- Reducer 50 (SIMPLE_EDGE), Union 42 (CONTAINS) +Reducer 52 <- Map 102 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE) +Reducer 53 <- Map 99 (SIMPLE_EDGE), Reducer 52 (SIMPLE_EDGE) +Reducer 54 <- Reducer 53 (SIMPLE_EDGE), Union 42 (CONTAINS) +Reducer 55 <- Map 11 (SIMPLE_EDGE), Map 91 (SIMPLE_EDGE), Union 56 (CONTAINS) +Reducer 57 <- Union 56 (CUSTOM_SIMPLE_EDGE) +Reducer 59 <- Map 100 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE) +Reducer 60 <- Map 99 (SIMPLE_EDGE), Reducer 59 (SIMPLE_EDGE) +Reducer 61 <- Reducer 60 (SIMPLE_EDGE), Union 62 (CONTAINS) +Reducer 63 <- Union 62 (SIMPLE_EDGE) +Reducer 64 <- Map 99 (SIMPLE_EDGE), Reducer 63 (SIMPLE_EDGE) Reducer 65 <- Reducer 64 (SIMPLE_EDGE) -Reducer 66 <- Map 17 (SIMPLE_EDGE), Map 98 (SIMPLE_EDGE) -Reducer 67 <- Map 96 (SIMPLE_EDGE), Reducer 66 (SIMPLE_EDGE) -Reducer 68 <- Reducer 67 (SIMPLE_EDGE), Union 60 (CONTAINS) -Reducer 69 <- Map 17 (SIMPLE_EDGE), Map 99 (SIMPLE_EDGE) -Reducer 7 <- Union 6 (SIMPLE_EDGE) -Reducer 70 <- Map 96 (SIMPLE_EDGE), Reducer 69 (SIMPLE_EDGE) -Reducer 71 <- Reducer 70 (SIMPLE_EDGE), Union 60 (CONTAINS) -Reducer 73 <- Map 72 (SIMPLE_EDGE), Map 76 (SIMPLE_EDGE), Union 3 (CONTAINS) -Reducer 74 <- Map 72 (SIMPLE_EDGE), Map 76 (SIMPLE_EDGE), Union 10 (CONTAINS) -Reducer 75 <- Map 72 (SIMPLE_EDGE), Map 76 (SIMPLE_EDGE), Union 14 (CONTAINS) -Reducer 77 <- Map 76 (SIMPLE_EDGE), Map 89 (SIMPLE_EDGE), Union 19 (CONTAINS) -Reducer 78 <- Map 76 (SIMPLE_EDGE), Map 89 (SIMPLE_EDGE), Union 37 (CONTAINS) -Reducer 79 <- Map 76 (SIMPLE_EDGE), Map 89 (SIMPLE_EDGE), Union 55 (CONTAINS) -Reducer 8 <- Reducer 7 (SIMPLE_EDGE) -Reducer 81 <- Map 80 (SIMPLE_EDGE), Map 84 (SIMPLE_EDGE), Union 3 (CONTAINS) -Reducer 82 <- Map 80 (SIMPLE_EDGE), Map 84 (SIMPLE_EDGE), Union 10 (CONTAINS) -Reducer 83 <- Map 80 (SIMPLE_EDGE), Map 84 (SIMPLE_EDGE), Union 14 (CONTAINS) -Reducer 85 <- Map 84 (SIMPLE_EDGE), Map 90 (SIMPLE_EDGE), Union 19 (CONTAINS) -Reducer 86 <- Map 84 (SIMPLE_EDGE), Map 90 (SIMPLE_EDGE), Union 37 (CONTAINS) -Reducer 87 <- Map 84 (SIMPLE_EDGE), Map 90 (SIMPLE_EDGE), Union 55 (CONTAINS) -Reducer 9 <- Map 1 (SIMPLE_EDGE), Map 17 (SIMPLE_EDGE), Union 10 (CONTAINS) -Reducer 92 <- Map 91 (SIMPLE_EDGE), Map 93 (SIMPLE_EDGE) -Reducer 94 <- Map 100 (SIMPLE_EDGE), Map 93 (SIMPLE_EDGE) -Reducer 95 <- Map 101 (SIMPLE_EDGE), Map 93 (SIMPLE_EDGE) +Reducer 66 <- Map 99 (SIMPLE_EDGE), Reducer 65 (SIMPLE_EDGE), Reducer 98 (SIMPLE_EDGE) +Reducer 67 <- Reducer 66 (SIMPLE_EDGE) +Reducer 68 <- Reducer 57 (CUSTOM_SIMPLE_EDGE), Reducer 67 (CUSTOM_SIMPLE_EDGE), Union 26 (CONTAINS), Union 9 (CUSTOM_SIMPLE_EDGE) +Reducer 69 <- Map 101 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE) +Reducer 70 <- Map 99 (SIMPLE_EDGE), Reducer 69 (SIMPLE_EDGE) +Reducer 71 <- Reducer 70 (SIMPLE_EDGE), Union 62 (CONTAINS) +Reducer 72 <- Map 102 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE) +Reducer 73 <- Map 99 (SIMPLE_EDGE), Reducer 72 (SIMPLE_EDGE) +Reducer 74 <- Reducer 73 (SIMPLE_EDGE), Union 62 (CONTAINS) +Reducer 76 <- Map 75 (SIMPLE_EDGE), Map 79 (SIMPLE_EDGE), Union 3 (CONTAINS) +Reducer 77 <- Map 75 (SIMPLE_EDGE), Map 79 (SIMPLE_EDGE), Union 6 (CONTAINS) +Reducer 78 <- Map 75 (SIMPLE_EDGE), Map 79 (SIMPLE_EDGE), Union 9 (CONTAINS) +Reducer 8 <- Map 1 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE), Union 9 (CONTAINS) +Reducer 80 <- Map 79 (SIMPLE_EDGE), Map 92 (SIMPLE_EDGE), Union 13 (CONTAINS) +Reducer 81 <- Map 79 (SIMPLE_EDGE), Map 92 (SIMPLE_EDGE), Union 36 (CONTAINS) +Reducer 82 <- Map 79 (SIMPLE_EDGE), Map 92 (SIMPLE_EDGE), Union 56 (CONTAINS) +Reducer 84 <- Map 83 (SIMPLE_EDGE), Map 87 (SIMPLE_EDGE), Union 3 (CONTAINS) +Reducer 85 <- Map 83 (SIMPLE_EDGE), Map 87 (SIMPLE_EDGE), Union 6 (CONTAINS) +Reducer 86 <- Map 83 (SIMPLE_EDGE), Map 87 (SIMPLE_EDGE), Union 9 (CONTAINS) +Reducer 88 <- Map 87 (SIMPLE_EDGE), Map 93 (SIMPLE_EDGE), Union 13 (CONTAINS) +Reducer 89 <- Map 87 (SIMPLE_EDGE), Map 93 (SIMPLE_EDGE), Union 36 (CONTAINS) +Reducer 90 <- Map 87 (SIMPLE_EDGE), Map 93 (SIMPLE_EDGE), Union 56 (CONTAINS) +Reducer 95 <- Map 94 (SIMPLE_EDGE), Map 96 (SIMPLE_EDGE) +Reducer 97 <- Map 103 (SIMPLE_EDGE), Map 96 (SIMPLE_EDGE) +Reducer 98 <- Map 104 (SIMPLE_EDGE), Map 96 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 8 + Reducer 28 File Output Operator [FS_574] Limit [LIM_573] (rows=100 width=405) Number of rows:100 Select Operator [SEL_572] (rows=1016388080 width=405) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - <-Reducer 7 [SIMPLE_EDGE] + <-Reducer 27 [SIMPLE_EDGE] SHUFFLE [RS_571] Select Operator [SEL_570] (rows=1016388080 width=405) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] Group By Operator [GBY_569] (rows=1016388080 width=405) Output:["_col0","_col1","_col2","_col3","_col5","_col6"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 - <-Union 6 [SIMPLE_EDGE] - <-Reducer 12 [CONTAINS] + <-Union 26 [SIMPLE_EDGE] + <-Reducer 25 [CONTAINS] Reduce Output Operator [RS_568] PartitionCols:_col0, _col1, _col2, _col3, _col4 Group By Operator [GBY_567] (rows=2032776160 width=405) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col1, _col2, _col3, 0 - Select Operator [SEL_375] (rows=116155905 width=432) + Select Operator [SEL_187] (rows=232318249 width=385) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_374] (rows=116155905 width=432) + Filter Operator [FIL_186] (rows=232318249 width=385) predicate:(_col5 > _col1) - Merge Join Operator [MERGEJOIN_891] (rows=348467716 width=432) + Merge Join Operator [MERGEJOIN_890] (rows=696954748 width=385) Conds:(Inner),(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] - <-Reducer 11 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_370] - Select Operator [SEL_231] (rows=1 width=8) - Filter Operator [FIL_230] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_228] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_223] (rows=1 width=8) - Group By Operator [GBY_222] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Union 10 [CUSTOM_SIMPLE_EDGE] - <-Reducer 74 [CONTAINS] - Reduce Output Operator [RS_221] - Group By Operator [GBY_220] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_219] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_207] (rows=316788826 width=135) + <-Select Operator [SEL_894] + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 14 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_183] + Group By Operator [GBY_79] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(VALUE._col0)"] + <-Union 13 [CUSTOM_SIMPLE_EDGE] + <-Reducer 12 [CONTAINS] + Reduce Output Operator [RS_78] + Group By Operator [GBY_77] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(_col0)"] + Select Operator [SEL_75] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_53] (rows=633595212 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_848] (rows=633595212 width=88) + Conds:RS_50._col0=RS_51._col0(Inner),Output:["_col1","_col2"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_51] + PartitionCols:_col0 + Select Operator [SEL_5] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_771] (rows=8116 width=1119) + predicate:(d_year BETWEEN 1999 AND 2001 and d_date_sk is not null) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 91 [SIMPLE_EDGE] + SHUFFLE [RS_50] + PartitionCols:_col0 + Select Operator [SEL_46] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_776] (rows=575995635 width=88) + predicate:ss_sold_date_sk is not null + TableScan [TS_44] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_quantity","ss_list_price"] + <-Reducer 80 [CONTAINS] + Reduce Output Operator [RS_78] + Group By Operator [GBY_77] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(_col0)"] + Select Operator [SEL_75] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_63] (rows=316788826 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_849] (rows=316788826 width=135) + Conds:RS_60._col0=RS_61._col0(Inner),Output:["_col1","_col2"] + <-Map 79 [SIMPLE_EDGE] + SHUFFLE [RS_61] + PartitionCols:_col0 + Select Operator [SEL_15] (rows=8116 width=1119) Output:["_col0"] - Merge Join Operator [MERGEJOIN_861] (rows=316788826 width=135) - Conds:RS_204._col0=RS_205._col0(Inner),Output:["_col1"] - <-Map 76 [SIMPLE_EDGE] - SHUFFLE [RS_205] - PartitionCols:_col0 - Select Operator [SEL_15] (rows=8116 width=1119) - Output:["_col0"] - Filter Operator [FIL_773] (rows=8116 width=1119) - predicate:(d_year BETWEEN 1998 AND 2000 and d_date_sk is not null) - TableScan [TS_13] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] - <-Map 72 [SIMPLE_EDGE] - SHUFFLE [RS_204] - PartitionCols:_col0 - Select Operator [SEL_12] (rows=287989836 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_772] (rows=287989836 width=135) - predicate:cs_sold_date_sk is not null - TableScan [TS_10] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_quantity"] - <-Reducer 82 [CONTAINS] - Reduce Output Operator [RS_221] - Group By Operator [GBY_220] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_219] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_218] (rows=158402938 width=135) + Filter Operator [FIL_773] (rows=8116 width=1119) + predicate:(d_year BETWEEN 1998 AND 2000 and d_date_sk is not null) + TableScan [TS_13] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 92 [SIMPLE_EDGE] + SHUFFLE [RS_60] + PartitionCols:_col0 + Select Operator [SEL_56] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_778] (rows=287989836 width=135) + predicate:cs_sold_date_sk is not null + TableScan [TS_54] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_quantity","cs_list_price"] + <-Reducer 88 [CONTAINS] + Reduce Output Operator [RS_78] + Group By Operator [GBY_77] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(_col0)"] + Select Operator [SEL_75] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_74] (rows=158402938 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_850] (rows=158402938 width=135) + Conds:RS_71._col0=RS_72._col0(Inner),Output:["_col1","_col2"] + <-Map 87 [SIMPLE_EDGE] + SHUFFLE [RS_72] + PartitionCols:_col0 + Select Operator [SEL_26] (rows=8116 width=1119) Output:["_col0"] - Merge Join Operator [MERGEJOIN_862] (rows=158402938 width=135) - Conds:RS_215._col0=RS_216._col0(Inner),Output:["_col1"] - <-Map 84 [SIMPLE_EDGE] - SHUFFLE [RS_216] - PartitionCols:_col0 - Select Operator [SEL_26] (rows=8116 width=1119) - Output:["_col0"] - Filter Operator [FIL_775] (rows=8116 width=1119) - predicate:(d_year BETWEEN 1998 AND 2000 and d_date_sk is not null) - TableScan [TS_24] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] - <-Map 80 [SIMPLE_EDGE] - SHUFFLE [RS_215] - PartitionCols:_col0 - Select Operator [SEL_23] (rows=144002668 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_774] (rows=144002668 width=135) - predicate:ws_sold_date_sk is not null - TableScan [TS_21] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_quantity"] - <-Reducer 9 [CONTAINS] - Reduce Output Operator [RS_221] - Group By Operator [GBY_220] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_219] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_197] (rows=633595212 width=88) + Filter Operator [FIL_775] (rows=8116 width=1119) + predicate:(d_year BETWEEN 1998 AND 2000 and d_date_sk is not null) + TableScan [TS_24] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 93 [SIMPLE_EDGE] + SHUFFLE [RS_71] + PartitionCols:_col0 + Select Operator [SEL_67] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_780] (rows=144002668 width=135) + predicate:ws_sold_date_sk is not null + TableScan [TS_65] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_quantity","ws_list_price"] + <-Reducer 24 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_184] + Group By Operator [GBY_180] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 23 [SIMPLE_EDGE] + SHUFFLE [RS_179] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_178] (rows=1393909496 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 + Select Operator [SEL_176] (rows=1393909496 width=88) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_859] (rows=1393909496 width=88) + Conds:RS_172._col1=RS_173._col0(Inner),RS_172._col1=RS_174._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_173] + PartitionCols:_col0 + Select Operator [SEL_89] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_784] (rows=462000 width=1436) + predicate:i_item_sk is not null + TableScan [TS_87] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand_id","i_class_id","i_category_id"] + <-Reducer 22 [SIMPLE_EDGE] + SHUFFLE [RS_174] + PartitionCols:_col0 + Group By Operator [GBY_167] (rows=254100 width=1436) + Output:["_col0"],keys:KEY._col0 + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_166] + PartitionCols:_col0 + Group By Operator [GBY_165] (rows=508200 width=1436) + Output:["_col0"],keys:_col0 + Merge Join Operator [MERGEJOIN_858] (rows=508200 width=1436) + Conds:RS_161._col1, _col2, _col3=RS_162._col0, _col1, _col2(Inner),Output:["_col0"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_161] + PartitionCols:_col1, _col2, _col3 + Select Operator [SEL_92] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_785] (rows=462000 width=1436) + predicate:(i_brand_id is not null and i_class_id is not null and i_category_id is not null and i_item_sk is not null) + Please refer to the previous TableScan [TS_87] + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_162] + PartitionCols:_col0, _col1, _col2 + Select Operator [SEL_160] (rows=1 width=108) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_159] (rows=1 width=108) + predicate:(_col3 = 3) + Group By Operator [GBY_158] (rows=304916424 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 19 [SIMPLE_EDGE] + <-Reducer 18 [CONTAINS] + Reduce Output Operator [RS_157] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_156] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_111] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 17 [SIMPLE_EDGE] + SHUFFLE [RS_110] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_109] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_853] (rows=696954748 width=88) + Conds:RS_105._col1=RS_106._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_106] + PartitionCols:_col0 + Select Operator [SEL_101] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_788] (rows=462000 width=1436) + predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) + Please refer to the previous TableScan [TS_87] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_105] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_852] (rows=633595212 width=88) + Conds:RS_102._col0=RS_103._col0(Inner),Output:["_col1"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_103] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 100 [SIMPLE_EDGE] + SHUFFLE [RS_102] + PartitionCols:_col0 + Select Operator [SEL_95] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_786] (rows=575995635 width=88) + predicate:(ss_item_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_93] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk"] + <-Reducer 31 [CONTAINS] + Reduce Output Operator [RS_157] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_156] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_131] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 30 [SIMPLE_EDGE] + SHUFFLE [RS_130] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_129] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_855] (rows=348467716 width=135) + Conds:RS_125._col1=RS_126._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_126] + PartitionCols:_col0 + Select Operator [SEL_121] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_791] (rows=462000 width=1436) + predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) + Please refer to the previous TableScan [TS_87] + <-Reducer 29 [SIMPLE_EDGE] + SHUFFLE [RS_125] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_854] (rows=316788826 width=135) + Conds:RS_122._col0=RS_123._col0(Inner),Output:["_col1"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_123] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 101 [SIMPLE_EDGE] + SHUFFLE [RS_122] + PartitionCols:_col0 + Select Operator [SEL_115] (rows=287989836 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_789] (rows=287989836 width=135) + predicate:(cs_item_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_113] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk"] + <-Reducer 34 [CONTAINS] + Reduce Output Operator [RS_157] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_156] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_152] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 33 [SIMPLE_EDGE] + SHUFFLE [RS_151] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_150] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_857] (rows=174243235 width=135) + Conds:RS_146._col1=RS_147._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_147] + PartitionCols:_col0 + Select Operator [SEL_142] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_794] (rows=462000 width=1436) + predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) + Please refer to the previous TableScan [TS_87] + <-Reducer 32 [SIMPLE_EDGE] + SHUFFLE [RS_146] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_856] (rows=158402938 width=135) + Conds:RS_143._col0=RS_144._col0(Inner),Output:["_col1"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_144] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 102 [SIMPLE_EDGE] + SHUFFLE [RS_143] + PartitionCols:_col0 + Select Operator [SEL_136] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_792] (rows=144002668 width=135) + predicate:(ws_item_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_134] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk"] + <-Reducer 95 [SIMPLE_EDGE] + SHUFFLE [RS_172] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_851] (rows=633595212 width=88) + Conds:RS_169._col0=RS_170._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 96 [SIMPLE_EDGE] + SHUFFLE [RS_170] + PartitionCols:_col0 + Select Operator [SEL_86] (rows=18262 width=1119) Output:["_col0"] - Merge Join Operator [MERGEJOIN_860] (rows=633595212 width=88) - Conds:RS_194._col0=RS_195._col0(Inner),Output:["_col1"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_195] - PartitionCols:_col0 - Select Operator [SEL_5] (rows=8116 width=1119) - Output:["_col0"] - Filter Operator [FIL_771] (rows=8116 width=1119) - predicate:(d_year BETWEEN 1999 AND 2001 and d_date_sk is not null) - TableScan [TS_3] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_194] - PartitionCols:_col0 - Select Operator [SEL_2] (rows=575995635 width=88) - Output:["_col0","_col1"] - Filter Operator [FIL_770] (rows=575995635 width=88) - predicate:ss_sold_date_sk is not null - TableScan [TS_0] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_quantity"] - <-Reducer 38 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_371] - Group By Operator [GBY_267] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(VALUE._col0)"] - <-Union 37 [CUSTOM_SIMPLE_EDGE] - <-Reducer 36 [CONTAINS] - Reduce Output Operator [RS_266] - Group By Operator [GBY_265] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(_col0)"] - Select Operator [SEL_263] (rows=1108786976 width=108) + Filter Operator [FIL_783] (rows=18262 width=1119) + predicate:((d_year = 2000) and (d_moy = 11) and d_date_sk is not null) + TableScan [TS_84] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 94 [SIMPLE_EDGE] + SHUFFLE [RS_169] + PartitionCols:_col0 + Select Operator [SEL_83] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_782] (rows=575995635 width=88) + predicate:(ss_item_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_81] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_quantity","ss_list_price"] + <-Union 3 [CUSTOM_SIMPLE_EDGE] + <-Reducer 2 [CONTAINS] + Reduce Output Operator [RS_33] + Group By Operator [GBY_32] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_31] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_9] (rows=633595212 width=88) Output:["_col0"] - Select Operator [SEL_241] (rows=633595212 width=88) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_863] (rows=633595212 width=88) - Conds:RS_238._col0=RS_239._col0(Inner),Output:["_col1","_col2"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_239] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 88 [SIMPLE_EDGE] - SHUFFLE [RS_238] - PartitionCols:_col0 - Select Operator [SEL_46] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_776] (rows=575995635 width=88) - predicate:ss_sold_date_sk is not null - TableScan [TS_44] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_quantity","ss_list_price"] - <-Reducer 78 [CONTAINS] - Reduce Output Operator [RS_266] - Group By Operator [GBY_265] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(_col0)"] - Select Operator [SEL_263] (rows=1108786976 width=108) + Merge Join Operator [MERGEJOIN_845] (rows=633595212 width=88) + Conds:RS_6._col0=RS_7._col0(Inner),Output:["_col1"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_7] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_6] + PartitionCols:_col0 + Select Operator [SEL_2] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_770] (rows=575995635 width=88) + predicate:ss_sold_date_sk is not null + TableScan [TS_0] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_quantity"] + <-Reducer 76 [CONTAINS] + Reduce Output Operator [RS_33] + Group By Operator [GBY_32] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_31] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_19] (rows=316788826 width=135) Output:["_col0"] - Select Operator [SEL_251] (rows=316788826 width=135) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_864] (rows=316788826 width=135) - Conds:RS_248._col0=RS_249._col0(Inner),Output:["_col1","_col2"] - <-Map 76 [SIMPLE_EDGE] - SHUFFLE [RS_249] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_15] - <-Map 89 [SIMPLE_EDGE] - SHUFFLE [RS_248] - PartitionCols:_col0 - Select Operator [SEL_56] (rows=287989836 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_778] (rows=287989836 width=135) - predicate:cs_sold_date_sk is not null - TableScan [TS_54] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_quantity","cs_list_price"] - <-Reducer 86 [CONTAINS] - Reduce Output Operator [RS_266] - Group By Operator [GBY_265] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(_col0)"] - Select Operator [SEL_263] (rows=1108786976 width=108) + Merge Join Operator [MERGEJOIN_846] (rows=316788826 width=135) + Conds:RS_16._col0=RS_17._col0(Inner),Output:["_col1"] + <-Map 79 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_15] + <-Map 75 [SIMPLE_EDGE] + SHUFFLE [RS_16] + PartitionCols:_col0 + Select Operator [SEL_12] (rows=287989836 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_772] (rows=287989836 width=135) + predicate:cs_sold_date_sk is not null + TableScan [TS_10] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_quantity"] + <-Reducer 84 [CONTAINS] + Reduce Output Operator [RS_33] + Group By Operator [GBY_32] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_31] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_30] (rows=158402938 width=135) Output:["_col0"] - Select Operator [SEL_262] (rows=158402938 width=135) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_865] (rows=158402938 width=135) - Conds:RS_259._col0=RS_260._col0(Inner),Output:["_col1","_col2"] - <-Map 84 [SIMPLE_EDGE] - SHUFFLE [RS_260] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_26] - <-Map 90 [SIMPLE_EDGE] - SHUFFLE [RS_259] - PartitionCols:_col0 - Select Operator [SEL_67] (rows=144002668 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_780] (rows=144002668 width=135) - predicate:ws_sold_date_sk is not null - TableScan [TS_65] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_quantity","ws_list_price"] - <-Reducer 47 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_372] - Group By Operator [GBY_368] (rows=348467716 width=135) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 46 [SIMPLE_EDGE] - SHUFFLE [RS_367] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_366] (rows=696935432 width=135) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 - Select Operator [SEL_364] (rows=696935432 width=135) - Output:["_col0","_col1","_col2","_col3"] - Merge Join Operator [MERGEJOIN_874] (rows=696935432 width=135) - Conds:RS_360._col1=RS_361._col0(Inner),RS_360._col1=RS_362._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_361] - PartitionCols:_col0 - Select Operator [SEL_277] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_809] (rows=462000 width=1436) - predicate:i_item_sk is not null - TableScan [TS_87] (rows=462000 width=1436) - default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand_id","i_class_id","i_category_id"] - <-Reducer 45 [SIMPLE_EDGE] - SHUFFLE [RS_362] - PartitionCols:_col0 - Group By Operator [GBY_355] (rows=254100 width=1436) - Output:["_col0"],keys:KEY._col0 - <-Reducer 44 [SIMPLE_EDGE] - SHUFFLE [RS_354] - PartitionCols:_col0 - Group By Operator [GBY_353] (rows=508200 width=1436) - Output:["_col0"],keys:_col0 - Merge Join Operator [MERGEJOIN_873] (rows=508200 width=1436) - Conds:RS_349._col1, _col2, _col3=RS_350._col0, _col1, _col2(Inner),Output:["_col0"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_349] - PartitionCols:_col1, _col2, _col3 - Select Operator [SEL_280] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_810] (rows=462000 width=1436) - predicate:(i_brand_id is not null and i_class_id is not null and i_category_id is not null and i_item_sk is not null) - Please refer to the previous TableScan [TS_87] - <-Reducer 43 [SIMPLE_EDGE] - SHUFFLE [RS_350] - PartitionCols:_col0, _col1, _col2 - Select Operator [SEL_348] (rows=1 width=108) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_347] (rows=1 width=108) - predicate:(_col3 = 3) - Group By Operator [GBY_346] (rows=304916424 width=108) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Union 42 [SIMPLE_EDGE] - <-Reducer 41 [CONTAINS] - Reduce Output Operator [RS_345] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_344] (rows=609832849 width=108) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_299] (rows=348477374 width=88) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 40 [SIMPLE_EDGE] - SHUFFLE [RS_298] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_297] (rows=696954748 width=88) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_868] (rows=696954748 width=88) - Conds:RS_293._col1=RS_294._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_294] - PartitionCols:_col0 - Select Operator [SEL_289] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_813] (rows=462000 width=1436) - predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) - Please refer to the previous TableScan [TS_87] - <-Reducer 39 [SIMPLE_EDGE] - SHUFFLE [RS_293] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_867] (rows=633595212 width=88) - Conds:RS_290._col0=RS_291._col0(Inner),Output:["_col1"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_291] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 97 [SIMPLE_EDGE] - SHUFFLE [RS_290] - PartitionCols:_col0 - Select Operator [SEL_95] (rows=575995635 width=88) - Output:["_col0","_col1"] - Filter Operator [FIL_786] (rows=575995635 width=88) - predicate:(ss_item_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_93] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk"] - <-Reducer 50 [CONTAINS] - Reduce Output Operator [RS_345] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_344] (rows=609832849 width=108) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_319] (rows=174233858 width=135) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 49 [SIMPLE_EDGE] - SHUFFLE [RS_318] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_317] (rows=348467716 width=135) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_870] (rows=348467716 width=135) - Conds:RS_313._col1=RS_314._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_314] - PartitionCols:_col0 - Select Operator [SEL_309] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_816] (rows=462000 width=1436) - predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) - Please refer to the previous TableScan [TS_87] - <-Reducer 48 [SIMPLE_EDGE] - SHUFFLE [RS_313] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_869] (rows=316788826 width=135) - Conds:RS_310._col0=RS_311._col0(Inner),Output:["_col1"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_311] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 98 [SIMPLE_EDGE] - SHUFFLE [RS_310] - PartitionCols:_col0 - Select Operator [SEL_115] (rows=287989836 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_789] (rows=287989836 width=135) - predicate:(cs_item_sk is not null and cs_sold_date_sk is not null) - TableScan [TS_113] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk"] - <-Reducer 53 [CONTAINS] - Reduce Output Operator [RS_345] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_344] (rows=609832849 width=108) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_340] (rows=87121617 width=135) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 52 [SIMPLE_EDGE] - SHUFFLE [RS_339] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_338] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_872] (rows=174243235 width=135) - Conds:RS_334._col1=RS_335._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_335] - PartitionCols:_col0 - Select Operator [SEL_330] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_819] (rows=462000 width=1436) - predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) - Please refer to the previous TableScan [TS_87] - <-Reducer 51 [SIMPLE_EDGE] - SHUFFLE [RS_334] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_871] (rows=158402938 width=135) - Conds:RS_331._col0=RS_332._col0(Inner),Output:["_col1"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_332] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 99 [SIMPLE_EDGE] - SHUFFLE [RS_331] - PartitionCols:_col0 - Select Operator [SEL_136] (rows=144002668 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_792] (rows=144002668 width=135) - predicate:(ws_item_sk is not null and ws_sold_date_sk is not null) - TableScan [TS_134] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk"] - <-Reducer 94 [SIMPLE_EDGE] - SHUFFLE [RS_360] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_866] (rows=316788826 width=135) - Conds:RS_357._col0=RS_358._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 93 [SIMPLE_EDGE] - SHUFFLE [RS_358] - PartitionCols:_col0 - Select Operator [SEL_86] (rows=18262 width=1119) - Output:["_col0"] - Filter Operator [FIL_783] (rows=18262 width=1119) - predicate:((d_year = 2000) and (d_moy = 11) and d_date_sk is not null) - TableScan [TS_84] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] - <-Map 100 [SIMPLE_EDGE] - SHUFFLE [RS_357] - PartitionCols:_col0 - Select Operator [SEL_271] (rows=287989836 width=135) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_807] (rows=287989836 width=135) - predicate:(cs_item_sk is not null and cs_sold_date_sk is not null) - TableScan [TS_269] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk","cs_quantity","cs_list_price"] - <-Reducer 16 [CONTAINS] + Merge Join Operator [MERGEJOIN_847] (rows=158402938 width=135) + Conds:RS_27._col0=RS_28._col0(Inner),Output:["_col1"] + <-Map 87 [SIMPLE_EDGE] + SHUFFLE [RS_28] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_26] + <-Map 83 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col0 + Select Operator [SEL_23] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_774] (rows=144002668 width=135) + predicate:ws_sold_date_sk is not null + TableScan [TS_21] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_quantity"] + <-Reducer 48 [CONTAINS] Reduce Output Operator [RS_568] PartitionCols:_col0, _col1, _col2, _col3, _col4 Group By Operator [GBY_567] (rows=2032776160 width=405) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col1, _col2, _col3, 0 - Select Operator [SEL_564] (rows=58081078 width=432) + Select Operator [SEL_375] (rows=116155905 width=432) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_563] (rows=58081078 width=432) + Filter Operator [FIL_374] (rows=116155905 width=432) predicate:(_col5 > _col1) - Merge Join Operator [MERGEJOIN_892] (rows=174243235 width=432) + Merge Join Operator [MERGEJOIN_895] (rows=348467716 width=432) Conds:(Inner),(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] - <-Reducer 15 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_559] - Select Operator [SEL_420] (rows=1 width=8) - Filter Operator [FIL_419] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_417] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_412] (rows=1 width=8) - Group By Operator [GBY_411] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Union 14 [CUSTOM_SIMPLE_EDGE] - <-Reducer 13 [CONTAINS] - Reduce Output Operator [RS_410] - Group By Operator [GBY_409] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_408] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_386] (rows=633595212 width=88) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_875] (rows=633595212 width=88) - Conds:RS_383._col0=RS_384._col0(Inner),Output:["_col1"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_384] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_383] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_2] - <-Reducer 75 [CONTAINS] - Reduce Output Operator [RS_410] - Group By Operator [GBY_409] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_408] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_396] (rows=316788826 width=135) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_876] (rows=316788826 width=135) - Conds:RS_393._col0=RS_394._col0(Inner),Output:["_col1"] - <-Map 76 [SIMPLE_EDGE] - SHUFFLE [RS_394] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_15] - <-Map 72 [SIMPLE_EDGE] - SHUFFLE [RS_393] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_12] - <-Reducer 83 [CONTAINS] - Reduce Output Operator [RS_410] - Group By Operator [GBY_409] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_408] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_407] (rows=158402938 width=135) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_877] (rows=158402938 width=135) - Conds:RS_404._col0=RS_405._col0(Inner),Output:["_col1"] - <-Map 84 [SIMPLE_EDGE] - SHUFFLE [RS_405] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_26] - <-Map 80 [SIMPLE_EDGE] - SHUFFLE [RS_404] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_23] - <-Reducer 56 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_560] - Group By Operator [GBY_456] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(VALUE._col0)"] - <-Union 55 [CUSTOM_SIMPLE_EDGE] - <-Reducer 54 [CONTAINS] - Reduce Output Operator [RS_455] - Group By Operator [GBY_454] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(_col0)"] - Select Operator [SEL_452] (rows=1108786976 width=108) + <-Select Operator [SEL_899] + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 37 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_371] + Group By Operator [GBY_267] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(VALUE._col0)"] + <-Union 36 [CUSTOM_SIMPLE_EDGE] + <-Reducer 35 [CONTAINS] + Reduce Output Operator [RS_266] + Group By Operator [GBY_265] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(_col0)"] + Select Operator [SEL_263] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_241] (rows=633595212 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_863] (rows=633595212 width=88) + Conds:RS_238._col0=RS_239._col0(Inner),Output:["_col1","_col2"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_239] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 91 [SIMPLE_EDGE] + SHUFFLE [RS_238] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_46] + <-Reducer 81 [CONTAINS] + Reduce Output Operator [RS_266] + Group By Operator [GBY_265] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(_col0)"] + Select Operator [SEL_263] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_251] (rows=316788826 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_864] (rows=316788826 width=135) + Conds:RS_248._col0=RS_249._col0(Inner),Output:["_col1","_col2"] + <-Map 79 [SIMPLE_EDGE] + SHUFFLE [RS_249] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_15] + <-Map 92 [SIMPLE_EDGE] + SHUFFLE [RS_248] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_56] + <-Reducer 89 [CONTAINS] + Reduce Output Operator [RS_266] + Group By Operator [GBY_265] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(_col0)"] + Select Operator [SEL_263] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_262] (rows=158402938 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_865] (rows=158402938 width=135) + Conds:RS_259._col0=RS_260._col0(Inner),Output:["_col1","_col2"] + <-Map 87 [SIMPLE_EDGE] + SHUFFLE [RS_260] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_26] + <-Map 93 [SIMPLE_EDGE] + SHUFFLE [RS_259] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_67] + <-Reducer 47 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_372] + Group By Operator [GBY_368] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 46 [SIMPLE_EDGE] + SHUFFLE [RS_367] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_366] (rows=696935432 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 + Select Operator [SEL_364] (rows=696935432 width=135) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_874] (rows=696935432 width=135) + Conds:RS_360._col1=RS_361._col0(Inner),RS_360._col1=RS_362._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_361] + PartitionCols:_col0 + Select Operator [SEL_277] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_809] (rows=462000 width=1436) + predicate:i_item_sk is not null + Please refer to the previous TableScan [TS_87] + <-Reducer 45 [SIMPLE_EDGE] + SHUFFLE [RS_362] + PartitionCols:_col0 + Group By Operator [GBY_355] (rows=254100 width=1436) + Output:["_col0"],keys:KEY._col0 + <-Reducer 44 [SIMPLE_EDGE] + SHUFFLE [RS_354] + PartitionCols:_col0 + Group By Operator [GBY_353] (rows=508200 width=1436) + Output:["_col0"],keys:_col0 + Merge Join Operator [MERGEJOIN_873] (rows=508200 width=1436) + Conds:RS_349._col1, _col2, _col3=RS_350._col0, _col1, _col2(Inner),Output:["_col0"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_349] + PartitionCols:_col1, _col2, _col3 + Select Operator [SEL_280] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_810] (rows=462000 width=1436) + predicate:(i_brand_id is not null and i_class_id is not null and i_category_id is not null and i_item_sk is not null) + Please refer to the previous TableScan [TS_87] + <-Reducer 43 [SIMPLE_EDGE] + SHUFFLE [RS_350] + PartitionCols:_col0, _col1, _col2 + Select Operator [SEL_348] (rows=1 width=108) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_347] (rows=1 width=108) + predicate:(_col3 = 3) + Group By Operator [GBY_346] (rows=304916424 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 42 [SIMPLE_EDGE] + <-Reducer 41 [CONTAINS] + Reduce Output Operator [RS_345] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_344] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_299] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 40 [SIMPLE_EDGE] + SHUFFLE [RS_298] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_297] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_868] (rows=696954748 width=88) + Conds:RS_293._col1=RS_294._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_294] + PartitionCols:_col0 + Select Operator [SEL_289] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_813] (rows=462000 width=1436) + predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) + Please refer to the previous TableScan [TS_87] + <-Reducer 39 [SIMPLE_EDGE] + SHUFFLE [RS_293] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_867] (rows=633595212 width=88) + Conds:RS_290._col0=RS_291._col0(Inner),Output:["_col1"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_291] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 100 [SIMPLE_EDGE] + SHUFFLE [RS_290] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_95] + <-Reducer 51 [CONTAINS] + Reduce Output Operator [RS_345] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_344] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_319] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 50 [SIMPLE_EDGE] + SHUFFLE [RS_318] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_317] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_870] (rows=348467716 width=135) + Conds:RS_313._col1=RS_314._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_314] + PartitionCols:_col0 + Select Operator [SEL_309] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_816] (rows=462000 width=1436) + predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) + Please refer to the previous TableScan [TS_87] + <-Reducer 49 [SIMPLE_EDGE] + SHUFFLE [RS_313] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_869] (rows=316788826 width=135) + Conds:RS_310._col0=RS_311._col0(Inner),Output:["_col1"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_311] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 101 [SIMPLE_EDGE] + SHUFFLE [RS_310] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_115] + <-Reducer 54 [CONTAINS] + Reduce Output Operator [RS_345] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_344] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_340] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 53 [SIMPLE_EDGE] + SHUFFLE [RS_339] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_338] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_872] (rows=174243235 width=135) + Conds:RS_334._col1=RS_335._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_335] + PartitionCols:_col0 + Select Operator [SEL_330] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_819] (rows=462000 width=1436) + predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) + Please refer to the previous TableScan [TS_87] + <-Reducer 52 [SIMPLE_EDGE] + SHUFFLE [RS_334] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_871] (rows=158402938 width=135) + Conds:RS_331._col0=RS_332._col0(Inner),Output:["_col1"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_332] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 102 [SIMPLE_EDGE] + SHUFFLE [RS_331] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_136] + <-Reducer 97 [SIMPLE_EDGE] + SHUFFLE [RS_360] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_866] (rows=316788826 width=135) + Conds:RS_357._col0=RS_358._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 96 [SIMPLE_EDGE] + SHUFFLE [RS_358] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_86] + <-Map 103 [SIMPLE_EDGE] + SHUFFLE [RS_357] + PartitionCols:_col0 + Select Operator [SEL_271] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_807] (rows=287989836 width=135) + predicate:(cs_item_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_269] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk","cs_quantity","cs_list_price"] + <-Union 6 [CUSTOM_SIMPLE_EDGE] + <-Reducer 5 [CONTAINS] + Reduce Output Operator [RS_221] + Group By Operator [GBY_220] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_219] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_197] (rows=633595212 width=88) Output:["_col0"] - Select Operator [SEL_430] (rows=633595212 width=88) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_878] (rows=633595212 width=88) - Conds:RS_427._col0=RS_428._col0(Inner),Output:["_col1","_col2"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_428] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 88 [SIMPLE_EDGE] - SHUFFLE [RS_427] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_46] - <-Reducer 79 [CONTAINS] - Reduce Output Operator [RS_455] - Group By Operator [GBY_454] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(_col0)"] - Select Operator [SEL_452] (rows=1108786976 width=108) + Merge Join Operator [MERGEJOIN_860] (rows=633595212 width=88) + Conds:RS_194._col0=RS_195._col0(Inner),Output:["_col1"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_195] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_194] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_2] + <-Reducer 77 [CONTAINS] + Reduce Output Operator [RS_221] + Group By Operator [GBY_220] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_219] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_207] (rows=316788826 width=135) Output:["_col0"] - Select Operator [SEL_440] (rows=316788826 width=135) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_879] (rows=316788826 width=135) - Conds:RS_437._col0=RS_438._col0(Inner),Output:["_col1","_col2"] - <-Map 76 [SIMPLE_EDGE] - SHUFFLE [RS_438] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_15] - <-Map 89 [SIMPLE_EDGE] - SHUFFLE [RS_437] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_56] - <-Reducer 87 [CONTAINS] - Reduce Output Operator [RS_455] - Group By Operator [GBY_454] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(_col0)"] - Select Operator [SEL_452] (rows=1108786976 width=108) + Merge Join Operator [MERGEJOIN_861] (rows=316788826 width=135) + Conds:RS_204._col0=RS_205._col0(Inner),Output:["_col1"] + <-Map 79 [SIMPLE_EDGE] + SHUFFLE [RS_205] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_15] + <-Map 75 [SIMPLE_EDGE] + SHUFFLE [RS_204] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_12] + <-Reducer 85 [CONTAINS] + Reduce Output Operator [RS_221] + Group By Operator [GBY_220] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_219] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_218] (rows=158402938 width=135) Output:["_col0"] - Select Operator [SEL_451] (rows=158402938 width=135) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_880] (rows=158402938 width=135) - Conds:RS_448._col0=RS_449._col0(Inner),Output:["_col1","_col2"] - <-Map 84 [SIMPLE_EDGE] - SHUFFLE [RS_449] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_26] - <-Map 90 [SIMPLE_EDGE] - SHUFFLE [RS_448] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_67] - <-Reducer 65 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_561] - Group By Operator [GBY_557] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 64 [SIMPLE_EDGE] - SHUFFLE [RS_556] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_555] (rows=348486471 width=135) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 - Select Operator [SEL_553] (rows=348486471 width=135) - Output:["_col0","_col1","_col2","_col3"] - Merge Join Operator [MERGEJOIN_889] (rows=348486471 width=135) - Conds:RS_549._col1=RS_550._col0(Inner),RS_549._col1=RS_551._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_550] - PartitionCols:_col0 - Select Operator [SEL_466] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_834] (rows=462000 width=1436) - predicate:i_item_sk is not null - Please refer to the previous TableScan [TS_87] - <-Reducer 63 [SIMPLE_EDGE] - SHUFFLE [RS_551] - PartitionCols:_col0 - Group By Operator [GBY_544] (rows=254100 width=1436) - Output:["_col0"],keys:KEY._col0 - <-Reducer 62 [SIMPLE_EDGE] - SHUFFLE [RS_543] - PartitionCols:_col0 - Group By Operator [GBY_542] (rows=508200 width=1436) - Output:["_col0"],keys:_col0 - Merge Join Operator [MERGEJOIN_888] (rows=508200 width=1436) - Conds:RS_538._col1, _col2, _col3=RS_539._col0, _col1, _col2(Inner),Output:["_col0"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_538] - PartitionCols:_col1, _col2, _col3 - Select Operator [SEL_469] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_835] (rows=462000 width=1436) - predicate:(i_brand_id is not null and i_class_id is not null and i_category_id is not null and i_item_sk is not null) - Please refer to the previous TableScan [TS_87] - <-Reducer 61 [SIMPLE_EDGE] - SHUFFLE [RS_539] - PartitionCols:_col0, _col1, _col2 - Select Operator [SEL_537] (rows=1 width=108) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_536] (rows=1 width=108) - predicate:(_col3 = 3) - Group By Operator [GBY_535] (rows=304916424 width=108) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Union 60 [SIMPLE_EDGE] - <-Reducer 59 [CONTAINS] - Reduce Output Operator [RS_534] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_533] (rows=609832849 width=108) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_488] (rows=348477374 width=88) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 58 [SIMPLE_EDGE] - SHUFFLE [RS_487] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_486] (rows=696954748 width=88) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_883] (rows=696954748 width=88) - Conds:RS_482._col1=RS_483._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_483] - PartitionCols:_col0 - Select Operator [SEL_478] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_838] (rows=462000 width=1436) - predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) - Please refer to the previous TableScan [TS_87] - <-Reducer 57 [SIMPLE_EDGE] - SHUFFLE [RS_482] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_882] (rows=633595212 width=88) - Conds:RS_479._col0=RS_480._col0(Inner),Output:["_col1"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_480] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 97 [SIMPLE_EDGE] - SHUFFLE [RS_479] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_95] - <-Reducer 68 [CONTAINS] - Reduce Output Operator [RS_534] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_533] (rows=609832849 width=108) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_508] (rows=174233858 width=135) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 67 [SIMPLE_EDGE] - SHUFFLE [RS_507] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_506] (rows=348467716 width=135) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_885] (rows=348467716 width=135) - Conds:RS_502._col1=RS_503._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_503] - PartitionCols:_col0 - Select Operator [SEL_498] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_841] (rows=462000 width=1436) - predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) - Please refer to the previous TableScan [TS_87] - <-Reducer 66 [SIMPLE_EDGE] - SHUFFLE [RS_502] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_884] (rows=316788826 width=135) - Conds:RS_499._col0=RS_500._col0(Inner),Output:["_col1"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_500] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 98 [SIMPLE_EDGE] - SHUFFLE [RS_499] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_115] - <-Reducer 71 [CONTAINS] - Reduce Output Operator [RS_534] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_533] (rows=609832849 width=108) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_529] (rows=87121617 width=135) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 70 [SIMPLE_EDGE] - SHUFFLE [RS_528] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_527] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_887] (rows=174243235 width=135) - Conds:RS_523._col1=RS_524._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_524] - PartitionCols:_col0 - Select Operator [SEL_519] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_844] (rows=462000 width=1436) - predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) - Please refer to the previous TableScan [TS_87] - <-Reducer 69 [SIMPLE_EDGE] - SHUFFLE [RS_523] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_886] (rows=158402938 width=135) - Conds:RS_520._col0=RS_521._col0(Inner),Output:["_col1"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_521] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 99 [SIMPLE_EDGE] - SHUFFLE [RS_520] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_136] - <-Reducer 95 [SIMPLE_EDGE] - SHUFFLE [RS_549] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_881] (rows=158402938 width=135) - Conds:RS_546._col0=RS_547._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 93 [SIMPLE_EDGE] - SHUFFLE [RS_547] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_86] - <-Map 101 [SIMPLE_EDGE] - SHUFFLE [RS_546] - PartitionCols:_col0 - Select Operator [SEL_460] (rows=144002668 width=135) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_832] (rows=144002668 width=135) - predicate:(ws_item_sk is not null and ws_sold_date_sk is not null) - TableScan [TS_458] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_quantity","ws_list_price"] - <-Reducer 5 [CONTAINS] + Merge Join Operator [MERGEJOIN_862] (rows=158402938 width=135) + Conds:RS_215._col0=RS_216._col0(Inner),Output:["_col1"] + <-Map 87 [SIMPLE_EDGE] + SHUFFLE [RS_216] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_26] + <-Map 83 [SIMPLE_EDGE] + SHUFFLE [RS_215] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_23] + <-Reducer 68 [CONTAINS] Reduce Output Operator [RS_568] PartitionCols:_col0, _col1, _col2, _col3, _col4 Group By Operator [GBY_567] (rows=2032776160 width=405) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col1, _col2, _col3, 0 - Select Operator [SEL_187] (rows=232318249 width=385) + Select Operator [SEL_564] (rows=58081078 width=432) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_186] (rows=232318249 width=385) + Filter Operator [FIL_563] (rows=58081078 width=432) predicate:(_col5 > _col1) - Merge Join Operator [MERGEJOIN_890] (rows=696954748 width=385) + Merge Join Operator [MERGEJOIN_900] (rows=174243235 width=432) Conds:(Inner),(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] - <-Reducer 20 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_183] - Group By Operator [GBY_79] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(VALUE._col0)"] - <-Union 19 [CUSTOM_SIMPLE_EDGE] - <-Reducer 18 [CONTAINS] - Reduce Output Operator [RS_78] - Group By Operator [GBY_77] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(_col0)"] - Select Operator [SEL_75] (rows=1108786976 width=108) + <-Select Operator [SEL_904] + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 57 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_560] + Group By Operator [GBY_456] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(VALUE._col0)"] + <-Union 56 [CUSTOM_SIMPLE_EDGE] + <-Reducer 55 [CONTAINS] + Reduce Output Operator [RS_455] + Group By Operator [GBY_454] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(_col0)"] + Select Operator [SEL_452] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_430] (rows=633595212 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_878] (rows=633595212 width=88) + Conds:RS_427._col0=RS_428._col0(Inner),Output:["_col1","_col2"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_428] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 91 [SIMPLE_EDGE] + SHUFFLE [RS_427] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_46] + <-Reducer 82 [CONTAINS] + Reduce Output Operator [RS_455] + Group By Operator [GBY_454] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(_col0)"] + Select Operator [SEL_452] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_440] (rows=316788826 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_879] (rows=316788826 width=135) + Conds:RS_437._col0=RS_438._col0(Inner),Output:["_col1","_col2"] + <-Map 79 [SIMPLE_EDGE] + SHUFFLE [RS_438] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_15] + <-Map 92 [SIMPLE_EDGE] + SHUFFLE [RS_437] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_56] + <-Reducer 90 [CONTAINS] + Reduce Output Operator [RS_455] + Group By Operator [GBY_454] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(_col0)"] + Select Operator [SEL_452] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_451] (rows=158402938 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_880] (rows=158402938 width=135) + Conds:RS_448._col0=RS_449._col0(Inner),Output:["_col1","_col2"] + <-Map 87 [SIMPLE_EDGE] + SHUFFLE [RS_449] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_26] + <-Map 93 [SIMPLE_EDGE] + SHUFFLE [RS_448] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_67] + <-Reducer 67 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_561] + Group By Operator [GBY_557] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 66 [SIMPLE_EDGE] + SHUFFLE [RS_556] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_555] (rows=348486471 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 + Select Operator [SEL_553] (rows=348486471 width=135) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_889] (rows=348486471 width=135) + Conds:RS_549._col1=RS_550._col0(Inner),RS_549._col1=RS_551._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_550] + PartitionCols:_col0 + Select Operator [SEL_466] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_834] (rows=462000 width=1436) + predicate:i_item_sk is not null + Please refer to the previous TableScan [TS_87] + <-Reducer 65 [SIMPLE_EDGE] + SHUFFLE [RS_551] + PartitionCols:_col0 + Group By Operator [GBY_544] (rows=254100 width=1436) + Output:["_col0"],keys:KEY._col0 + <-Reducer 64 [SIMPLE_EDGE] + SHUFFLE [RS_543] + PartitionCols:_col0 + Group By Operator [GBY_542] (rows=508200 width=1436) + Output:["_col0"],keys:_col0 + Merge Join Operator [MERGEJOIN_888] (rows=508200 width=1436) + Conds:RS_538._col1, _col2, _col3=RS_539._col0, _col1, _col2(Inner),Output:["_col0"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_538] + PartitionCols:_col1, _col2, _col3 + Select Operator [SEL_469] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_835] (rows=462000 width=1436) + predicate:(i_brand_id is not null and i_class_id is not null and i_category_id is not null and i_item_sk is not null) + Please refer to the previous TableScan [TS_87] + <-Reducer 63 [SIMPLE_EDGE] + SHUFFLE [RS_539] + PartitionCols:_col0, _col1, _col2 + Select Operator [SEL_537] (rows=1 width=108) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_536] (rows=1 width=108) + predicate:(_col3 = 3) + Group By Operator [GBY_535] (rows=304916424 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 62 [SIMPLE_EDGE] + <-Reducer 61 [CONTAINS] + Reduce Output Operator [RS_534] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_533] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_488] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 60 [SIMPLE_EDGE] + SHUFFLE [RS_487] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_486] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_883] (rows=696954748 width=88) + Conds:RS_482._col1=RS_483._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_483] + PartitionCols:_col0 + Select Operator [SEL_478] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_838] (rows=462000 width=1436) + predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) + Please refer to the previous TableScan [TS_87] + <-Reducer 59 [SIMPLE_EDGE] + SHUFFLE [RS_482] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_882] (rows=633595212 width=88) + Conds:RS_479._col0=RS_480._col0(Inner),Output:["_col1"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_480] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 100 [SIMPLE_EDGE] + SHUFFLE [RS_479] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_95] + <-Reducer 71 [CONTAINS] + Reduce Output Operator [RS_534] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_533] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_508] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 70 [SIMPLE_EDGE] + SHUFFLE [RS_507] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_506] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_885] (rows=348467716 width=135) + Conds:RS_502._col1=RS_503._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_503] + PartitionCols:_col0 + Select Operator [SEL_498] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_841] (rows=462000 width=1436) + predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) + Please refer to the previous TableScan [TS_87] + <-Reducer 69 [SIMPLE_EDGE] + SHUFFLE [RS_502] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_884] (rows=316788826 width=135) + Conds:RS_499._col0=RS_500._col0(Inner),Output:["_col1"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_500] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 101 [SIMPLE_EDGE] + SHUFFLE [RS_499] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_115] + <-Reducer 74 [CONTAINS] + Reduce Output Operator [RS_534] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_533] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_529] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 73 [SIMPLE_EDGE] + SHUFFLE [RS_528] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_527] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_887] (rows=174243235 width=135) + Conds:RS_523._col1=RS_524._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 99 [SIMPLE_EDGE] + SHUFFLE [RS_524] + PartitionCols:_col0 + Select Operator [SEL_519] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_844] (rows=462000 width=1436) + predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) + Please refer to the previous TableScan [TS_87] + <-Reducer 72 [SIMPLE_EDGE] + SHUFFLE [RS_523] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_886] (rows=158402938 width=135) + Conds:RS_520._col0=RS_521._col0(Inner),Output:["_col1"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_521] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 102 [SIMPLE_EDGE] + SHUFFLE [RS_520] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_136] + <-Reducer 98 [SIMPLE_EDGE] + SHUFFLE [RS_549] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_881] (rows=158402938 width=135) + Conds:RS_546._col0=RS_547._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 96 [SIMPLE_EDGE] + SHUFFLE [RS_547] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_86] + <-Map 104 [SIMPLE_EDGE] + SHUFFLE [RS_546] + PartitionCols:_col0 + Select Operator [SEL_460] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_832] (rows=144002668 width=135) + predicate:(ws_item_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_458] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_quantity","ws_list_price"] + <-Union 9 [CUSTOM_SIMPLE_EDGE] + <-Reducer 78 [CONTAINS] + Reduce Output Operator [RS_410] + Group By Operator [GBY_409] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_408] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_396] (rows=316788826 width=135) Output:["_col0"] - Select Operator [SEL_53] (rows=633595212 width=88) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_848] (rows=633595212 width=88) - Conds:RS_50._col0=RS_51._col0(Inner),Output:["_col1","_col2"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_51] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 88 [SIMPLE_EDGE] - SHUFFLE [RS_50] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_46] - <-Reducer 77 [CONTAINS] - Reduce Output Operator [RS_78] - Group By Operator [GBY_77] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(_col0)"] - Select Operator [SEL_75] (rows=1108786976 width=108) + Merge Join Operator [MERGEJOIN_876] (rows=316788826 width=135) + Conds:RS_393._col0=RS_394._col0(Inner),Output:["_col1"] + <-Map 79 [SIMPLE_EDGE] + SHUFFLE [RS_394] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_15] + <-Map 75 [SIMPLE_EDGE] + SHUFFLE [RS_393] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_12] + <-Reducer 8 [CONTAINS] + Reduce Output Operator [RS_410] + Group By Operator [GBY_409] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_408] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_386] (rows=633595212 width=88) Output:["_col0"] - Select Operator [SEL_63] (rows=316788826 width=135) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_849] (rows=316788826 width=135) - Conds:RS_60._col0=RS_61._col0(Inner),Output:["_col1","_col2"] - <-Map 76 [SIMPLE_EDGE] - SHUFFLE [RS_61] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_15] - <-Map 89 [SIMPLE_EDGE] - SHUFFLE [RS_60] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_56] - <-Reducer 85 [CONTAINS] - Reduce Output Operator [RS_78] - Group By Operator [GBY_77] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(_col0)"] - Select Operator [SEL_75] (rows=1108786976 width=108) + Merge Join Operator [MERGEJOIN_875] (rows=633595212 width=88) + Conds:RS_383._col0=RS_384._col0(Inner),Output:["_col1"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_384] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_383] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_2] + <-Reducer 86 [CONTAINS] + Reduce Output Operator [RS_410] + Group By Operator [GBY_409] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_408] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_407] (rows=158402938 width=135) Output:["_col0"] - Select Operator [SEL_74] (rows=158402938 width=135) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_850] (rows=158402938 width=135) - Conds:RS_71._col0=RS_72._col0(Inner),Output:["_col1","_col2"] - <-Map 84 [SIMPLE_EDGE] - SHUFFLE [RS_72] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_26] - <-Map 90 [SIMPLE_EDGE] - SHUFFLE [RS_71] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_67] - <-Reducer 29 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_184] - Group By Operator [GBY_180] (rows=696954748 width=88) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 28 [SIMPLE_EDGE] - SHUFFLE [RS_179] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_178] (rows=1393909496 width=88) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 - Select Operator [SEL_176] (rows=1393909496 width=88) - Output:["_col0","_col1","_col2","_col3"] - Merge Join Operator [MERGEJOIN_859] (rows=1393909496 width=88) - Conds:RS_172._col1=RS_173._col0(Inner),RS_172._col1=RS_174._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_173] - PartitionCols:_col0 - Select Operator [SEL_89] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_784] (rows=462000 width=1436) - predicate:i_item_sk is not null - Please refer to the previous TableScan [TS_87] - <-Reducer 27 [SIMPLE_EDGE] - SHUFFLE [RS_174] - PartitionCols:_col0 - Group By Operator [GBY_167] (rows=254100 width=1436) - Output:["_col0"],keys:KEY._col0 - <-Reducer 26 [SIMPLE_EDGE] - SHUFFLE [RS_166] - PartitionCols:_col0 - Group By Operator [GBY_165] (rows=508200 width=1436) - Output:["_col0"],keys:_col0 - Merge Join Operator [MERGEJOIN_858] (rows=508200 width=1436) - Conds:RS_161._col1, _col2, _col3=RS_162._col0, _col1, _col2(Inner),Output:["_col0"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_161] - PartitionCols:_col1, _col2, _col3 - Select Operator [SEL_92] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_785] (rows=462000 width=1436) - predicate:(i_brand_id is not null and i_class_id is not null and i_category_id is not null and i_item_sk is not null) - Please refer to the previous TableScan [TS_87] - <-Reducer 25 [SIMPLE_EDGE] - SHUFFLE [RS_162] - PartitionCols:_col0, _col1, _col2 - Select Operator [SEL_160] (rows=1 width=108) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_159] (rows=1 width=108) - predicate:(_col3 = 3) - Group By Operator [GBY_158] (rows=304916424 width=108) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Union 24 [SIMPLE_EDGE] - <-Reducer 23 [CONTAINS] - Reduce Output Operator [RS_157] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_156] (rows=609832849 width=108) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_111] (rows=348477374 width=88) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 22 [SIMPLE_EDGE] - SHUFFLE [RS_110] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_109] (rows=696954748 width=88) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_853] (rows=696954748 width=88) - Conds:RS_105._col1=RS_106._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_106] - PartitionCols:_col0 - Select Operator [SEL_101] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_788] (rows=462000 width=1436) - predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) - Please refer to the previous TableScan [TS_87] - <-Reducer 21 [SIMPLE_EDGE] - SHUFFLE [RS_105] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_852] (rows=633595212 width=88) - Conds:RS_102._col0=RS_103._col0(Inner),Output:["_col1"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_103] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 97 [SIMPLE_EDGE] - SHUFFLE [RS_102] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_95] - <-Reducer 32 [CONTAINS] - Reduce Output Operator [RS_157] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_156] (rows=609832849 width=108) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_131] (rows=174233858 width=135) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 31 [SIMPLE_EDGE] - SHUFFLE [RS_130] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_129] (rows=348467716 width=135) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_855] (rows=348467716 width=135) - Conds:RS_125._col1=RS_126._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_126] - PartitionCols:_col0 - Select Operator [SEL_121] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_791] (rows=462000 width=1436) - predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) - Please refer to the previous TableScan [TS_87] - <-Reducer 30 [SIMPLE_EDGE] - SHUFFLE [RS_125] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_854] (rows=316788826 width=135) - Conds:RS_122._col0=RS_123._col0(Inner),Output:["_col1"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_123] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 98 [SIMPLE_EDGE] - SHUFFLE [RS_122] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_115] - <-Reducer 35 [CONTAINS] - Reduce Output Operator [RS_157] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_156] (rows=609832849 width=108) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_152] (rows=87121617 width=135) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 34 [SIMPLE_EDGE] - SHUFFLE [RS_151] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_150] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_857] (rows=174243235 width=135) - Conds:RS_146._col1=RS_147._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 96 [SIMPLE_EDGE] - SHUFFLE [RS_147] - PartitionCols:_col0 - Select Operator [SEL_142] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_794] (rows=462000 width=1436) - predicate:(i_item_sk is not null and i_brand_id is not null and i_class_id is not null and i_category_id is not null) - Please refer to the previous TableScan [TS_87] - <-Reducer 33 [SIMPLE_EDGE] - SHUFFLE [RS_146] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_856] (rows=158402938 width=135) - Conds:RS_143._col0=RS_144._col0(Inner),Output:["_col1"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_144] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 99 [SIMPLE_EDGE] - SHUFFLE [RS_143] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_136] - <-Reducer 92 [SIMPLE_EDGE] - SHUFFLE [RS_172] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_851] (rows=633595212 width=88) - Conds:RS_169._col0=RS_170._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 93 [SIMPLE_EDGE] - SHUFFLE [RS_170] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_86] - <-Map 91 [SIMPLE_EDGE] - SHUFFLE [RS_169] - PartitionCols:_col0 - Select Operator [SEL_83] (rows=575995635 width=88) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_782] (rows=575995635 width=88) - predicate:(ss_item_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_81] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_quantity","ss_list_price"] - <-Reducer 4 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_182] - Select Operator [SEL_43] (rows=1 width=8) - Filter Operator [FIL_42] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_40] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_35] (rows=1 width=8) - Group By Operator [GBY_34] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Union 3 [CUSTOM_SIMPLE_EDGE] - <-Reducer 2 [CONTAINS] - Reduce Output Operator [RS_33] - Group By Operator [GBY_32] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_31] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_9] (rows=633595212 width=88) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_845] (rows=633595212 width=88) - Conds:RS_6._col0=RS_7._col0(Inner),Output:["_col1"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_7] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_6] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_2] - <-Reducer 73 [CONTAINS] - Reduce Output Operator [RS_33] - Group By Operator [GBY_32] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_31] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_19] (rows=316788826 width=135) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_846] (rows=316788826 width=135) - Conds:RS_16._col0=RS_17._col0(Inner),Output:["_col1"] - <-Map 76 [SIMPLE_EDGE] - SHUFFLE [RS_17] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_15] - <-Map 72 [SIMPLE_EDGE] - SHUFFLE [RS_16] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_12] - <-Reducer 81 [CONTAINS] - Reduce Output Operator [RS_33] - Group By Operator [GBY_32] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_31] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_30] (rows=158402938 width=135) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_847] (rows=158402938 width=135) - Conds:RS_27._col0=RS_28._col0(Inner),Output:["_col1"] - <-Map 84 [SIMPLE_EDGE] - SHUFFLE [RS_28] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_26] - <-Map 80 [SIMPLE_EDGE] - SHUFFLE [RS_27] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_23] + Merge Join Operator [MERGEJOIN_877] (rows=158402938 width=135) + Conds:RS_404._col0=RS_405._col0(Inner),Output:["_col1"] + <-Map 87 [SIMPLE_EDGE] + SHUFFLE [RS_405] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_26] + <-Map 83 [SIMPLE_EDGE] + SHUFFLE [RS_404] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_23] diff --git ql/src/test/results/clientpositive/perf/query23.q.out ql/src/test/results/clientpositive/perf/query23.q.out index ebd2271..df9c823 100644 --- ql/src/test/results/clientpositive/perf/query23.q.out +++ ql/src/test/results/clientpositive/perf/query23.q.out @@ -1,5 +1,3 @@ -Warning: Shuffle Join MERGEJOIN[367][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 25' is a cross product -Warning: Shuffle Join MERGEJOIN[369][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 30' is a cross product PREHOOK: query: explain with frequent_ss_items as (select substr(i_item_desc,1,30) itemdesc,i_item_sk item_sk,d_date solddate,count(*) cnt @@ -105,7 +103,7 @@ POSTHOOK: type: QUERY Plan optimized by CBO. Vertex dependency in root stage -Reducer 10 <- Reducer 30 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 10 <- Reducer 28 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE), Union 5 (CONTAINS) Reducer 12 <- Map 11 (SIMPLE_EDGE), Map 18 (SIMPLE_EDGE) Reducer 13 <- Map 19 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) Reducer 14 <- Reducer 13 (SIMPLE_EDGE) @@ -113,32 +111,30 @@ Reducer 15 <- Map 11 (SIMPLE_EDGE), Map 18 (SIMPLE_EDGE) Reducer 16 <- Map 19 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE) Reducer 17 <- Reducer 16 (SIMPLE_EDGE) Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 21 <- Map 20 (SIMPLE_EDGE), Map 31 (SIMPLE_EDGE) +Reducer 21 <- Map 20 (SIMPLE_EDGE), Map 29 (SIMPLE_EDGE) Reducer 22 <- Map 40 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE) Reducer 23 <- Reducer 22 (SIMPLE_EDGE) -Reducer 24 <- Reducer 23 (CUSTOM_SIMPLE_EDGE) -Reducer 25 <- Reducer 24 (CUSTOM_SIMPLE_EDGE), Reducer 35 (CUSTOM_SIMPLE_EDGE), Reducer 42 (CUSTOM_SIMPLE_EDGE) -Reducer 26 <- Map 20 (SIMPLE_EDGE), Map 31 (SIMPLE_EDGE) -Reducer 27 <- Map 40 (SIMPLE_EDGE), Reducer 26 (SIMPLE_EDGE) -Reducer 28 <- Reducer 27 (SIMPLE_EDGE) -Reducer 29 <- Reducer 28 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Reducer 23 (CUSTOM_SIMPLE_EDGE), Reducer 33 (CUSTOM_SIMPLE_EDGE), Reducer 42 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 20 (SIMPLE_EDGE), Map 29 (SIMPLE_EDGE) +Reducer 26 <- Map 40 (SIMPLE_EDGE), Reducer 25 (SIMPLE_EDGE) +Reducer 27 <- Reducer 26 (SIMPLE_EDGE) +Reducer 28 <- Reducer 27 (CUSTOM_SIMPLE_EDGE), Reducer 38 (CUSTOM_SIMPLE_EDGE), Reducer 45 (CUSTOM_SIMPLE_EDGE) Reducer 3 <- Reducer 14 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 30 <- Reducer 29 (CUSTOM_SIMPLE_EDGE), Reducer 39 (CUSTOM_SIMPLE_EDGE), Reducer 44 (CUSTOM_SIMPLE_EDGE) -Reducer 32 <- Map 31 (SIMPLE_EDGE), Map 45 (SIMPLE_EDGE) -Reducer 33 <- Map 40 (SIMPLE_EDGE), Reducer 32 (SIMPLE_EDGE) -Reducer 34 <- Reducer 33 (SIMPLE_EDGE) -Reducer 35 <- Reducer 34 (CUSTOM_SIMPLE_EDGE) -Reducer 36 <- Map 31 (SIMPLE_EDGE), Map 45 (SIMPLE_EDGE) -Reducer 37 <- Map 40 (SIMPLE_EDGE), Reducer 36 (SIMPLE_EDGE) -Reducer 38 <- Reducer 37 (SIMPLE_EDGE) -Reducer 39 <- Reducer 38 (CUSTOM_SIMPLE_EDGE) -Reducer 4 <- Reducer 25 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE), Union 5 (CONTAINS) -Reducer 41 <- Map 40 (SIMPLE_EDGE), Map 46 (SIMPLE_EDGE) +Reducer 30 <- Map 29 (SIMPLE_EDGE), Map 47 (SIMPLE_EDGE) +Reducer 31 <- Map 40 (SIMPLE_EDGE), Reducer 30 (SIMPLE_EDGE) +Reducer 32 <- Reducer 31 (SIMPLE_EDGE) +Reducer 33 <- Reducer 32 (CUSTOM_SIMPLE_EDGE) +Reducer 35 <- Map 29 (SIMPLE_EDGE), Map 47 (SIMPLE_EDGE) +Reducer 36 <- Map 40 (SIMPLE_EDGE), Reducer 35 (SIMPLE_EDGE) +Reducer 37 <- Reducer 36 (SIMPLE_EDGE) +Reducer 38 <- Reducer 37 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Reducer 24 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 41 <- Map 40 (SIMPLE_EDGE), Map 48 (SIMPLE_EDGE) Reducer 42 <- Reducer 41 (SIMPLE_EDGE) -Reducer 43 <- Map 40 (SIMPLE_EDGE), Map 46 (SIMPLE_EDGE) -Reducer 44 <- Reducer 43 (SIMPLE_EDGE) +Reducer 44 <- Map 40 (SIMPLE_EDGE), Map 48 (SIMPLE_EDGE) +Reducer 45 <- Reducer 44 (SIMPLE_EDGE) Reducer 6 <- Union 5 (CUSTOM_SIMPLE_EDGE) -Reducer 8 <- Map 47 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 8 <- Map 49 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) Reducer 9 <- Reducer 17 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) Stage-0 @@ -158,141 +154,139 @@ Stage-0 Output:["_col0"],aggregations:["sum(_col0)"] Select Operator [SEL_237] (rows=191667562 width=135) Output:["_col0"] - Merge Join Operator [MERGEJOIN_370] (rows=191667562 width=135) + Merge Join Operator [MERGEJOIN_378] (rows=191667562 width=135) Conds:RS_234._col2=RS_235._col0(Inner),Output:["_col3","_col4"] - <-Reducer 30 [SIMPLE_EDGE] + <-Reducer 28 [SIMPLE_EDGE] SHUFFLE [RS_235] PartitionCols:_col0 Select Operator [SEL_227] (rows=105599202 width=321) Output:["_col0"] Filter Operator [FIL_226] (rows=105599202 width=321) predicate:(_col3 > (0.95 * _col1)) - Merge Join Operator [MERGEJOIN_369] (rows=316797606 width=321) + Merge Join Operator [MERGEJOIN_373] (rows=316797606 width=321) Conds:(Inner),(Inner),Output:["_col1","_col2","_col3"] - <-Reducer 29 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_222] - Select Operator [SEL_180] (rows=1 width=8) - Filter Operator [FIL_179] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_177] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 28 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_176] - Group By Operator [GBY_175] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_172] (rows=348477374 width=88) - Group By Operator [GBY_171] (rows=348477374 width=88) - Output:["_col0"],keys:KEY._col0 - <-Reducer 27 [SIMPLE_EDGE] - SHUFFLE [RS_170] - PartitionCols:_col0 - Group By Operator [GBY_169] (rows=696954748 width=88) - Output:["_col0"],keys:_col0 - Select Operator [SEL_167] (rows=696954748 width=88) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_361] (rows=696954748 width=88) - Conds:RS_164._col1=RS_165._col0(Inner),Output:["_col6"] - <-Map 40 [SIMPLE_EDGE] - SHUFFLE [RS_165] - PartitionCols:_col0 - Select Operator [SEL_41] (rows=80000000 width=860) - Output:["_col0"] - Filter Operator [FIL_328] (rows=80000000 width=860) - predicate:c_customer_sk is not null - TableScan [TS_39] (rows=80000000 width=860) - default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk"] - <-Reducer 26 [SIMPLE_EDGE] - SHUFFLE [RS_164] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_360] (rows=633595212 width=88) - Conds:RS_161._col0=RS_162._col0(Inner),Output:["_col1"] - <-Map 31 [SIMPLE_EDGE] - SHUFFLE [RS_162] - PartitionCols:_col0 - Select Operator [SEL_38] (rows=36525 width=1119) - Output:["_col0"] - Filter Operator [FIL_327] (rows=36525 width=1119) - predicate:((d_year) IN (1999, 2000, 2001, 2002) and d_date_sk is not null) - TableScan [TS_36] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_161] - PartitionCols:_col0 - Select Operator [SEL_35] (rows=575995635 width=88) - Output:["_col0","_col1"] - Filter Operator [FIL_326] (rows=575995635 width=88) - predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_33] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk"] - <-Reducer 39 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_223] - Group By Operator [GBY_205] (rows=1 width=224) - Output:["_col0"],aggregations:["max(VALUE._col0)"] - <-Reducer 38 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_204] - Group By Operator [GBY_203] (rows=1 width=224) - Output:["_col0"],aggregations:["max(_col1)"] - Select Operator [SEL_201] (rows=348477374 width=88) - Output:["_col1"] - Group By Operator [GBY_200] (rows=348477374 width=88) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 37 [SIMPLE_EDGE] - SHUFFLE [RS_199] - PartitionCols:_col0 - Group By Operator [GBY_198] (rows=696954748 width=88) - Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 - Select Operator [SEL_196] (rows=696954748 width=88) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_363] (rows=696954748 width=88) - Conds:RS_193._col1=RS_194._col0(Inner),Output:["_col2","_col3","_col6"] - <-Map 40 [SIMPLE_EDGE] - SHUFFLE [RS_194] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_41] - <-Reducer 36 [SIMPLE_EDGE] - SHUFFLE [RS_193] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_362] (rows=633595212 width=88) - Conds:RS_190._col0=RS_191._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 31 [SIMPLE_EDGE] - SHUFFLE [RS_191] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_38] - <-Map 45 [SIMPLE_EDGE] - SHUFFLE [RS_190] - PartitionCols:_col0 - Select Operator [SEL_64] (rows=575995635 width=88) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_329] (rows=575995635 width=88) - predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_62] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_quantity","ss_sales_price"] - <-Reducer 44 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_224] - Group By Operator [GBY_220] (rows=316797606 width=88) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 43 [SIMPLE_EDGE] - SHUFFLE [RS_219] - PartitionCols:_col0 - Group By Operator [GBY_218] (rows=633595212 width=88) - Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 - Select Operator [SEL_216] (rows=633595212 width=88) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_364] (rows=633595212 width=88) - Conds:RS_213._col0=RS_214._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 40 [SIMPLE_EDGE] - SHUFFLE [RS_214] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_41] - <-Map 46 [SIMPLE_EDGE] - SHUFFLE [RS_213] - PartitionCols:_col0 - Select Operator [SEL_90] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_332] (rows=575995635 width=88) - predicate:ss_customer_sk is not null - TableScan [TS_88] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_customer_sk","ss_quantity","ss_sales_price"] + <-Select Operator [SEL_180] (rows=1 width=8) + Filter Operator [FIL_179] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_177] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 27 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_176] + Group By Operator [GBY_175] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_172] (rows=348477374 width=88) + Group By Operator [GBY_171] (rows=348477374 width=88) + Output:["_col0"],keys:KEY._col0 + <-Reducer 26 [SIMPLE_EDGE] + SHUFFLE [RS_170] + PartitionCols:_col0 + Group By Operator [GBY_169] (rows=696954748 width=88) + Output:["_col0"],keys:_col0 + Select Operator [SEL_167] (rows=696954748 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_361] (rows=696954748 width=88) + Conds:RS_164._col1=RS_165._col0(Inner),Output:["_col6"] + <-Map 40 [SIMPLE_EDGE] + SHUFFLE [RS_165] + PartitionCols:_col0 + Select Operator [SEL_41] (rows=80000000 width=860) + Output:["_col0"] + Filter Operator [FIL_328] (rows=80000000 width=860) + predicate:c_customer_sk is not null + TableScan [TS_39] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk"] + <-Reducer 25 [SIMPLE_EDGE] + SHUFFLE [RS_164] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_360] (rows=633595212 width=88) + Conds:RS_161._col0=RS_162._col0(Inner),Output:["_col1"] + <-Map 29 [SIMPLE_EDGE] + SHUFFLE [RS_162] + PartitionCols:_col0 + Select Operator [SEL_38] (rows=36525 width=1119) + Output:["_col0"] + Filter Operator [FIL_327] (rows=36525 width=1119) + predicate:((d_year) IN (1999, 2000, 2001, 2002) and d_date_sk is not null) + TableScan [TS_36] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 20 [SIMPLE_EDGE] + SHUFFLE [RS_161] + PartitionCols:_col0 + Select Operator [SEL_35] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_326] (rows=575995635 width=88) + predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_33] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk"] + <-Reducer 38 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_223] + Group By Operator [GBY_205] (rows=1 width=224) + Output:["_col0"],aggregations:["max(VALUE._col0)"] + <-Reducer 37 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_204] + Group By Operator [GBY_203] (rows=1 width=224) + Output:["_col0"],aggregations:["max(_col1)"] + Select Operator [SEL_201] (rows=348477374 width=88) + Output:["_col1"] + Group By Operator [GBY_200] (rows=348477374 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 36 [SIMPLE_EDGE] + SHUFFLE [RS_199] + PartitionCols:_col0 + Group By Operator [GBY_198] (rows=696954748 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Select Operator [SEL_196] (rows=696954748 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_363] (rows=696954748 width=88) + Conds:RS_193._col1=RS_194._col0(Inner),Output:["_col2","_col3","_col6"] + <-Map 40 [SIMPLE_EDGE] + SHUFFLE [RS_194] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_41] + <-Reducer 35 [SIMPLE_EDGE] + SHUFFLE [RS_193] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_362] (rows=633595212 width=88) + Conds:RS_190._col0=RS_191._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 29 [SIMPLE_EDGE] + SHUFFLE [RS_191] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_38] + <-Map 47 [SIMPLE_EDGE] + SHUFFLE [RS_190] + PartitionCols:_col0 + Select Operator [SEL_64] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_329] (rows=575995635 width=88) + predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_62] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_quantity","ss_sales_price"] + <-Reducer 45 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_224] + Group By Operator [GBY_220] (rows=316797606 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 44 [SIMPLE_EDGE] + SHUFFLE [RS_219] + PartitionCols:_col0 + Group By Operator [GBY_218] (rows=633595212 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Select Operator [SEL_216] (rows=633595212 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_364] (rows=633595212 width=88) + Conds:RS_213._col0=RS_214._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 40 [SIMPLE_EDGE] + SHUFFLE [RS_214] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_41] + <-Map 48 [SIMPLE_EDGE] + SHUFFLE [RS_213] + PartitionCols:_col0 + Select Operator [SEL_90] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_332] (rows=575995635 width=88) + predicate:ss_customer_sk is not null + TableScan [TS_88] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_customer_sk","ss_quantity","ss_sales_price"] <-Reducer 9 [SIMPLE_EDGE] SHUFFLE [RS_234] PartitionCols:_col2 @@ -366,7 +360,7 @@ Stage-0 predicate:((d_year = 1999) and (d_moy = 1) and d_date_sk is not null) TableScan [TS_3] (rows=73049 width=1119) default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] - <-Map 47 [SIMPLE_EDGE] + <-Map 49 [SIMPLE_EDGE] SHUFFLE [RS_228] PartitionCols:_col0 Select Operator [SEL_121] (rows=144002668 width=135) @@ -381,9 +375,9 @@ Stage-0 Output:["_col0"],aggregations:["sum(_col0)"] Select Operator [SEL_118] (rows=383314495 width=135) Output:["_col0"] - Merge Join Operator [MERGEJOIN_368] (rows=383314495 width=135) + Merge Join Operator [MERGEJOIN_372] (rows=383314495 width=135) Conds:RS_115._col1=RS_116._col0(Inner),Output:["_col3","_col4"] - <-Reducer 25 [SIMPLE_EDGE] + <-Reducer 24 [SIMPLE_EDGE] SHUFFLE [RS_116] PartitionCols:_col0 Select Operator [SEL_108] (rows=105599202 width=321) @@ -392,105 +386,103 @@ Stage-0 predicate:(_col3 > (0.95 * _col1)) Merge Join Operator [MERGEJOIN_367] (rows=316797606 width=321) Conds:(Inner),(Inner),Output:["_col1","_col2","_col3"] - <-Reducer 24 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_103] - Select Operator [SEL_61] (rows=1 width=8) - Filter Operator [FIL_60] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_58] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 23 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_57] - Group By Operator [GBY_56] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_53] (rows=348477374 width=88) - Group By Operator [GBY_52] (rows=348477374 width=88) - Output:["_col0"],keys:KEY._col0 - <-Reducer 22 [SIMPLE_EDGE] - SHUFFLE [RS_51] - PartitionCols:_col0 - Group By Operator [GBY_50] (rows=696954748 width=88) - Output:["_col0"],keys:_col0 - Select Operator [SEL_48] (rows=696954748 width=88) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_353] (rows=696954748 width=88) - Conds:RS_45._col1=RS_46._col0(Inner),Output:["_col6"] - <-Map 40 [SIMPLE_EDGE] - SHUFFLE [RS_46] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_41] - <-Reducer 21 [SIMPLE_EDGE] - SHUFFLE [RS_45] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_352] (rows=633595212 width=88) - Conds:RS_42._col0=RS_43._col0(Inner),Output:["_col1"] - <-Map 31 [SIMPLE_EDGE] - SHUFFLE [RS_43] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_38] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_42] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_35] - <-Reducer 35 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_104] - Group By Operator [GBY_86] (rows=1 width=224) - Output:["_col0"],aggregations:["max(VALUE._col0)"] - <-Reducer 34 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_85] - Group By Operator [GBY_84] (rows=1 width=224) - Output:["_col0"],aggregations:["max(_col1)"] - Select Operator [SEL_82] (rows=348477374 width=88) - Output:["_col1"] - Group By Operator [GBY_81] (rows=348477374 width=88) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 33 [SIMPLE_EDGE] - SHUFFLE [RS_80] - PartitionCols:_col0 - Group By Operator [GBY_79] (rows=696954748 width=88) - Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 - Select Operator [SEL_77] (rows=696954748 width=88) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_355] (rows=696954748 width=88) - Conds:RS_74._col1=RS_75._col0(Inner),Output:["_col2","_col3","_col6"] - <-Map 40 [SIMPLE_EDGE] - SHUFFLE [RS_75] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_41] - <-Reducer 32 [SIMPLE_EDGE] - SHUFFLE [RS_74] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_354] (rows=633595212 width=88) - Conds:RS_71._col0=RS_72._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 31 [SIMPLE_EDGE] - SHUFFLE [RS_72] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_38] - <-Map 45 [SIMPLE_EDGE] - SHUFFLE [RS_71] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_64] - <-Reducer 42 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_105] - Group By Operator [GBY_101] (rows=316797606 width=88) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 41 [SIMPLE_EDGE] - SHUFFLE [RS_100] - PartitionCols:_col0 - Group By Operator [GBY_99] (rows=633595212 width=88) - Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 - Select Operator [SEL_97] (rows=633595212 width=88) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_356] (rows=633595212 width=88) - Conds:RS_94._col0=RS_95._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 40 [SIMPLE_EDGE] - SHUFFLE [RS_95] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_41] - <-Map 46 [SIMPLE_EDGE] - SHUFFLE [RS_94] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_90] + <-Select Operator [SEL_61] (rows=1 width=8) + Filter Operator [FIL_60] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_58] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 23 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_57] + Group By Operator [GBY_56] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_53] (rows=348477374 width=88) + Group By Operator [GBY_52] (rows=348477374 width=88) + Output:["_col0"],keys:KEY._col0 + <-Reducer 22 [SIMPLE_EDGE] + SHUFFLE [RS_51] + PartitionCols:_col0 + Group By Operator [GBY_50] (rows=696954748 width=88) + Output:["_col0"],keys:_col0 + Select Operator [SEL_48] (rows=696954748 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_353] (rows=696954748 width=88) + Conds:RS_45._col1=RS_46._col0(Inner),Output:["_col6"] + <-Map 40 [SIMPLE_EDGE] + SHUFFLE [RS_46] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_41] + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_45] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_352] (rows=633595212 width=88) + Conds:RS_42._col0=RS_43._col0(Inner),Output:["_col1"] + <-Map 29 [SIMPLE_EDGE] + SHUFFLE [RS_43] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_38] + <-Map 20 [SIMPLE_EDGE] + SHUFFLE [RS_42] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_35] + <-Reducer 33 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_104] + Group By Operator [GBY_86] (rows=1 width=224) + Output:["_col0"],aggregations:["max(VALUE._col0)"] + <-Reducer 32 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_85] + Group By Operator [GBY_84] (rows=1 width=224) + Output:["_col0"],aggregations:["max(_col1)"] + Select Operator [SEL_82] (rows=348477374 width=88) + Output:["_col1"] + Group By Operator [GBY_81] (rows=348477374 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 31 [SIMPLE_EDGE] + SHUFFLE [RS_80] + PartitionCols:_col0 + Group By Operator [GBY_79] (rows=696954748 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Select Operator [SEL_77] (rows=696954748 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_355] (rows=696954748 width=88) + Conds:RS_74._col1=RS_75._col0(Inner),Output:["_col2","_col3","_col6"] + <-Map 40 [SIMPLE_EDGE] + SHUFFLE [RS_75] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_41] + <-Reducer 30 [SIMPLE_EDGE] + SHUFFLE [RS_74] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_354] (rows=633595212 width=88) + Conds:RS_71._col0=RS_72._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 29 [SIMPLE_EDGE] + SHUFFLE [RS_72] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_38] + <-Map 47 [SIMPLE_EDGE] + SHUFFLE [RS_71] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_64] + <-Reducer 42 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_105] + Group By Operator [GBY_101] (rows=316797606 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 41 [SIMPLE_EDGE] + SHUFFLE [RS_100] + PartitionCols:_col0 + Group By Operator [GBY_99] (rows=633595212 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Select Operator [SEL_97] (rows=633595212 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_356] (rows=633595212 width=88) + Conds:RS_94._col0=RS_95._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 40 [SIMPLE_EDGE] + SHUFFLE [RS_95] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_41] + <-Map 48 [SIMPLE_EDGE] + SHUFFLE [RS_94] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_90] <-Reducer 3 [SIMPLE_EDGE] SHUFFLE [RS_115] PartitionCols:_col1 diff --git ql/src/test/results/clientpositive/perf/query24.q.out ql/src/test/results/clientpositive/perf/query24.q.out index bfc89e2..776044c1 100644 --- ql/src/test/results/clientpositive/perf/query24.q.out +++ ql/src/test/results/clientpositive/perf/query24.q.out @@ -1,4 +1,3 @@ -Warning: Shuffle Join MERGEJOIN[154][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 8' is a cross product PREHOOK: query: explain with ssales as (select c_last_name @@ -105,14 +104,13 @@ Reducer 11 <- Map 19 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) Reducer 12 <- Map 17 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) Reducer 13 <- Map 20 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) Reducer 14 <- Reducer 13 (SIMPLE_EDGE) -Reducer 15 <- Reducer 14 (CUSTOM_SIMPLE_EDGE) Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 16 (SIMPLE_EDGE) Reducer 3 <- Map 17 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) Reducer 4 <- Map 18 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) Reducer 5 <- Map 19 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) Reducer 6 <- Map 20 (SIMPLE_EDGE), Reducer 5 (SIMPLE_EDGE) Reducer 7 <- Reducer 6 (SIMPLE_EDGE) -Reducer 8 <- Reducer 15 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE) Reducer 9 <- Map 1 (SIMPLE_EDGE), Map 16 (SIMPLE_EDGE) Stage-0 @@ -127,164 +125,160 @@ Stage-0 predicate:(_col3 > _col4) Merge Join Operator [MERGEJOIN_154] (rows=231911707 width=489) Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4"] - <-Reducer 15 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_87] - Select Operator [SEL_85] (rows=1 width=400) - Output:["_col0"] - Group By Operator [GBY_84] (rows=1 width=400) - Output:["_col0"],aggregations:["avg(VALUE._col0)"] - <-Reducer 14 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_83] - Group By Operator [GBY_82] (rows=1 width=400) - Output:["_col0"],aggregations:["avg(_col10)"] - Select Operator [SEL_80] (rows=463823414 width=88) - Output:["_col10"] - Group By Operator [GBY_79] (rows=463823414 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8, KEY._col9 - <-Reducer 13 [SIMPLE_EDGE] - SHUFFLE [RS_78] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9 - Group By Operator [GBY_77] (rows=927646829 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"],aggregations:["sum(_col4)"],keys:_col22, _col17, _col18, _col19, _col20, _col21, _col13, _col14, _col8, _col10 - Merge Join Operator [MERGEJOIN_153] (rows=927646829 width=88) - Conds:RS_73._col11, _col15=RS_74._col1, upper(_col2)(Inner),Output:["_col4","_col8","_col10","_col13","_col14","_col17","_col18","_col19","_col20","_col21","_col22"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_74] - PartitionCols:_col1, upper(_col2) - Select Operator [SEL_17] (rows=40000000 width=1014) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_137] (rows=40000000 width=1014) - predicate:(ca_zip is not null and ca_country is not null) - TableScan [TS_15] (rows=40000000 width=1014) - default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_state","ca_zip","ca_country"] - <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_73] - PartitionCols:_col11, _col15 - Merge Join Operator [MERGEJOIN_152] (rows=843315281 width=88) - Conds:RS_70._col0=RS_71._col0(Inner),Output:["_col4","_col8","_col10","_col11","_col13","_col14","_col15","_col17","_col18","_col19","_col20","_col21"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_71] - PartitionCols:_col0 - Select Operator [SEL_57] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_142] (rows=462000 width=1436) - predicate:i_item_sk is not null - TableScan [TS_6] (rows=462000 width=1436) - default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_current_price","i_size","i_color","i_units","i_manager_id"] - <-Reducer 11 [SIMPLE_EDGE] - SHUFFLE [RS_70] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_151] (rows=766650239 width=88) - Conds:RS_67._col1=RS_68._col0(Inner),Output:["_col0","_col4","_col8","_col10","_col11","_col13","_col14","_col15"] - <-Map 19 [SIMPLE_EDGE] - SHUFFLE [RS_68] - PartitionCols:_col0 - Select Operator [SEL_14] (rows=80000000 width=860) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_136] (rows=80000000 width=860) - predicate:(c_customer_sk is not null and c_birth_country is not null) - TableScan [TS_12] (rows=80000000 width=860) - default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_first_name","c_last_name","c_birth_country"] - <-Reducer 10 [SIMPLE_EDGE] - SHUFFLE [RS_67] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_150] (rows=696954748 width=88) - Conds:RS_64._col2=RS_65._col0(Inner),Output:["_col0","_col1","_col4","_col8","_col10","_col11"] - <-Map 18 [SIMPLE_EDGE] - SHUFFLE [RS_65] - PartitionCols:_col0 - Select Operator [SEL_11] (rows=852 width=1910) - Output:["_col0","_col1","_col3","_col4"] - Filter Operator [FIL_135] (rows=852 width=1910) - predicate:((s_market_id = 7) and s_store_sk is not null and s_zip is not null) - TableScan [TS_9] (rows=1704 width=1910) - default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name","s_market_id","s_state","s_zip"] - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_64] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_149] (rows=633595212 width=88) - Conds:RS_61._col0, _col3=RS_62._col0, _col1(Inner),Output:["_col0","_col1","_col2","_col4"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_61] - PartitionCols:_col0, _col3 - Select Operator [SEL_2] (rows=575995635 width=88) - Output:["_col0","_col1","_col2","_col3","_col4"] - Filter Operator [FIL_132] (rows=575995635 width=88) - predicate:(ss_item_sk is not null and ss_ticket_number is not null and ss_store_sk is not null and ss_customer_sk is not null) - TableScan [TS_0] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_item_sk","ss_customer_sk","ss_store_sk","ss_ticket_number","ss_sales_price"] - <-Map 16 [SIMPLE_EDGE] - SHUFFLE [RS_62] - PartitionCols:_col0, _col1 - Select Operator [SEL_5] (rows=57591150 width=77) - Output:["_col0","_col1"] - Filter Operator [FIL_133] (rows=57591150 width=77) - predicate:(sr_item_sk is not null and sr_ticket_number is not null) - TableScan [TS_3] (rows=57591150 width=77) - default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_item_sk","sr_ticket_number"] - <-Reducer 7 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_86] - Select Operator [SEL_42] (rows=231911707 width=88) - Output:["_col0","_col1","_col2","_col3"] - Group By Operator [GBY_41] (rows=231911707 width=88) - Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col9)"],keys:_col1, _col2, _col7 - Select Operator [SEL_37] (rows=463823414 width=88) - Output:["_col1","_col2","_col7","_col9"] - Group By Operator [GBY_36] (rows=463823414 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8 - <-Reducer 6 [SIMPLE_EDGE] - SHUFFLE [RS_35] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_34] (rows=927646829 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"],aggregations:["sum(_col4)"],keys:_col19, _col20, _col14, _col22, _col8, _col9, _col11, _col12, _col16 - Merge Join Operator [MERGEJOIN_148] (rows=927646829 width=88) - Conds:RS_30._col17, _col21=RS_31._col1, upper(_col2)(Inner),Output:["_col4","_col8","_col9","_col11","_col12","_col14","_col16","_col19","_col20","_col22"] + <-Select Operator [SEL_155] + Output:["_col0","_col1","_col2","_col3"] + <-Reducer 14 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_83] + Group By Operator [GBY_82] (rows=1 width=400) + Output:["_col0"],aggregations:["avg(_col10)"] + Select Operator [SEL_80] (rows=463823414 width=88) + Output:["_col10"] + Group By Operator [GBY_79] (rows=463823414 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8, KEY._col9 + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_78] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9 + Group By Operator [GBY_77] (rows=927646829 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"],aggregations:["sum(_col4)"],keys:_col22, _col17, _col18, _col19, _col20, _col21, _col13, _col14, _col8, _col10 + Merge Join Operator [MERGEJOIN_153] (rows=927646829 width=88) + Conds:RS_73._col11, _col15=RS_74._col1, upper(_col2)(Inner),Output:["_col4","_col8","_col10","_col13","_col14","_col17","_col18","_col19","_col20","_col21","_col22"] <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_31] + SHUFFLE [RS_74] PartitionCols:_col1, upper(_col2) - Please refer to the previous Select Operator [SEL_17] - <-Reducer 5 [SIMPLE_EDGE] - SHUFFLE [RS_30] - PartitionCols:_col17, _col21 - Merge Join Operator [MERGEJOIN_147] (rows=843315281 width=88) - Conds:RS_27._col1=RS_28._col0(Inner),Output:["_col4","_col8","_col9","_col11","_col12","_col14","_col16","_col17","_col19","_col20","_col21"] - <-Map 19 [SIMPLE_EDGE] - SHUFFLE [RS_28] + Select Operator [SEL_17] (rows=40000000 width=1014) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_137] (rows=40000000 width=1014) + predicate:(ca_zip is not null and ca_country is not null) + TableScan [TS_15] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_state","ca_zip","ca_country"] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_73] + PartitionCols:_col11, _col15 + Merge Join Operator [MERGEJOIN_152] (rows=843315281 width=88) + Conds:RS_70._col0=RS_71._col0(Inner),Output:["_col4","_col8","_col10","_col11","_col13","_col14","_col15","_col17","_col18","_col19","_col20","_col21"] + <-Map 17 [SIMPLE_EDGE] + SHUFFLE [RS_71] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_14] - <-Reducer 4 [SIMPLE_EDGE] - SHUFFLE [RS_27] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_146] (rows=766650239 width=88) - Conds:RS_24._col2=RS_25._col0(Inner),Output:["_col1","_col4","_col8","_col9","_col11","_col12","_col14","_col16","_col17"] - <-Map 18 [SIMPLE_EDGE] - SHUFFLE [RS_25] + Select Operator [SEL_57] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_142] (rows=462000 width=1436) + predicate:i_item_sk is not null + TableScan [TS_6] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_current_price","i_size","i_color","i_units","i_manager_id"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_70] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_151] (rows=766650239 width=88) + Conds:RS_67._col1=RS_68._col0(Inner),Output:["_col0","_col4","_col8","_col10","_col11","_col13","_col14","_col15"] + <-Map 19 [SIMPLE_EDGE] + SHUFFLE [RS_68] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_11] - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_24] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_145] (rows=696954748 width=88) - Conds:RS_21._col0=RS_22._col0(Inner),Output:["_col1","_col2","_col4","_col8","_col9","_col11","_col12"] - <-Map 17 [SIMPLE_EDGE] - SHUFFLE [RS_22] - PartitionCols:_col0 - Select Operator [SEL_8] (rows=231000 width=1436) - Output:["_col0","_col1","_col2","_col4","_col5"] - Filter Operator [FIL_134] (rows=231000 width=1436) - predicate:((i_color = 'orchid') and i_item_sk is not null) - Please refer to the previous TableScan [TS_6] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_21] + Select Operator [SEL_14] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_136] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_birth_country is not null) + TableScan [TS_12] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_first_name","c_last_name","c_birth_country"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_67] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_150] (rows=696954748 width=88) + Conds:RS_64._col2=RS_65._col0(Inner),Output:["_col0","_col1","_col4","_col8","_col10","_col11"] + <-Map 18 [SIMPLE_EDGE] + SHUFFLE [RS_65] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_144] (rows=633595212 width=88) - Conds:RS_18._col0, _col3=RS_19._col0, _col1(Inner),Output:["_col0","_col1","_col2","_col4"] + Select Operator [SEL_11] (rows=852 width=1910) + Output:["_col0","_col1","_col3","_col4"] + Filter Operator [FIL_135] (rows=852 width=1910) + predicate:((s_market_id = 7) and s_store_sk is not null and s_zip is not null) + TableScan [TS_9] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name","s_market_id","s_state","s_zip"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_64] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_149] (rows=633595212 width=88) + Conds:RS_61._col0, _col3=RS_62._col0, _col1(Inner),Output:["_col0","_col1","_col2","_col4"] <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_18] + SHUFFLE [RS_61] PartitionCols:_col0, _col3 - Please refer to the previous Select Operator [SEL_2] + Select Operator [SEL_2] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_132] (rows=575995635 width=88) + predicate:(ss_item_sk is not null and ss_ticket_number is not null and ss_store_sk is not null and ss_customer_sk is not null) + TableScan [TS_0] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_item_sk","ss_customer_sk","ss_store_sk","ss_ticket_number","ss_sales_price"] <-Map 16 [SIMPLE_EDGE] - SHUFFLE [RS_19] + SHUFFLE [RS_62] PartitionCols:_col0, _col1 - Please refer to the previous Select Operator [SEL_5] + Select Operator [SEL_5] (rows=57591150 width=77) + Output:["_col0","_col1"] + Filter Operator [FIL_133] (rows=57591150 width=77) + predicate:(sr_item_sk is not null and sr_ticket_number is not null) + TableScan [TS_3] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_item_sk","sr_ticket_number"] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_86] + Select Operator [SEL_42] (rows=231911707 width=88) + Output:["_col0","_col1","_col2","_col3"] + Group By Operator [GBY_41] (rows=231911707 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col9)"],keys:_col1, _col2, _col7 + Select Operator [SEL_37] (rows=463823414 width=88) + Output:["_col1","_col2","_col7","_col9"] + Group By Operator [GBY_36] (rows=463823414 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8 + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_34] (rows=927646829 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"],aggregations:["sum(_col4)"],keys:_col19, _col20, _col14, _col22, _col8, _col9, _col11, _col12, _col16 + Merge Join Operator [MERGEJOIN_148] (rows=927646829 width=88) + Conds:RS_30._col17, _col21=RS_31._col1, upper(_col2)(Inner),Output:["_col4","_col8","_col9","_col11","_col12","_col14","_col16","_col19","_col20","_col22"] + <-Map 20 [SIMPLE_EDGE] + SHUFFLE [RS_31] + PartitionCols:_col1, upper(_col2) + Please refer to the previous Select Operator [SEL_17] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col17, _col21 + Merge Join Operator [MERGEJOIN_147] (rows=843315281 width=88) + Conds:RS_27._col1=RS_28._col0(Inner),Output:["_col4","_col8","_col9","_col11","_col12","_col14","_col16","_col17","_col19","_col20","_col21"] + <-Map 19 [SIMPLE_EDGE] + SHUFFLE [RS_28] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_14] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_146] (rows=766650239 width=88) + Conds:RS_24._col2=RS_25._col0(Inner),Output:["_col1","_col4","_col8","_col9","_col11","_col12","_col14","_col16","_col17"] + <-Map 18 [SIMPLE_EDGE] + SHUFFLE [RS_25] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_11] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_24] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_145] (rows=696954748 width=88) + Conds:RS_21._col0=RS_22._col0(Inner),Output:["_col1","_col2","_col4","_col8","_col9","_col11","_col12"] + <-Map 17 [SIMPLE_EDGE] + SHUFFLE [RS_22] + PartitionCols:_col0 + Select Operator [SEL_8] (rows=231000 width=1436) + Output:["_col0","_col1","_col2","_col4","_col5"] + Filter Operator [FIL_134] (rows=231000 width=1436) + predicate:((i_color = 'orchid') and i_item_sk is not null) + Please refer to the previous TableScan [TS_6] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_144] (rows=633595212 width=88) + Conds:RS_18._col0, _col3=RS_19._col0, _col1(Inner),Output:["_col0","_col1","_col2","_col4"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col0, _col3 + Please refer to the previous Select Operator [SEL_2] + <-Map 16 [SIMPLE_EDGE] + SHUFFLE [RS_19] + PartitionCols:_col0, _col1 + Please refer to the previous Select Operator [SEL_5] diff --git ql/src/test/results/clientpositive/perf/query28.q.out ql/src/test/results/clientpositive/perf/query28.q.out index 48e3dc5..cb92245 100644 --- ql/src/test/results/clientpositive/perf/query28.q.out +++ ql/src/test/results/clientpositive/perf/query28.q.out @@ -1,4 +1,3 @@ -Warning: Shuffle Join MERGEJOIN[94][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5]] in Stage 'Reducer 4' is a cross product PREHOOK: query: explain select * from (select avg(ss_list_price) B1_LP @@ -106,25 +105,24 @@ POSTHOOK: type: QUERY Plan optimized by CBO. Vertex dependency in root stage -Reducer 10 <- Reducer 9 (CUSTOM_SIMPLE_EDGE) -Reducer 11 <- Map 1 (SIMPLE_EDGE) -Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE) +Reducer 10 <- Map 1 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (CUSTOM_SIMPLE_EDGE) Reducer 13 <- Map 1 (SIMPLE_EDGE) Reducer 14 <- Reducer 13 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 1 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (CUSTOM_SIMPLE_EDGE) Reducer 2 <- Map 1 (SIMPLE_EDGE) -Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) -Reducer 4 <- Reducer 10 (CUSTOM_SIMPLE_EDGE), Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 3 (CUSTOM_SIMPLE_EDGE), Reducer 6 (CUSTOM_SIMPLE_EDGE), Reducer 8 (CUSTOM_SIMPLE_EDGE) -Reducer 5 <- Map 1 (SIMPLE_EDGE) -Reducer 6 <- Reducer 5 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Reducer 11 (CUSTOM_SIMPLE_EDGE), Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 17 (CUSTOM_SIMPLE_EDGE), Reducer 2 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE), Reducer 8 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Map 1 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (CUSTOM_SIMPLE_EDGE) Reducer 7 <- Map 1 (SIMPLE_EDGE) Reducer 8 <- Reducer 7 (CUSTOM_SIMPLE_EDGE) -Reducer 9 <- Map 1 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 4 + Reducer 3 File Output Operator [FS_51] Limit [LIM_50] (rows=1 width=3505) Number of rows:100 @@ -132,125 +130,123 @@ Stage-0 Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"] Merge Join Operator [MERGEJOIN_94] (rows=1 width=3505) Conds:(Inner),(Inner),(Inner),(Inner),(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"] - <-Reducer 10 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_45] - Group By Operator [GBY_81] (rows=1 width=584) - Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] - <-Reducer 9 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_80] - Group By Operator [GBY_79] (rows=1 width=584) - Output:["_col0","_col1","_col2"],aggregations:["avg(_col1)","count(_col2)","count(_col0)"] - Group By Operator [GBY_78] (rows=21333171 width=88) - Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_77] - PartitionCols:_col0 - Group By Operator [GBY_76] (rows=21333171 width=88) - Output:["_col0","_col1","_col2"],aggregations:["avg(ss_list_price)","count(ss_list_price)"],keys:ss_list_price - Select Operator [SEL_23] (rows=21333171 width=88) - Output:["ss_list_price"] - Filter Operator [FIL_55] (rows=21333171 width=88) - predicate:(ss_quantity BETWEEN 16 AND 20 and (ss_list_price BETWEEN 142 AND 152 or ss_coupon_amt BETWEEN 3054 AND 4054 or ss_wholesale_cost BETWEEN 80 AND 100)) - TableScan [TS_0] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_quantity","ss_wholesale_cost","ss_list_price","ss_coupon_amt"] - <-Reducer 12 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_46] - Group By Operator [GBY_87] (rows=1 width=584) - Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] - <-Reducer 11 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_86] - Group By Operator [GBY_85] (rows=1 width=584) - Output:["_col0","_col1","_col2"],aggregations:["avg(_col1)","count(_col2)","count(_col0)"] - Group By Operator [GBY_84] (rows=21333171 width=88) - Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_83] - PartitionCols:_col0 - Group By Operator [GBY_82] (rows=21333171 width=88) - Output:["_col0","_col1","_col2"],aggregations:["avg(ss_list_price)","count(ss_list_price)"],keys:ss_list_price - Select Operator [SEL_30] (rows=21333171 width=88) - Output:["ss_list_price"] - Filter Operator [FIL_56] (rows=21333171 width=88) - predicate:(ss_quantity BETWEEN 11 AND 15 and (ss_list_price BETWEEN 66 AND 76 or ss_coupon_amt BETWEEN 920 AND 1920 or ss_wholesale_cost BETWEEN 4 AND 24)) - Please refer to the previous TableScan [TS_0] - <-Reducer 14 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_47] - Group By Operator [GBY_93] (rows=1 width=584) - Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] - <-Reducer 13 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_92] - Group By Operator [GBY_91] (rows=1 width=584) - Output:["_col0","_col1","_col2"],aggregations:["avg(_col1)","count(_col2)","count(_col0)"] - Group By Operator [GBY_90] (rows=21333171 width=88) - Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_89] - PartitionCols:_col0 - Group By Operator [GBY_88] (rows=21333171 width=88) - Output:["_col0","_col1","_col2"],aggregations:["avg(ss_list_price)","count(ss_list_price)"],keys:ss_list_price - Select Operator [SEL_37] (rows=21333171 width=88) - Output:["ss_list_price"] - Filter Operator [FIL_57] (rows=21333171 width=88) - predicate:(ss_quantity BETWEEN 6 AND 10 and (ss_list_price BETWEEN 91 AND 101 or ss_coupon_amt BETWEEN 1430 AND 2430 or ss_wholesale_cost BETWEEN 32 AND 52)) - Please refer to the previous TableScan [TS_0] - <-Reducer 3 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_42] - Group By Operator [GBY_63] (rows=1 width=584) - Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] - <-Reducer 2 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_62] - Group By Operator [GBY_61] (rows=1 width=584) - Output:["_col0","_col1","_col2"],aggregations:["avg(_col1)","count(_col2)","count(_col0)"] - Group By Operator [GBY_60] (rows=21333171 width=88) - Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_59] - PartitionCols:_col0 - Group By Operator [GBY_58] (rows=21333171 width=88) - Output:["_col0","_col1","_col2"],aggregations:["avg(ss_list_price)","count(ss_list_price)"],keys:ss_list_price - Select Operator [SEL_2] (rows=21333171 width=88) - Output:["ss_list_price"] - Filter Operator [FIL_52] (rows=21333171 width=88) - predicate:(ss_quantity BETWEEN 0 AND 5 and (ss_list_price BETWEEN 11 AND 21 or ss_coupon_amt BETWEEN 460 AND 1460 or ss_wholesale_cost BETWEEN 14 AND 34)) - Please refer to the previous TableScan [TS_0] - <-Reducer 6 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_43] - Group By Operator [GBY_69] (rows=1 width=584) - Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] - <-Reducer 5 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_68] - Group By Operator [GBY_67] (rows=1 width=584) - Output:["_col0","_col1","_col2"],aggregations:["avg(_col1)","count(_col2)","count(_col0)"] - Group By Operator [GBY_66] (rows=21333171 width=88) - Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_65] - PartitionCols:_col0 - Group By Operator [GBY_64] (rows=21333171 width=88) - Output:["_col0","_col1","_col2"],aggregations:["avg(ss_list_price)","count(ss_list_price)"],keys:ss_list_price - Select Operator [SEL_9] (rows=21333171 width=88) - Output:["ss_list_price"] - Filter Operator [FIL_53] (rows=21333171 width=88) - predicate:(ss_quantity BETWEEN 26 AND 30 and (ss_list_price BETWEEN 28 AND 38 or ss_coupon_amt BETWEEN 2513 AND 3513 or ss_wholesale_cost BETWEEN 42 AND 62)) - Please refer to the previous TableScan [TS_0] - <-Reducer 8 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_44] - Group By Operator [GBY_75] (rows=1 width=584) - Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] - <-Reducer 7 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_74] - Group By Operator [GBY_73] (rows=1 width=584) - Output:["_col0","_col1","_col2"],aggregations:["avg(_col1)","count(_col2)","count(_col0)"] - Group By Operator [GBY_72] (rows=21333171 width=88) - Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_71] - PartitionCols:_col0 - Group By Operator [GBY_70] (rows=21333171 width=88) - Output:["_col0","_col1","_col2"],aggregations:["avg(ss_list_price)","count(ss_list_price)"],keys:ss_list_price - Select Operator [SEL_16] (rows=21333171 width=88) - Output:["ss_list_price"] - Filter Operator [FIL_54] (rows=21333171 width=88) - predicate:(ss_quantity BETWEEN 21 AND 25 and (ss_list_price BETWEEN 135 AND 145 or ss_coupon_amt BETWEEN 14180 AND 15180 or ss_wholesale_cost BETWEEN 38 AND 58)) - Please refer to the previous TableScan [TS_0] + <-Group By Operator [GBY_63] (rows=1 width=584) + Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 11 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_45] + Group By Operator [GBY_81] (rows=1 width=584) + Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 10 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_80] + Group By Operator [GBY_79] (rows=1 width=584) + Output:["_col0","_col1","_col2"],aggregations:["avg(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_78] (rows=21333171 width=88) + Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_77] + PartitionCols:_col0 + Group By Operator [GBY_76] (rows=21333171 width=88) + Output:["_col0","_col1","_col2"],aggregations:["avg(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_23] (rows=21333171 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_55] (rows=21333171 width=88) + predicate:(ss_quantity BETWEEN 16 AND 20 and (ss_list_price BETWEEN 142 AND 152 or ss_coupon_amt BETWEEN 3054 AND 4054 or ss_wholesale_cost BETWEEN 80 AND 100)) + TableScan [TS_0] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_quantity","ss_wholesale_cost","ss_list_price","ss_coupon_amt"] + <-Reducer 14 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_46] + Group By Operator [GBY_87] (rows=1 width=584) + Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 13 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_86] + Group By Operator [GBY_85] (rows=1 width=584) + Output:["_col0","_col1","_col2"],aggregations:["avg(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_84] (rows=21333171 width=88) + Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_83] + PartitionCols:_col0 + Group By Operator [GBY_82] (rows=21333171 width=88) + Output:["_col0","_col1","_col2"],aggregations:["avg(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_30] (rows=21333171 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_56] (rows=21333171 width=88) + predicate:(ss_quantity BETWEEN 11 AND 15 and (ss_list_price BETWEEN 66 AND 76 or ss_coupon_amt BETWEEN 920 AND 1920 or ss_wholesale_cost BETWEEN 4 AND 24)) + Please refer to the previous TableScan [TS_0] + <-Reducer 17 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_47] + Group By Operator [GBY_93] (rows=1 width=584) + Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 16 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_92] + Group By Operator [GBY_91] (rows=1 width=584) + Output:["_col0","_col1","_col2"],aggregations:["avg(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_90] (rows=21333171 width=88) + Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_89] + PartitionCols:_col0 + Group By Operator [GBY_88] (rows=21333171 width=88) + Output:["_col0","_col1","_col2"],aggregations:["avg(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_37] (rows=21333171 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_57] (rows=21333171 width=88) + predicate:(ss_quantity BETWEEN 6 AND 10 and (ss_list_price BETWEEN 91 AND 101 or ss_coupon_amt BETWEEN 1430 AND 2430 or ss_wholesale_cost BETWEEN 32 AND 52)) + Please refer to the previous TableScan [TS_0] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_62] + Group By Operator [GBY_61] (rows=1 width=584) + Output:["_col0","_col1","_col2"],aggregations:["avg(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_60] (rows=21333171 width=88) + Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_59] + PartitionCols:_col0 + Group By Operator [GBY_58] (rows=21333171 width=88) + Output:["_col0","_col1","_col2"],aggregations:["avg(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_2] (rows=21333171 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_52] (rows=21333171 width=88) + predicate:(ss_quantity BETWEEN 0 AND 5 and (ss_list_price BETWEEN 11 AND 21 or ss_coupon_amt BETWEEN 460 AND 1460 or ss_wholesale_cost BETWEEN 14 AND 34)) + Please refer to the previous TableScan [TS_0] + <-Reducer 5 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_43] + Group By Operator [GBY_69] (rows=1 width=584) + Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_68] + Group By Operator [GBY_67] (rows=1 width=584) + Output:["_col0","_col1","_col2"],aggregations:["avg(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_66] (rows=21333171 width=88) + Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_65] + PartitionCols:_col0 + Group By Operator [GBY_64] (rows=21333171 width=88) + Output:["_col0","_col1","_col2"],aggregations:["avg(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_9] (rows=21333171 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_53] (rows=21333171 width=88) + predicate:(ss_quantity BETWEEN 26 AND 30 and (ss_list_price BETWEEN 28 AND 38 or ss_coupon_amt BETWEEN 2513 AND 3513 or ss_wholesale_cost BETWEEN 42 AND 62)) + Please refer to the previous TableScan [TS_0] + <-Reducer 8 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_44] + Group By Operator [GBY_75] (rows=1 width=584) + Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_74] + Group By Operator [GBY_73] (rows=1 width=584) + Output:["_col0","_col1","_col2"],aggregations:["avg(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_72] (rows=21333171 width=88) + Output:["_col0","_col1","_col2"],aggregations:["avg(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_71] + PartitionCols:_col0 + Group By Operator [GBY_70] (rows=21333171 width=88) + Output:["_col0","_col1","_col2"],aggregations:["avg(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_16] (rows=21333171 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_54] (rows=21333171 width=88) + predicate:(ss_quantity BETWEEN 21 AND 25 and (ss_list_price BETWEEN 135 AND 145 or ss_coupon_amt BETWEEN 14180 AND 15180 or ss_wholesale_cost BETWEEN 38 AND 58)) + Please refer to the previous TableScan [TS_0] diff --git ql/src/test/results/clientpositive/perf/query44.q.out ql/src/test/results/clientpositive/perf/query44.q.out index 07187b1..0a05dbc 100644 --- ql/src/test/results/clientpositive/perf/query44.q.out +++ ql/src/test/results/clientpositive/perf/query44.q.out @@ -1,5 +1,3 @@ -Warning: Shuffle Join MERGEJOIN[131][tables = [$hdt$_2, $hdt$_3, $hdt$_1]] in Stage 'Reducer 9' is a cross product -Warning: Shuffle Join MERGEJOIN[133][tables = [$hdt$_4, $hdt$_5, $hdt$_3]] in Stage 'Reducer 13' is a cross product PREHOOK: query: explain select asceding.rnk, i1.i_product_name best_performing, i2.i_product_name worst_performing from(select * @@ -71,22 +69,20 @@ POSTHOOK: type: QUERY Plan optimized by CBO. Vertex dependency in root stage -Reducer 10 <- Reducer 9 (SIMPLE_EDGE) -Reducer 11 <- Map 6 (SIMPLE_EDGE) -Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE) -Reducer 13 <- Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 17 (CUSTOM_SIMPLE_EDGE), Reducer 20 (CUSTOM_SIMPLE_EDGE) -Reducer 14 <- Reducer 13 (SIMPLE_EDGE) -Reducer 16 <- Map 15 (SIMPLE_EDGE) -Reducer 17 <- Map 15 (SIMPLE_EDGE) -Reducer 19 <- Map 18 (SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) -Reducer 20 <- Map 18 (SIMPLE_EDGE) +Reducer 12 <- Map 11 (SIMPLE_EDGE) +Reducer 14 <- Map 11 (SIMPLE_EDGE) +Reducer 17 <- Map 16 (SIMPLE_EDGE) +Reducer 18 <- Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 17 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE) +Reducer 20 <- Map 16 (SIMPLE_EDGE) +Reducer 21 <- Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 20 (CUSTOM_SIMPLE_EDGE), Reducer 9 (CUSTOM_SIMPLE_EDGE) +Reducer 22 <- Reducer 21 (SIMPLE_EDGE) Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Reducer 5 (SIMPLE_EDGE) Reducer 4 <- Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Map 1 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 5 <- Map 1 (SIMPLE_EDGE), Reducer 22 (SIMPLE_EDGE) Reducer 7 <- Map 6 (SIMPLE_EDGE) -Reducer 8 <- Reducer 7 (CUSTOM_SIMPLE_EDGE) -Reducer 9 <- Reducer 16 (CUSTOM_SIMPLE_EDGE), Reducer 19 (CUSTOM_SIMPLE_EDGE), Reducer 8 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 6 (SIMPLE_EDGE) Stage-0 Fetch Operator @@ -102,12 +98,12 @@ Stage-0 SHUFFLE [RS_101] Select Operator [SEL_100] (rows=1393898919384048 width=185) Output:["_col0","_col1","_col2"] - Merge Join Operator [MERGEJOIN_135] (rows=1393898919384048 width=185) + Merge Join Operator [MERGEJOIN_143] (rows=1393898919384048 width=185) Conds:RS_97._col3=RS_98._col3(Inner),Output:["_col1","_col3","_col5"] <-Reducer 2 [SIMPLE_EDGE] SHUFFLE [RS_97] PartitionCols:_col3 - Merge Join Operator [MERGEJOIN_132] (rows=1267180808338276 width=185) + Merge Join Operator [MERGEJOIN_136] (rows=1267180808338276 width=185) Conds:RS_94._col0=RS_95._col0(Inner),Output:["_col1","_col3"] <-Map 1 [SIMPLE_EDGE] SHUFFLE [RS_94] @@ -118,7 +114,7 @@ Stage-0 predicate:i_item_sk is not null TableScan [TS_0] (rows=462000 width=1436) default@item,i1,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_product_name"] - <-Reducer 10 [SIMPLE_EDGE] + <-Reducer 19 [SIMPLE_EDGE] SHUFFLE [RS_95] PartitionCols:_col0 Select Operator [SEL_41] (rows=1151982528066248 width=185) @@ -129,79 +125,74 @@ Stage-0 Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col3 ASC NULLS FIRST","partition by:":"0"}] Select Operator [SEL_39] (rows=3455947584198744 width=185) Output:["_col2","_col3"] - <-Reducer 9 [SIMPLE_EDGE] + <-Reducer 18 [SIMPLE_EDGE] SHUFFLE [RS_38] PartitionCols:0 Filter Operator [FIL_37] (rows=3455947584198744 width=185) predicate:(_col3 > (0.9 * _col1)) Merge Join Operator [MERGEJOIN_131] (rows=10367842752596232 width=185) Conds:(Inner),(Inner),Output:["_col1","_col2","_col3"] - <-Reducer 16 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_34] - Select Operator [SEL_25] (rows=71999454 width=88) - Output:["_col0"] - Group By Operator [GBY_24] (rows=71999454 width=88) + <-Select Operator [SEL_135] + Output:["_col0","_col1"] + <-Reducer 12 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_34] + Select Operator [SEL_25] (rows=71999454 width=88) + Output:["_col0"] + Group By Operator [GBY_24] (rows=71999454 width=88) + Output:["_col0","_col1"],aggregations:["avg(VALUE._col0)"],keys:KEY._col0 + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_23] + PartitionCols:_col0 + Group By Operator [GBY_22] (rows=143998908 width=88) + Output:["_col0","_col1"],aggregations:["avg(_col1)"],keys:410 + Select Operator [SEL_20] (rows=143998908 width=88) + Output:["_col1"] + Filter Operator [FIL_124] (rows=143998908 width=88) + predicate:((ss_store_sk = 410) and ss_hdemo_sk is null) + TableScan [TS_18] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_hdemo_sk","ss_store_sk","ss_net_profit"] + <-Reducer 17 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_35] + Group By Operator [GBY_31] (rows=143998908 width=88) Output:["_col0","_col1"],aggregations:["avg(VALUE._col0)"],keys:KEY._col0 - <-Map 15 [SIMPLE_EDGE] - SHUFFLE [RS_23] + <-Map 16 [SIMPLE_EDGE] + SHUFFLE [RS_30] PartitionCols:_col0 - Group By Operator [GBY_22] (rows=143998908 width=88) - Output:["_col0","_col1"],aggregations:["avg(_col1)"],keys:410 - Select Operator [SEL_20] (rows=143998908 width=88) - Output:["_col1"] - Filter Operator [FIL_124] (rows=143998908 width=88) - predicate:((ss_store_sk = 410) and ss_hdemo_sk is null) - TableScan [TS_18] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_hdemo_sk","ss_store_sk","ss_net_profit"] - <-Reducer 19 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_35] - Group By Operator [GBY_31] (rows=143998908 width=88) - Output:["_col0","_col1"],aggregations:["avg(VALUE._col0)"],keys:KEY._col0 - <-Map 18 [SIMPLE_EDGE] - SHUFFLE [RS_30] - PartitionCols:_col0 - Group By Operator [GBY_29] (rows=287997817 width=88) - Output:["_col0","_col1"],aggregations:["avg(ss_net_profit)"],keys:ss_item_sk - Select Operator [SEL_28] (rows=287997817 width=88) - Output:["ss_item_sk","ss_net_profit"] - Filter Operator [FIL_125] (rows=287997817 width=88) - predicate:(ss_store_sk = 410) - TableScan [TS_26] (rows=575995635 width=88) - default@store_sales,ss1,Tbl:COMPLETE,Col:NONE,Output:["ss_item_sk","ss_store_sk","ss_net_profit"] - <-Reducer 8 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_33] - Select Operator [SEL_17] (rows=1 width=8) - Filter Operator [FIL_16] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_14] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 7 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_13] - Group By Operator [GBY_12] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_10] (rows=71999454 width=88) - Group By Operator [GBY_9] (rows=71999454 width=88) - Output:["_col0"],keys:KEY._col0 - <-Map 6 [SIMPLE_EDGE] - SHUFFLE [RS_8] - PartitionCols:_col0 - Group By Operator [GBY_7] (rows=143998908 width=88) - Output:["_col0"],keys:410 - Select Operator [SEL_5] (rows=143998908 width=88) - Filter Operator [FIL_123] (rows=143998908 width=88) - predicate:((ss_store_sk = 410) and ss_hdemo_sk is null) - TableScan [TS_3] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_hdemo_sk","ss_store_sk"] + Group By Operator [GBY_29] (rows=287997817 width=88) + Output:["_col0","_col1"],aggregations:["avg(ss_net_profit)"],keys:ss_item_sk + Select Operator [SEL_28] (rows=287997817 width=88) + Output:["ss_item_sk","ss_net_profit"] + Filter Operator [FIL_125] (rows=287997817 width=88) + predicate:(ss_store_sk = 410) + TableScan [TS_26] (rows=575995635 width=88) + default@store_sales,ss1,Tbl:COMPLETE,Col:NONE,Output:["ss_item_sk","ss_store_sk","ss_net_profit"] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_13] + Group By Operator [GBY_12] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_10] (rows=71999454 width=88) + Group By Operator [GBY_9] (rows=71999454 width=88) + Output:["_col0"],keys:KEY._col0 + <-Map 6 [SIMPLE_EDGE] + SHUFFLE [RS_8] + PartitionCols:_col0 + Group By Operator [GBY_7] (rows=143998908 width=88) + Output:["_col0"],keys:410 + Select Operator [SEL_5] (rows=143998908 width=88) + Filter Operator [FIL_123] (rows=143998908 width=88) + predicate:((ss_store_sk = 410) and ss_hdemo_sk is null) + TableScan [TS_3] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_hdemo_sk","ss_store_sk"] <-Reducer 5 [SIMPLE_EDGE] SHUFFLE [RS_98] PartitionCols:_col3 - Merge Join Operator [MERGEJOIN_134] (rows=1267180808338276 width=185) + Merge Join Operator [MERGEJOIN_142] (rows=1267180808338276 width=185) Conds:RS_90._col0=RS_91._col0(Inner),Output:["_col1","_col3"] <-Map 1 [SIMPLE_EDGE] SHUFFLE [RS_90] PartitionCols:_col0 Please refer to the previous Select Operator [SEL_2] - <-Reducer 14 [SIMPLE_EDGE] + <-Reducer 22 [SIMPLE_EDGE] SHUFFLE [RS_91] PartitionCols:_col0 Select Operator [SEL_86] (rows=1151982528066248 width=185) @@ -212,47 +203,42 @@ Stage-0 Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col3 DESC NULLS LAST","partition by:":"0"}] Select Operator [SEL_84] (rows=3455947584198744 width=185) Output:["_col2","_col3"] - <-Reducer 13 [SIMPLE_EDGE] + <-Reducer 21 [SIMPLE_EDGE] SHUFFLE [RS_83] PartitionCols:0 Filter Operator [FIL_82] (rows=3455947584198744 width=185) predicate:(_col3 > (0.9 * _col1)) - Merge Join Operator [MERGEJOIN_133] (rows=10367842752596232 width=185) + Merge Join Operator [MERGEJOIN_137] (rows=10367842752596232 width=185) Conds:(Inner),(Inner),Output:["_col1","_col2","_col3"] - <-Reducer 12 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_78] - Select Operator [SEL_62] (rows=1 width=8) - Filter Operator [FIL_61] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_59] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 11 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_58] - Group By Operator [GBY_57] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_55] (rows=71999454 width=88) - Group By Operator [GBY_54] (rows=71999454 width=88) - Output:["_col0"],keys:KEY._col0 - <-Map 6 [SIMPLE_EDGE] - SHUFFLE [RS_53] - PartitionCols:_col0 - Please refer to the previous Group By Operator [GBY_7] - <-Reducer 17 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_79] - Select Operator [SEL_70] (rows=71999454 width=88) - Output:["_col0"] - Group By Operator [GBY_69] (rows=71999454 width=88) + <-Select Operator [SEL_141] + Output:["_col0","_col1"] + <-Reducer 14 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_79] + Select Operator [SEL_70] (rows=71999454 width=88) + Output:["_col0"] + Group By Operator [GBY_69] (rows=71999454 width=88) + Output:["_col0","_col1"],aggregations:["avg(VALUE._col0)"],keys:KEY._col0 + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_68] + PartitionCols:_col0 + Please refer to the previous Group By Operator [GBY_22] + <-Reducer 20 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_80] + Group By Operator [GBY_76] (rows=143998908 width=88) Output:["_col0","_col1"],aggregations:["avg(VALUE._col0)"],keys:KEY._col0 - <-Map 15 [SIMPLE_EDGE] - SHUFFLE [RS_68] + <-Map 16 [SIMPLE_EDGE] + SHUFFLE [RS_75] PartitionCols:_col0 - Please refer to the previous Group By Operator [GBY_22] - <-Reducer 20 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_80] - Group By Operator [GBY_76] (rows=143998908 width=88) - Output:["_col0","_col1"],aggregations:["avg(VALUE._col0)"],keys:KEY._col0 - <-Map 18 [SIMPLE_EDGE] - SHUFFLE [RS_75] - PartitionCols:_col0 - Please refer to the previous Group By Operator [GBY_29] + Please refer to the previous Group By Operator [GBY_29] + <-Reducer 9 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_58] + Group By Operator [GBY_57] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_55] (rows=71999454 width=88) + Group By Operator [GBY_54] (rows=71999454 width=88) + Output:["_col0"],keys:KEY._col0 + <-Map 6 [SIMPLE_EDGE] + SHUFFLE [RS_53] + PartitionCols:_col0 + Please refer to the previous Group By Operator [GBY_7] diff --git ql/src/test/results/clientpositive/perf/query45.q.out ql/src/test/results/clientpositive/perf/query45.q.out index 19cf365..7153c5e 100644 --- ql/src/test/results/clientpositive/perf/query45.q.out +++ ql/src/test/results/clientpositive/perf/query45.q.out @@ -1,4 +1,3 @@ -Warning: Shuffle Join MERGEJOIN[87][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3]] in Stage 'Reducer 4' is a cross product PREHOOK: query: explain select ca_zip, ca_county, sum(ws_sales_price) from web_sales, customer, customer_address, date_dim, item @@ -42,11 +41,10 @@ Plan optimized by CBO. Vertex dependency in root stage Reducer 10 <- Reducer 14 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) Reducer 11 <- Map 8 (SIMPLE_EDGE) -Reducer 12 <- Map 8 (CUSTOM_SIMPLE_EDGE) Reducer 14 <- Map 13 (SIMPLE_EDGE), Map 15 (SIMPLE_EDGE) Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) Reducer 3 <- Reducer 10 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 4 <- Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 3 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Map 8 (CUSTOM_SIMPLE_EDGE), Reducer 3 (CUSTOM_SIMPLE_EDGE) Reducer 5 <- Reducer 4 (SIMPLE_EDGE) Reducer 6 <- Reducer 5 (SIMPLE_EDGE) Reducer 9 <- Map 8 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) @@ -78,103 +76,101 @@ Stage-0 Output:["_col3","_col7","_col8","_col13","_col14","_col15","_col17"] Merge Join Operator [MERGEJOIN_87] (rows=191667562 width=152) Conds:(Inner),Output:["_col3","_col4","_col6","_col8","_col12","_col16","_col17"] - <-Reducer 12 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_47] - Group By Operator [GBY_38] (rows=1 width=16) - Output:["_col0","_col1"],aggregations:["count(VALUE._col0)","count(VALUE._col1)"] - <-Map 8 [CUSTOM_SIMPLE_EDGE] - SHUFFLE [RS_37] - Group By Operator [GBY_36] (rows=1 width=16) - Output:["_col0","_col1"],aggregations:["count()","count(i_item_id)"] - Select Operator [SEL_35] (rows=231000 width=1436) - Output:["i_item_id"] - Filter Operator [FIL_81] (rows=231000 width=1436) - predicate:(i_item_sk) IN (2, 3, 5, 7, 11, 13, 17, 19, 23, 29) - TableScan [TS_6] (rows=462000 width=1436) - default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id"] - <-Reducer 3 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_46] - Merge Join Operator [MERGEJOIN_86] (rows=191667562 width=135) - Conds:RS_43._col0=RS_44._col6(Inner),Output:["_col3","_col4","_col6","_col8","_col12"] - <-Reducer 10 [SIMPLE_EDGE] - SHUFFLE [RS_44] - PartitionCols:_col6 - Merge Join Operator [MERGEJOIN_85] (rows=174243235 width=135) - Conds:RS_29._col0=RS_30._col1(Inner),Output:["_col1","_col3","_col6","_col7"] - <-Reducer 14 [SIMPLE_EDGE] - SHUFFLE [RS_30] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_84] (rows=158402938 width=135) - Conds:RS_22._col0=RS_23._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 13 [SIMPLE_EDGE] - SHUFFLE [RS_22] - PartitionCols:_col0 - Select Operator [SEL_18] (rows=144002668 width=135) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_79] (rows=144002668 width=135) - predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null and ws_item_sk is not null) - TableScan [TS_16] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_bill_customer_sk","ws_sales_price"] - <-Map 15 [SIMPLE_EDGE] - SHUFFLE [RS_23] - PartitionCols:_col0 - Select Operator [SEL_21] (rows=18262 width=1119) - Output:["_col0"] - Filter Operator [FIL_80] (rows=18262 width=1119) - predicate:((d_qoy = 2) and (d_year = 2000) and d_date_sk is not null) - TableScan [TS_19] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_qoy"] - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_29] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_83] (rows=508200 width=1436) - Conds:RS_26._col1=RS_27._col0(Left Outer),Output:["_col0","_col1","_col3"] - <-Map 8 [SIMPLE_EDGE] - SHUFFLE [RS_26] - PartitionCols:_col1 - Select Operator [SEL_8] (rows=462000 width=1436) - Output:["_col0","_col1"] - Filter Operator [FIL_77] (rows=462000 width=1436) - predicate:i_item_sk is not null - Please refer to the previous TableScan [TS_6] - <-Reducer 11 [SIMPLE_EDGE] - SHUFFLE [RS_27] - PartitionCols:_col0 - Select Operator [SEL_15] (rows=115500 width=1436) - Output:["_col0","_col1"] - Group By Operator [GBY_14] (rows=115500 width=1436) - Output:["_col0"],keys:KEY._col0 - <-Map 8 [SIMPLE_EDGE] - SHUFFLE [RS_13] - PartitionCols:_col0 - Group By Operator [GBY_12] (rows=231000 width=1436) - Output:["_col0"],keys:i_item_id - Select Operator [SEL_11] (rows=231000 width=1436) - Output:["i_item_id"] - Filter Operator [FIL_78] (rows=231000 width=1436) - predicate:(i_item_sk) IN (2, 3, 5, 7, 11, 13, 17, 19, 23, 29) - Please refer to the previous TableScan [TS_6] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_43] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_82] (rows=88000001 width=860) - Conds:RS_40._col1=RS_41._col0(Inner),Output:["_col0","_col3","_col4"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_40] - PartitionCols:_col1 - Select Operator [SEL_2] (rows=80000000 width=860) - Output:["_col0","_col1"] - Filter Operator [FIL_75] (rows=80000000 width=860) - predicate:(c_customer_sk is not null and c_current_addr_sk is not null) - TableScan [TS_0] (rows=80000000 width=860) - default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_addr_sk"] - <-Map 7 [SIMPLE_EDGE] - SHUFFLE [RS_41] - PartitionCols:_col0 - Select Operator [SEL_5] (rows=40000000 width=1014) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_76] (rows=40000000 width=1014) - predicate:ca_address_sk is not null - TableScan [TS_3] (rows=40000000 width=1014) - default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_county","ca_zip"] + <-Select Operator [SEL_88] + Output:["_col3","_col4","_col6","_col8","_col12"] + <-Map 8 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_37] + Group By Operator [GBY_36] (rows=1 width=16) + Output:["_col0","_col1"],aggregations:["count()","count(i_item_id)"] + Select Operator [SEL_35] (rows=231000 width=1436) + Output:["i_item_id"] + Filter Operator [FIL_81] (rows=231000 width=1436) + predicate:(i_item_sk) IN (2, 3, 5, 7, 11, 13, 17, 19, 23, 29) + TableScan [TS_6] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id"] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_46] + Merge Join Operator [MERGEJOIN_86] (rows=191667562 width=135) + Conds:RS_43._col0=RS_44._col6(Inner),Output:["_col3","_col4","_col6","_col8","_col12"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_44] + PartitionCols:_col6 + Merge Join Operator [MERGEJOIN_85] (rows=174243235 width=135) + Conds:RS_29._col0=RS_30._col1(Inner),Output:["_col1","_col3","_col6","_col7"] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_84] (rows=158402938 width=135) + Conds:RS_22._col0=RS_23._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 13 [SIMPLE_EDGE] + SHUFFLE [RS_22] + PartitionCols:_col0 + Select Operator [SEL_18] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_79] (rows=144002668 width=135) + predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null and ws_item_sk is not null) + TableScan [TS_16] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_bill_customer_sk","ws_sales_price"] + <-Map 15 [SIMPLE_EDGE] + SHUFFLE [RS_23] + PartitionCols:_col0 + Select Operator [SEL_21] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_80] (rows=18262 width=1119) + predicate:((d_qoy = 2) and (d_year = 2000) and d_date_sk is not null) + TableScan [TS_19] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_qoy"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_29] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_83] (rows=508200 width=1436) + Conds:RS_26._col1=RS_27._col0(Left Outer),Output:["_col0","_col1","_col3"] + <-Map 8 [SIMPLE_EDGE] + SHUFFLE [RS_26] + PartitionCols:_col1 + Select Operator [SEL_8] (rows=462000 width=1436) + Output:["_col0","_col1"] + Filter Operator [FIL_77] (rows=462000 width=1436) + predicate:i_item_sk is not null + Please refer to the previous TableScan [TS_6] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col0 + Select Operator [SEL_15] (rows=115500 width=1436) + Output:["_col0","_col1"] + Group By Operator [GBY_14] (rows=115500 width=1436) + Output:["_col0"],keys:KEY._col0 + <-Map 8 [SIMPLE_EDGE] + SHUFFLE [RS_13] + PartitionCols:_col0 + Group By Operator [GBY_12] (rows=231000 width=1436) + Output:["_col0"],keys:i_item_id + Select Operator [SEL_11] (rows=231000 width=1436) + Output:["i_item_id"] + Filter Operator [FIL_78] (rows=231000 width=1436) + predicate:(i_item_sk) IN (2, 3, 5, 7, 11, 13, 17, 19, 23, 29) + Please refer to the previous TableScan [TS_6] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_43] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_82] (rows=88000001 width=860) + Conds:RS_40._col1=RS_41._col0(Inner),Output:["_col0","_col3","_col4"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_40] + PartitionCols:_col1 + Select Operator [SEL_2] (rows=80000000 width=860) + Output:["_col0","_col1"] + Filter Operator [FIL_75] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_current_addr_sk is not null) + TableScan [TS_0] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_addr_sk"] + <-Map 7 [SIMPLE_EDGE] + SHUFFLE [RS_41] + PartitionCols:_col0 + Select Operator [SEL_5] (rows=40000000 width=1014) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_76] (rows=40000000 width=1014) + predicate:ca_address_sk is not null + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_county","ca_zip"] diff --git ql/src/test/results/clientpositive/perf/query54.q.out ql/src/test/results/clientpositive/perf/query54.q.out index b9d0b8b..1b2b30d 100644 --- ql/src/test/results/clientpositive/perf/query54.q.out +++ ql/src/test/results/clientpositive/perf/query54.q.out @@ -1,7 +1,4 @@ -Warning: Shuffle Join MERGEJOIN[191][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 3' is a cross product -Warning: Shuffle Join MERGEJOIN[188][tables = [$hdt$_1, $hdt$_2, $hdt$_3, $hdt$_0, $hdt$_4]] in Stage 'Reducer 12' is a cross product -Warning: Shuffle Join MERGEJOIN[190][tables = [$hdt$_1, $hdt$_2, $hdt$_3, $hdt$_0, $hdt$_4, $hdt$_5, $hdt$_6]] in Stage 'Reducer 14' is a cross product -Warning: Shuffle Join MERGEJOIN[192][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 4' is a cross product +Warning: Shuffle Join MERGEJOIN[198][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 6' is a cross product PREHOOK: query: explain with my_customers as ( select distinct c_customer_sk @@ -118,44 +115,41 @@ Vertex dependency in root stage Map 21 <- Union 22 (CONTAINS) Map 27 <- Union 22 (CONTAINS) Reducer 10 <- Map 1 (SIMPLE_EDGE) -Reducer 11 <- Reducer 10 (CUSTOM_SIMPLE_EDGE) -Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE), Reducer 19 (CUSTOM_SIMPLE_EDGE) -Reducer 13 <- Map 32 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) -Reducer 14 <- Reducer 13 (CUSTOM_SIMPLE_EDGE), Reducer 15 (CUSTOM_SIMPLE_EDGE) -Reducer 15 <- Map 1 (SIMPLE_EDGE) -Reducer 17 <- Map 16 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) -Reducer 18 <- Reducer 17 (SIMPLE_EDGE), Reducer 26 (SIMPLE_EDGE) -Reducer 19 <- Map 31 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE) +Reducer 14 <- Map 13 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) +Reducer 15 <- Reducer 14 (SIMPLE_EDGE), Reducer 26 (SIMPLE_EDGE) +Reducer 16 <- Map 31 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Reducer 10 (CUSTOM_SIMPLE_EDGE), Reducer 16 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Map 32 (SIMPLE_EDGE), Reducer 17 (SIMPLE_EDGE) +Reducer 19 <- Map 1 (SIMPLE_EDGE), Reducer 18 (CUSTOM_SIMPLE_EDGE) Reducer 23 <- Map 28 (SIMPLE_EDGE), Union 22 (SIMPLE_EDGE) Reducer 24 <- Map 29 (SIMPLE_EDGE), Reducer 23 (SIMPLE_EDGE) Reducer 25 <- Map 30 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) Reducer 26 <- Reducer 25 (SIMPLE_EDGE) -Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE), Reducer 9 (CUSTOM_SIMPLE_EDGE) -Reducer 4 <- Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 3 (CUSTOM_SIMPLE_EDGE) -Reducer 5 <- Reducer 4 (SIMPLE_EDGE) -Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 3 <- Map 1 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Map 1 (SIMPLE_EDGE), Reducer 4 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Reducer 19 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE) Reducer 7 <- Reducer 6 (SIMPLE_EDGE) -Reducer 8 <- Map 1 (SIMPLE_EDGE) -Reducer 9 <- Reducer 8 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 7 + Reducer 9 File Output Operator [FS_129] Limit [LIM_128] (rows=100 width=158) Number of rows:100 Select Operator [SEL_127] (rows=1614130953450400 width=158) Output:["_col0","_col1","_col2"] - <-Reducer 6 [SIMPLE_EDGE] + <-Reducer 8 [SIMPLE_EDGE] SHUFFLE [RS_126] Select Operator [SEL_125] (rows=1614130953450400 width=158) Output:["_col0","_col1","_col2"] Group By Operator [GBY_124] (rows=1614130953450400 width=158) Output:["_col0","_col1"],aggregations:["count(VALUE._col0)"],keys:KEY._col0 - <-Reducer 5 [SIMPLE_EDGE] + <-Reducer 7 [SIMPLE_EDGE] SHUFFLE [RS_123] PartitionCols:_col0 Group By Operator [GBY_122] (rows=3228261906900801 width=158) @@ -164,7 +158,7 @@ Stage-0 Output:["_col0"] Group By Operator [GBY_119] (rows=3228261906900801 width=158) Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 4 [SIMPLE_EDGE] + <-Reducer 6 [SIMPLE_EDGE] SHUFFLE [RS_118] PartitionCols:_col0 Group By Operator [GBY_117] (rows=6456523813801603 width=158) @@ -175,212 +169,202 @@ Stage-0 predicate:_col11 BETWEEN _col13 AND _col15 Select Operator [SEL_114] (rows=58108714324214428 width=158) Output:["_col0","_col4","_col11","_col13","_col15"] - Merge Join Operator [MERGEJOIN_192] (rows=58108714324214428 width=158) + Merge Join Operator [MERGEJOIN_198] (rows=58108714324214428 width=158) Conds:(Inner),Output:["_col0","_col2","_col6","_col13","_col15"] - <-Reducer 14 [CUSTOM_SIMPLE_EDGE] + <-Reducer 19 [CUSTOM_SIMPLE_EDGE] PARTITION_ONLY_SHUFFLE [RS_112] Select Operator [SEL_107] (rows=6363893803988 width=1217) Output:["_col0","_col4","_col11","_col13"] - Merge Join Operator [MERGEJOIN_190] (rows=6363893803988 width=1217) + Merge Join Operator [MERGEJOIN_192] (rows=6363893803988 width=1217) Conds:(Left Outer),Output:["_col5","_col9","_col12","_col13"] - <-Reducer 13 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_104] - Merge Join Operator [MERGEJOIN_189] (rows=696954748 width=97) - Conds:RS_101._col7=RS_102._col0(Inner),Output:["_col5","_col9","_col12"] - <-Map 32 [SIMPLE_EDGE] - SHUFFLE [RS_102] - PartitionCols:_col0 - Select Operator [SEL_80] (rows=73049 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_180] (rows=73049 width=1119) - predicate:d_date_sk is not null - TableScan [TS_78] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq"] - <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_101] - PartitionCols:_col7 - Merge Join Operator [MERGEJOIN_188] (rows=633595212 width=97) - Conds:(Inner),Output:["_col5","_col7","_col9"] - <-Reducer 11 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_99] - Select Operator [SEL_77] (rows=1 width=8) - Filter Operator [FIL_76] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_74] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 10 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_73] - Group By Operator [GBY_72] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_70] (rows=9131 width=1119) - Group By Operator [GBY_69] (rows=9131 width=1119) - Output:["_col0"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_68] - PartitionCols:_col0 - Group By Operator [GBY_67] (rows=18262 width=1119) - Output:["_col0"],keys:_col0 - Select Operator [SEL_65] (rows=18262 width=1119) - Output:["_col0"] - Filter Operator [FIL_169] (rows=18262 width=1119) - predicate:((d_year = 1999) and (d_moy = 3)) - TableScan [TS_0] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_month_seq","d_year","d_moy"] - <-Reducer 19 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_98] - Merge Join Operator [MERGEJOIN_187] (rows=633595212 width=88) - Conds:RS_95._col5=RS_96._col1(Inner),Output:["_col5","_col7","_col9"] - <-Map 31 [SIMPLE_EDGE] - SHUFFLE [RS_96] - PartitionCols:_col1 - Select Operator [SEL_62] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_178] (rows=575995635 width=88) - predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_60] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_sales_price"] - <-Reducer 18 [SIMPLE_EDGE] - SHUFFLE [RS_95] - PartitionCols:_col5 - Merge Join Operator [MERGEJOIN_186] (rows=316240138 width=135) - Conds:RS_92._col0=RS_93._col1(Inner),Output:["_col5"] - <-Reducer 17 [SIMPLE_EDGE] - SHUFFLE [RS_92] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_182] (rows=44000000 width=1014) - Conds:RS_89._col1, _col2=RS_90._col0, _col1(Inner),Output:["_col0"] - <-Map 16 [SIMPLE_EDGE] - SHUFFLE [RS_89] - PartitionCols:_col1, _col2 - Select Operator [SEL_25] (rows=40000000 width=1014) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_171] (rows=40000000 width=1014) - predicate:(ca_address_sk is not null and ca_county is not null and ca_state is not null) - TableScan [TS_23] (rows=40000000 width=1014) - default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_county","ca_state"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_90] - PartitionCols:_col0, _col1 - Select Operator [SEL_28] (rows=1704 width=1910) - Output:["_col0","_col1"] - Filter Operator [FIL_172] (rows=1704 width=1910) - predicate:(s_county is not null and s_state is not null) - TableScan [TS_26] (rows=1704 width=1910) - default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_county","s_state"] - <-Reducer 26 [SIMPLE_EDGE] - SHUFFLE [RS_93] + <-Select Operator [SEL_193] + Output:["_col5","_col9","_col12"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_86] + PartitionCols:_col0 + Group By Operator [GBY_85] (rows=18262 width=1119) + Output:["_col0"],keys:_col0 + Select Operator [SEL_83] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_169] (rows=18262 width=1119) + predicate:((d_year = 1999) and (d_moy = 3)) + TableScan [TS_0] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_month_seq","d_year","d_moy"] + <-Reducer 18 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_104] + Merge Join Operator [MERGEJOIN_191] (rows=696954748 width=97) + Conds:RS_101._col7=RS_102._col0(Inner),Output:["_col5","_col9","_col12"] + <-Map 32 [SIMPLE_EDGE] + SHUFFLE [RS_102] + PartitionCols:_col0 + Select Operator [SEL_80] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_180] (rows=73049 width=1119) + predicate:d_date_sk is not null + TableScan [TS_78] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq"] + <-Reducer 17 [SIMPLE_EDGE] + SHUFFLE [RS_101] + PartitionCols:_col7 + Merge Join Operator [MERGEJOIN_188] (rows=633595212 width=97) + Conds:(Inner),Output:["_col5","_col7","_col9"] + <-Select Operator [SEL_189] + Output:["_col5","_col7","_col9"] + <-Reducer 10 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_73] + Group By Operator [GBY_72] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_70] (rows=9131 width=1119) + Group By Operator [GBY_69] (rows=9131 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_68] + PartitionCols:_col0 + Group By Operator [GBY_67] (rows=18262 width=1119) + Output:["_col0"],keys:_col0 + Select Operator [SEL_65] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Filter Operator [FIL_169] + <-Reducer 16 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_98] + Merge Join Operator [MERGEJOIN_187] (rows=633595212 width=88) + Conds:RS_95._col5=RS_96._col1(Inner),Output:["_col5","_col7","_col9"] + <-Map 31 [SIMPLE_EDGE] + SHUFFLE [RS_96] PartitionCols:_col1 - Select Operator [SEL_59] (rows=287491029 width=135) - Output:["_col0","_col1"] - Group By Operator [GBY_58] (rows=287491029 width=135) - Output:["_col0","_col1"],keys:KEY._col0, KEY._col1 - <-Reducer 25 [SIMPLE_EDGE] - SHUFFLE [RS_57] - PartitionCols:_col0, _col1 - Group By Operator [GBY_56] (rows=574982058 width=135) - Output:["_col0","_col1"],keys:_col10, _col9 - Merge Join Operator [MERGEJOIN_185] (rows=574982058 width=135) - Conds:RS_52._col1=RS_53._col0(Inner),Output:["_col9","_col10"] - <-Map 30 [SIMPLE_EDGE] - SHUFFLE [RS_53] - PartitionCols:_col0 - Select Operator [SEL_45] (rows=80000000 width=860) - Output:["_col0","_col1"] - Filter Operator [FIL_177] (rows=80000000 width=860) - predicate:(c_customer_sk is not null and c_current_addr_sk is not null) - TableScan [TS_43] (rows=80000000 width=860) - default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_addr_sk"] - <-Reducer 24 [SIMPLE_EDGE] - SHUFFLE [RS_52] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_184] (rows=522710951 width=135) - Conds:RS_49._col2=RS_50._col0(Inner),Output:["_col1"] - <-Map 29 [SIMPLE_EDGE] - SHUFFLE [RS_50] + Select Operator [SEL_62] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_178] (rows=575995635 width=88) + predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_60] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_sales_price"] + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_95] + PartitionCols:_col5 + Merge Join Operator [MERGEJOIN_186] (rows=316240138 width=135) + Conds:RS_92._col0=RS_93._col1(Inner),Output:["_col5"] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_92] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_182] (rows=44000000 width=1014) + Conds:RS_89._col1, _col2=RS_90._col0, _col1(Inner),Output:["_col0"] + <-Map 13 [SIMPLE_EDGE] + SHUFFLE [RS_89] + PartitionCols:_col1, _col2 + Select Operator [SEL_25] (rows=40000000 width=1014) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_171] (rows=40000000 width=1014) + predicate:(ca_address_sk is not null and ca_county is not null and ca_state is not null) + TableScan [TS_23] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_county","ca_state"] + <-Map 20 [SIMPLE_EDGE] + SHUFFLE [RS_90] + PartitionCols:_col0, _col1 + Select Operator [SEL_28] (rows=1704 width=1910) + Output:["_col0","_col1"] + Filter Operator [FIL_172] (rows=1704 width=1910) + predicate:(s_county is not null and s_state is not null) + TableScan [TS_26] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_county","s_state"] + <-Reducer 26 [SIMPLE_EDGE] + SHUFFLE [RS_93] + PartitionCols:_col1 + Select Operator [SEL_59] (rows=287491029 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_58] (rows=287491029 width=135) + Output:["_col0","_col1"],keys:KEY._col0, KEY._col1 + <-Reducer 25 [SIMPLE_EDGE] + SHUFFLE [RS_57] + PartitionCols:_col0, _col1 + Group By Operator [GBY_56] (rows=574982058 width=135) + Output:["_col0","_col1"],keys:_col10, _col9 + Merge Join Operator [MERGEJOIN_185] (rows=574982058 width=135) + Conds:RS_52._col1=RS_53._col0(Inner),Output:["_col9","_col10"] + <-Map 30 [SIMPLE_EDGE] + SHUFFLE [RS_53] PartitionCols:_col0 - Select Operator [SEL_42] (rows=115500 width=1436) - Output:["_col0"] - Filter Operator [FIL_176] (rows=115500 width=1436) - predicate:((i_category = 'Jewelry') and (i_class = 'consignment') and i_item_sk is not null) - TableScan [TS_40] (rows=462000 width=1436) - default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_class","i_category"] - <-Reducer 23 [SIMPLE_EDGE] - SHUFFLE [RS_49] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_183] (rows=475191764 width=135) - Conds:Union 22._col0=RS_47._col0(Inner),Output:["_col1","_col2"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_47] + Select Operator [SEL_45] (rows=80000000 width=860) + Output:["_col0","_col1"] + Filter Operator [FIL_177] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_current_addr_sk is not null) + TableScan [TS_43] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_addr_sk"] + <-Reducer 24 [SIMPLE_EDGE] + SHUFFLE [RS_52] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_184] (rows=522710951 width=135) + Conds:RS_49._col2=RS_50._col0(Inner),Output:["_col1"] + <-Map 29 [SIMPLE_EDGE] + SHUFFLE [RS_50] PartitionCols:_col0 - Select Operator [SEL_39] (rows=18262 width=1119) + Select Operator [SEL_42] (rows=115500 width=1436) Output:["_col0"] - Filter Operator [FIL_175] (rows=18262 width=1119) - predicate:((d_moy = 3) and (d_year = 1999) and d_date_sk is not null) - TableScan [TS_37] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] - <-Union 22 [SIMPLE_EDGE] - <-Map 21 [CONTAINS] - Reduce Output Operator [RS_46] - PartitionCols:_col0 - Select Operator [SEL_31] (rows=287989836 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_173] (rows=287989836 width=135) - predicate:(cs_item_sk is not null and cs_sold_date_sk is not null and cs_bill_customer_sk is not null) - TableScan [TS_29] (rows=287989836 width=135) - Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_item_sk"] - <-Map 27 [CONTAINS] - Reduce Output Operator [RS_46] - PartitionCols:_col0 - Select Operator [SEL_34] (rows=144002668 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_174] (rows=144002668 width=135) - predicate:(ws_item_sk is not null and ws_sold_date_sk is not null and ws_bill_customer_sk is not null) - TableScan [TS_32] (rows=144002668 width=135) - Output:["ws_sold_date_sk","ws_item_sk","ws_bill_customer_sk"] - <-Reducer 15 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_105] - Group By Operator [GBY_87] (rows=9131 width=1119) - Output:["_col0"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_86] - PartitionCols:_col0 - Group By Operator [GBY_85] (rows=18262 width=1119) - Output:["_col0"],keys:_col0 - Select Operator [SEL_83] (rows=18262 width=1119) - Output:["_col0"] - Please refer to the previous Filter Operator [FIL_169] - <-Reducer 3 [CUSTOM_SIMPLE_EDGE] + Filter Operator [FIL_176] (rows=115500 width=1436) + predicate:((i_category = 'Jewelry') and (i_class = 'consignment') and i_item_sk is not null) + TableScan [TS_40] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_class","i_category"] + <-Reducer 23 [SIMPLE_EDGE] + SHUFFLE [RS_49] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_183] (rows=475191764 width=135) + Conds:Union 22._col0=RS_47._col0(Inner),Output:["_col1","_col2"] + <-Map 28 [SIMPLE_EDGE] + SHUFFLE [RS_47] + PartitionCols:_col0 + Select Operator [SEL_39] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_175] (rows=18262 width=1119) + predicate:((d_moy = 3) and (d_year = 1999) and d_date_sk is not null) + TableScan [TS_37] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Union 22 [SIMPLE_EDGE] + <-Map 21 [CONTAINS] + Reduce Output Operator [RS_46] + PartitionCols:_col0 + Select Operator [SEL_31] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_173] (rows=287989836 width=135) + predicate:(cs_item_sk is not null and cs_sold_date_sk is not null and cs_bill_customer_sk is not null) + TableScan [TS_29] (rows=287989836 width=135) + Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_item_sk"] + <-Map 27 [CONTAINS] + Reduce Output Operator [RS_46] + PartitionCols:_col0 + Select Operator [SEL_34] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_174] (rows=144002668 width=135) + predicate:(ws_item_sk is not null and ws_sold_date_sk is not null and ws_bill_customer_sk is not null) + TableScan [TS_32] (rows=144002668 width=135) + Output:["ws_sold_date_sk","ws_item_sk","ws_bill_customer_sk"] + <-Reducer 5 [CUSTOM_SIMPLE_EDGE] PARTITION_ONLY_SHUFFLE [RS_111] - Merge Join Operator [MERGEJOIN_191] (rows=9131 width=1128) + Merge Join Operator [MERGEJOIN_195] (rows=9131 width=1128) Conds:(Right Outer),Output:["_col0"] - <-Reducer 2 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_108] - Group By Operator [GBY_6] (rows=9131 width=1119) - Output:["_col0"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_5] - PartitionCols:_col0 - Group By Operator [GBY_4] (rows=18262 width=1119) - Output:["_col0"],keys:_col0 - Select Operator [SEL_2] (rows=18262 width=1119) - Output:["_col0"] - Please refer to the previous Filter Operator [FIL_169] - <-Reducer 9 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_109] - Select Operator [SEL_22] (rows=1 width=8) - Filter Operator [FIL_21] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_19] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 8 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_18] - Group By Operator [GBY_17] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_15] (rows=9131 width=1119) - Group By Operator [GBY_14] (rows=9131 width=1119) - Output:["_col0"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_13] - PartitionCols:_col0 - Please refer to the previous Group By Operator [GBY_4] + <-Select Operator [SEL_197] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_5] + PartitionCols:_col0 + Group By Operator [GBY_4] (rows=18262 width=1119) + Output:["_col0"],keys:_col0 + Select Operator [SEL_2] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Filter Operator [FIL_169] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_109] + Select Operator [SEL_22] (rows=1 width=8) + Filter Operator [FIL_21] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_19] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_18] + Group By Operator [GBY_17] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_15] (rows=9131 width=1119) + Group By Operator [GBY_14] (rows=9131 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_13] + PartitionCols:_col0 + Please refer to the previous Group By Operator [GBY_4] diff --git ql/src/test/results/clientpositive/perf/query58.q.out ql/src/test/results/clientpositive/perf/query58.q.out index 5b37f36..3e09580 100644 --- ql/src/test/results/clientpositive/perf/query58.q.out +++ ql/src/test/results/clientpositive/perf/query58.q.out @@ -1,6 +1,3 @@ -Warning: Shuffle Join MERGEJOIN[265][tables = [$hdt$_4, $hdt$_5]] in Stage 'Reducer 20' is a cross product -Warning: Shuffle Join MERGEJOIN[269][tables = [$hdt$_5, $hdt$_6]] in Stage 'Reducer 24' is a cross product -Warning: Shuffle Join MERGEJOIN[273][tables = [$hdt$_6, $hdt$_7]] in Stage 'Reducer 28' is a cross product PREHOOK: query: explain with ss_items as (select i_item_id item_id @@ -136,23 +133,17 @@ Reducer 10 <- Reducer 9 (SIMPLE_EDGE) Reducer 11 <- Map 33 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) Reducer 12 <- Reducer 11 (SIMPLE_EDGE), Reducer 17 (SIMPLE_EDGE) Reducer 13 <- Reducer 12 (SIMPLE_EDGE) -Reducer 15 <- Map 14 (SIMPLE_EDGE), Reducer 22 (SIMPLE_EDGE) -Reducer 16 <- Map 14 (SIMPLE_EDGE), Reducer 26 (SIMPLE_EDGE) +Reducer 15 <- Map 14 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) +Reducer 16 <- Map 14 (SIMPLE_EDGE), Reducer 27 (SIMPLE_EDGE) Reducer 17 <- Map 14 (SIMPLE_EDGE), Reducer 30 (SIMPLE_EDGE) -Reducer 19 <- Map 18 (CUSTOM_SIMPLE_EDGE) Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 20 <- Map 31 (CUSTOM_SIMPLE_EDGE), Reducer 19 (CUSTOM_SIMPLE_EDGE) -Reducer 21 <- Map 31 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) -Reducer 22 <- Reducer 21 (SIMPLE_EDGE) -Reducer 23 <- Map 18 (CUSTOM_SIMPLE_EDGE) -Reducer 24 <- Map 31 (CUSTOM_SIMPLE_EDGE), Reducer 23 (CUSTOM_SIMPLE_EDGE) -Reducer 25 <- Map 31 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) -Reducer 26 <- Reducer 25 (SIMPLE_EDGE) -Reducer 27 <- Map 18 (CUSTOM_SIMPLE_EDGE) -Reducer 28 <- Map 31 (CUSTOM_SIMPLE_EDGE), Reducer 27 (CUSTOM_SIMPLE_EDGE) -Reducer 29 <- Map 31 (SIMPLE_EDGE), Reducer 28 (SIMPLE_EDGE) +Reducer 23 <- Map 18 (CUSTOM_SIMPLE_EDGE), Map 22 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Map 22 (SIMPLE_EDGE), Reducer 23 (SIMPLE_EDGE) +Reducer 26 <- Map 18 (CUSTOM_SIMPLE_EDGE), Map 22 (CUSTOM_SIMPLE_EDGE) +Reducer 27 <- Map 22 (SIMPLE_EDGE), Reducer 26 (SIMPLE_EDGE) +Reducer 29 <- Map 18 (CUSTOM_SIMPLE_EDGE), Map 22 (CUSTOM_SIMPLE_EDGE) Reducer 3 <- Reducer 15 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 30 <- Reducer 29 (SIMPLE_EDGE) +Reducer 30 <- Map 22 (SIMPLE_EDGE), Reducer 29 (SIMPLE_EDGE) Reducer 4 <- Reducer 3 (SIMPLE_EDGE) Reducer 5 <- Reducer 10 (SIMPLE_EDGE), Reducer 13 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) Reducer 6 <- Reducer 5 (SIMPLE_EDGE) @@ -175,7 +166,7 @@ Stage-0 Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] Filter Operator [FIL_154] (rows=1442 width=88) predicate:(_col5 BETWEEN (0.9 * _col1) AND (1.1 * _col1) and _col5 BETWEEN (0.9 * _col3) AND (1.1 * _col3) and _col1 BETWEEN (0.9 * _col5) AND (1.1 * _col5) and _col3 BETWEEN (0.9 * _col5) AND (1.1 * _col5) and _col1 BETWEEN (0.9 * _col3) AND (1.1 * _col3) and _col3 BETWEEN (0.9 * _col1) AND (1.1 * _col1)) - Merge Join Operator [MERGEJOIN_279] (rows=766650239 width=88) + Merge Join Operator [MERGEJOIN_291] (rows=766650239 width=88) Conds:RS_150._col0=RS_151._col0(Inner),RS_150._col0=RS_152._col0(Inner),Output:["_col0","_col1","_col3","_col5"] <-Reducer 10 [SIMPLE_EDGE] SHUFFLE [RS_151] @@ -187,75 +178,69 @@ Stage-0 PartitionCols:_col0 Group By Operator [GBY_96] (rows=696954748 width=88) Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_277] (rows=696954748 width=88) + Merge Join Operator [MERGEJOIN_289] (rows=696954748 width=88) Conds:RS_92._col0=RS_93._col0(Inner),Output:["_col2","_col4"] <-Reducer 16 [SIMPLE_EDGE] SHUFFLE [RS_93] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_271] (rows=80353 width=1119) - Conds:RS_85._col1=RS_86._col0(Inner),Output:["_col0"] - <-Map 14 [SIMPLE_EDGE] - SHUFFLE [RS_85] - PartitionCols:_col1 - Select Operator [SEL_8] (rows=73049 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_248] (rows=73049 width=1119) - predicate:(d_date is not null and d_date_sk is not null) - TableScan [TS_6] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] - <-Reducer 26 [SIMPLE_EDGE] - SHUFFLE [RS_86] - PartitionCols:_col0 - Group By Operator [GBY_83] (rows=40176 width=1119) - Output:["_col0"],keys:KEY._col0 - <-Reducer 25 [SIMPLE_EDGE] - SHUFFLE [RS_82] - PartitionCols:_col0 - Group By Operator [GBY_81] (rows=80353 width=1119) - Output:["_col0"],keys:_col2 - Merge Join Operator [MERGEJOIN_270] (rows=80353 width=1119) - Conds:RS_77._col1=RS_78._col1(Inner),Output:["_col2"] - <-Map 31 [SIMPLE_EDGE] - SHUFFLE [RS_78] - PartitionCols:_col1 - Select Operator [SEL_73] (rows=73049 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_257] (rows=73049 width=1119) - predicate:(d_week_seq is not null and d_date is not null) - TableScan [TS_18] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date","d_week_seq"] - <-Reducer 24 [SIMPLE_EDGE] - SHUFFLE [RS_77] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_269] (rows=36524 width=1128) - Conds:(Inner),Output:["_col1"] - <-Map 31 [CUSTOM_SIMPLE_EDGE] + Merge Join Operator [MERGEJOIN_277] (rows=80353 width=1119) + Conds:SEL_278._col1=GBY_83._col0(Inner),Output:["_col0"] + <-Group By Operator [GBY_83] (rows=40176 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Select Operator [SEL_278] + Output:["_col0","_col1"] + <-Map 14 [SIMPLE_EDGE] + SHUFFLE [RS_85] + PartitionCols:_col1 + Select Operator [SEL_8] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_248] (rows=73049 width=1119) + predicate:(d_date is not null and d_date_sk is not null) + TableScan [TS_6] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Reducer 27 [SIMPLE_EDGE] + SHUFFLE [RS_82] + PartitionCols:_col0 + Group By Operator [GBY_81] (rows=80353 width=1119) + Output:["_col0"],keys:_col2 + Merge Join Operator [MERGEJOIN_276] (rows=80353 width=1119) + Conds:RS_77._col1=RS_78._col1(Inner),Output:["_col2"] + <-Map 22 [SIMPLE_EDGE] + SHUFFLE [RS_78] + PartitionCols:_col1 + Select Operator [SEL_73] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_257] (rows=73049 width=1119) + predicate:(d_week_seq is not null and d_date is not null) + TableScan [TS_18] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date","d_week_seq"] + <-Reducer 26 [SIMPLE_EDGE] + SHUFFLE [RS_77] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_273] (rows=36524 width=1128) + Conds:(Inner),Output:["_col1"] + <-Select Operator [SEL_275] + Output:["_col0"] + <-Map 22 [CUSTOM_SIMPLE_EDGE] SHUFFLE [RS_75] Select Operator [SEL_70] (rows=36524 width=1119) Output:["_col0"] Filter Operator [FIL_256] (rows=36524 width=1119) predicate:((d_date = '1998-02-19') and d_week_seq is not null) Please refer to the previous TableScan [TS_18] - <-Reducer 23 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_74] - Select Operator [SEL_67] (rows=1 width=8) - Filter Operator [FIL_66] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_64] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Map 18 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_63] - Group By Operator [GBY_12] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_11] (rows=36524 width=1119) - Filter Operator [FIL_249] (rows=36524 width=1119) - predicate:(d_date = '1998-02-19') - TableScan [TS_9] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date"] + <-Map 18 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_63] + Group By Operator [GBY_12] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_11] (rows=36524 width=1119) + Filter Operator [FIL_249] (rows=36524 width=1119) + predicate:(d_date = '1998-02-19') + TableScan [TS_9] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date"] <-Reducer 8 [SIMPLE_EDGE] SHUFFLE [RS_92] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_268] (rows=633595212 width=88) + Merge Join Operator [MERGEJOIN_272] (rows=633595212 width=88) Conds:RS_89._col1=RS_90._col0(Inner),Output:["_col0","_col2","_col4"] <-Map 7 [SIMPLE_EDGE] SHUFFLE [RS_90] @@ -285,12 +270,12 @@ Stage-0 PartitionCols:_col0 Group By Operator [GBY_146] (rows=174243235 width=135) Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_278] (rows=174243235 width=135) + Merge Join Operator [MERGEJOIN_290] (rows=174243235 width=135) Conds:RS_142._col0=RS_143._col0(Inner),Output:["_col2","_col4"] <-Reducer 11 [SIMPLE_EDGE] SHUFFLE [RS_142] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_272] (rows=158402938 width=135) + Merge Join Operator [MERGEJOIN_280] (rows=158402938 width=135) Conds:RS_139._col1=RS_140._col0(Inner),Output:["_col0","_col2","_col4"] <-Map 7 [SIMPLE_EDGE] SHUFFLE [RS_140] @@ -308,54 +293,48 @@ Stage-0 <-Reducer 17 [SIMPLE_EDGE] SHUFFLE [RS_143] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_275] (rows=80353 width=1119) - Conds:RS_135._col1=RS_136._col0(Inner),Output:["_col0"] - <-Map 14 [SIMPLE_EDGE] - SHUFFLE [RS_135] - PartitionCols:_col1 - Please refer to the previous Select Operator [SEL_8] - <-Reducer 30 [SIMPLE_EDGE] - SHUFFLE [RS_136] - PartitionCols:_col0 - Group By Operator [GBY_133] (rows=40176 width=1119) - Output:["_col0"],keys:KEY._col0 - <-Reducer 29 [SIMPLE_EDGE] - SHUFFLE [RS_132] - PartitionCols:_col0 - Group By Operator [GBY_131] (rows=80353 width=1119) - Output:["_col0"],keys:_col2 - Merge Join Operator [MERGEJOIN_274] (rows=80353 width=1119) - Conds:RS_127._col1=RS_128._col1(Inner),Output:["_col2"] - <-Map 31 [SIMPLE_EDGE] - SHUFFLE [RS_128] - PartitionCols:_col1 - Select Operator [SEL_123] (rows=73049 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_263] (rows=73049 width=1119) - predicate:(d_week_seq is not null and d_date is not null) - Please refer to the previous TableScan [TS_18] - <-Reducer 28 [SIMPLE_EDGE] - SHUFFLE [RS_127] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_273] (rows=36524 width=1128) - Conds:(Inner),Output:["_col1"] - <-Map 31 [CUSTOM_SIMPLE_EDGE] + Merge Join Operator [MERGEJOIN_285] (rows=80353 width=1119) + Conds:SEL_286._col1=GBY_133._col0(Inner),Output:["_col0"] + <-Group By Operator [GBY_133] (rows=40176 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Select Operator [SEL_286] + Output:["_col0","_col1"] + <-Map 14 [SIMPLE_EDGE] + SHUFFLE [RS_135] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_8] + <-Reducer 30 [SIMPLE_EDGE] + SHUFFLE [RS_132] + PartitionCols:_col0 + Group By Operator [GBY_131] (rows=80353 width=1119) + Output:["_col0"],keys:_col2 + Merge Join Operator [MERGEJOIN_284] (rows=80353 width=1119) + Conds:RS_127._col1=RS_128._col1(Inner),Output:["_col2"] + <-Map 22 [SIMPLE_EDGE] + SHUFFLE [RS_128] + PartitionCols:_col1 + Select Operator [SEL_123] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_263] (rows=73049 width=1119) + predicate:(d_week_seq is not null and d_date is not null) + Please refer to the previous TableScan [TS_18] + <-Reducer 29 [SIMPLE_EDGE] + SHUFFLE [RS_127] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_281] (rows=36524 width=1128) + Conds:(Inner),Output:["_col1"] + <-Select Operator [SEL_283] + Output:["_col0"] + <-Map 22 [CUSTOM_SIMPLE_EDGE] SHUFFLE [RS_125] Select Operator [SEL_120] (rows=36524 width=1119) Output:["_col0"] Filter Operator [FIL_262] (rows=36524 width=1119) predicate:((d_date = '1998-02-19') and d_week_seq is not null) Please refer to the previous TableScan [TS_18] - <-Reducer 27 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_124] - Select Operator [SEL_117] (rows=1 width=8) - Filter Operator [FIL_116] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_114] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Map 18 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_113] - Please refer to the previous Group By Operator [GBY_12] + <-Map 18 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_113] + Please refer to the previous Group By Operator [GBY_12] <-Reducer 4 [SIMPLE_EDGE] SHUFFLE [RS_150] PartitionCols:_col0 @@ -366,59 +345,53 @@ Stage-0 PartitionCols:_col0 Group By Operator [GBY_46] (rows=348467716 width=135) Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_276] (rows=348467716 width=135) + Merge Join Operator [MERGEJOIN_288] (rows=348467716 width=135) Conds:RS_42._col0=RS_43._col0(Inner),Output:["_col2","_col4"] <-Reducer 15 [SIMPLE_EDGE] SHUFFLE [RS_43] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_267] (rows=80353 width=1119) - Conds:RS_35._col1=RS_36._col0(Inner),Output:["_col0"] - <-Map 14 [SIMPLE_EDGE] - SHUFFLE [RS_35] - PartitionCols:_col1 - Please refer to the previous Select Operator [SEL_8] - <-Reducer 22 [SIMPLE_EDGE] - SHUFFLE [RS_36] - PartitionCols:_col0 - Group By Operator [GBY_33] (rows=40176 width=1119) - Output:["_col0"],keys:KEY._col0 - <-Reducer 21 [SIMPLE_EDGE] - SHUFFLE [RS_32] - PartitionCols:_col0 - Group By Operator [GBY_31] (rows=80353 width=1119) - Output:["_col0"],keys:_col2 - Merge Join Operator [MERGEJOIN_266] (rows=80353 width=1119) - Conds:RS_27._col1=RS_28._col1(Inner),Output:["_col2"] - <-Map 31 [SIMPLE_EDGE] - SHUFFLE [RS_28] - PartitionCols:_col1 - Select Operator [SEL_23] (rows=73049 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_251] (rows=73049 width=1119) - predicate:(d_week_seq is not null and d_date is not null) - Please refer to the previous TableScan [TS_18] - <-Reducer 20 [SIMPLE_EDGE] - SHUFFLE [RS_27] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_265] (rows=36524 width=1128) - Conds:(Inner),Output:["_col1"] - <-Map 31 [CUSTOM_SIMPLE_EDGE] + Merge Join Operator [MERGEJOIN_269] (rows=80353 width=1119) + Conds:SEL_270._col1=GBY_33._col0(Inner),Output:["_col0"] + <-Group By Operator [GBY_33] (rows=40176 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Select Operator [SEL_270] + Output:["_col0","_col1"] + <-Map 14 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_8] + <-Reducer 24 [SIMPLE_EDGE] + SHUFFLE [RS_32] + PartitionCols:_col0 + Group By Operator [GBY_31] (rows=80353 width=1119) + Output:["_col0"],keys:_col2 + Merge Join Operator [MERGEJOIN_268] (rows=80353 width=1119) + Conds:RS_27._col1=RS_28._col1(Inner),Output:["_col2"] + <-Map 22 [SIMPLE_EDGE] + SHUFFLE [RS_28] + PartitionCols:_col1 + Select Operator [SEL_23] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_251] (rows=73049 width=1119) + predicate:(d_week_seq is not null and d_date is not null) + Please refer to the previous TableScan [TS_18] + <-Reducer 23 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_265] (rows=36524 width=1128) + Conds:(Inner),Output:["_col1"] + <-Select Operator [SEL_267] + Output:["_col0"] + <-Map 22 [CUSTOM_SIMPLE_EDGE] SHUFFLE [RS_25] Select Operator [SEL_20] (rows=36524 width=1119) Output:["_col0"] Filter Operator [FIL_250] (rows=36524 width=1119) predicate:((d_date = '1998-02-19') and d_week_seq is not null) Please refer to the previous TableScan [TS_18] - <-Reducer 19 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_24] - Select Operator [SEL_17] (rows=1 width=8) - Filter Operator [FIL_16] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_14] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Map 18 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_13] - Please refer to the previous Group By Operator [GBY_12] + <-Map 18 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_13] + Please refer to the previous Group By Operator [GBY_12] <-Reducer 2 [SIMPLE_EDGE] SHUFFLE [RS_42] PartitionCols:_col0 diff --git ql/src/test/results/clientpositive/perf/query6.q.out ql/src/test/results/clientpositive/perf/query6.q.out index 03fff79..9baec10 100644 --- ql/src/test/results/clientpositive/perf/query6.q.out +++ ql/src/test/results/clientpositive/perf/query6.q.out @@ -1,4 +1,3 @@ -Warning: Shuffle Join MERGEJOIN[111][tables = [$hdt$_5, $hdt$_6]] in Stage 'Reducer 16' is a cross product PREHOOK: query: explain select a.ca_state state, count(*) cnt from customer_address a @@ -53,15 +52,14 @@ Plan optimized by CBO. Vertex dependency in root stage Reducer 12 <- Map 11 (SIMPLE_EDGE), Map 13 (SIMPLE_EDGE) -Reducer 15 <- Map 14 (SIMPLE_EDGE) -Reducer 16 <- Reducer 15 (CUSTOM_SIMPLE_EDGE), Reducer 19 (CUSTOM_SIMPLE_EDGE) -Reducer 17 <- Map 20 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) -Reducer 18 <- Map 14 (SIMPLE_EDGE) -Reducer 19 <- Reducer 18 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 14 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Map 14 (SIMPLE_EDGE), Reducer 17 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 20 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE) Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) Reducer 3 <- Map 10 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) Reducer 4 <- Reducer 12 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Reducer 17 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 5 <- Reducer 19 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) Reducer 6 <- Reducer 5 (SIMPLE_EDGE) Reducer 7 <- Reducer 6 (SIMPLE_EDGE) Reducer 9 <- Map 8 (SIMPLE_EDGE) @@ -93,14 +91,14 @@ Stage-0 predicate:(_col10 > (1.2 * CASE WHEN (_col15 is null) THEN (null) ELSE (_col14) END)) Select Operator [SEL_66] (rows=766650239 width=88) Output:["_col1","_col10","_col14","_col15"] - Merge Join Operator [MERGEJOIN_114] (rows=766650239 width=88) + Merge Join Operator [MERGEJOIN_116] (rows=766650239 width=88) Conds:RS_63._col6=RS_64._col0(Inner),Output:["_col1","_col3","_col4","_col12"] - <-Reducer 17 [SIMPLE_EDGE] + <-Reducer 19 [SIMPLE_EDGE] SHUFFLE [RS_64] PartitionCols:_col0 Select Operator [SEL_53] (rows=80353 width=1119) Output:["_col0"] - Merge Join Operator [MERGEJOIN_112] (rows=80353 width=1119) + Merge Join Operator [MERGEJOIN_114] (rows=80353 width=1119) Conds:RS_50._col0=RS_51._col1(Inner),Output:["_col2"] <-Map 20 [SIMPLE_EDGE] SHUFFLE [RS_51] @@ -111,54 +109,51 @@ Stage-0 predicate:(d_date_sk is not null and d_month_seq is not null) TableScan [TS_44] (rows=73049 width=1119) default@date_dim,d,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq"] - <-Reducer 16 [SIMPLE_EDGE] + <-Reducer 18 [SIMPLE_EDGE] SHUFFLE [RS_50] PartitionCols:_col0 Merge Join Operator [MERGEJOIN_111] (rows=9131 width=1128) Conds:(Inner),Output:["_col0"] - <-Reducer 15 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_47] - Group By Operator [GBY_28] (rows=9131 width=1119) - Output:["_col0"],keys:KEY._col0 - <-Map 14 [SIMPLE_EDGE] - SHUFFLE [RS_27] - PartitionCols:_col0 - Group By Operator [GBY_26] (rows=18262 width=1119) - Output:["_col0"],keys:d_month_seq - Select Operator [SEL_25] (rows=18262 width=1119) - Output:["d_month_seq"] - Filter Operator [FIL_105] (rows=18262 width=1119) - predicate:((d_year = 2000) and (d_moy = 2) and d_month_seq is not null) - TableScan [TS_23] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_month_seq","d_year","d_moy"] - <-Reducer 19 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_48] - Select Operator [SEL_43] (rows=1 width=8) - Filter Operator [FIL_42] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_40] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 18 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_39] - Group By Operator [GBY_38] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_36] (rows=9131 width=1119) - Group By Operator [GBY_35] (rows=9131 width=1119) - Output:["_col0"],keys:KEY._col0 - <-Map 14 [SIMPLE_EDGE] - SHUFFLE [RS_34] - PartitionCols:_col0 - Group By Operator [GBY_33] (rows=18262 width=1119) - Output:["_col0"],keys:d_month_seq - Select Operator [SEL_32] (rows=18262 width=1119) - Output:["d_month_seq"] - Filter Operator [FIL_106] (rows=18262 width=1119) - predicate:((d_year = 2000) and (d_moy = 2)) - Please refer to the previous TableScan [TS_23] + <-Select Operator [SEL_113] + <-Map 14 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col0 + Group By Operator [GBY_26] (rows=18262 width=1119) + Output:["_col0"],keys:d_month_seq + Select Operator [SEL_25] (rows=18262 width=1119) + Output:["d_month_seq"] + Filter Operator [FIL_105] (rows=18262 width=1119) + predicate:((d_year = 2000) and (d_moy = 2) and d_month_seq is not null) + TableScan [TS_23] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_month_seq","d_year","d_moy"] + <-Reducer 17 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_48] + Select Operator [SEL_43] (rows=1 width=8) + Filter Operator [FIL_42] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_40] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 16 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_39] + Group By Operator [GBY_38] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_36] (rows=9131 width=1119) + Group By Operator [GBY_35] (rows=9131 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Map 14 [SIMPLE_EDGE] + SHUFFLE [RS_34] + PartitionCols:_col0 + Group By Operator [GBY_33] (rows=18262 width=1119) + Output:["_col0"],keys:d_month_seq + Select Operator [SEL_32] (rows=18262 width=1119) + Output:["d_month_seq"] + Filter Operator [FIL_106] (rows=18262 width=1119) + predicate:((d_year = 2000) and (d_moy = 2)) + Please refer to the previous TableScan [TS_23] <-Reducer 4 [SIMPLE_EDGE] SHUFFLE [RS_63] PartitionCols:_col6 - Merge Join Operator [MERGEJOIN_113] (rows=696954748 width=88) + Merge Join Operator [MERGEJOIN_115] (rows=696954748 width=88) Conds:RS_60._col8=RS_61._col0(Inner),Output:["_col1","_col3","_col4","_col6","_col12"] <-Reducer 12 [SIMPLE_EDGE] SHUFFLE [RS_61] diff --git ql/src/test/results/clientpositive/perf/query61.q.out ql/src/test/results/clientpositive/perf/query61.q.out index 93d4d42..6d6748f 100644 --- ql/src/test/results/clientpositive/perf/query61.q.out +++ ql/src/test/results/clientpositive/perf/query61.q.out @@ -1,4 +1,3 @@ -Warning: Shuffle Join MERGEJOIN[156][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 5' is a cross product PREHOOK: query: explain select promotions,total,cast(promotions as decimal(15,4))/cast(total as decimal(15,4))*100 from @@ -97,184 +96,181 @@ Reducer 18 <- Map 20 (SIMPLE_EDGE), Reducer 17 (SIMPLE_EDGE) Reducer 19 <- Map 21 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE) Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) Reducer 3 <- Reducer 15 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 4 <- Reducer 3 (CUSTOM_SIMPLE_EDGE) -Reducer 5 <- Reducer 4 (CUSTOM_SIMPLE_EDGE), Reducer 9 (CUSTOM_SIMPLE_EDGE) -Reducer 6 <- Reducer 5 (SIMPLE_EDGE) -Reducer 7 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) -Reducer 8 <- Reducer 19 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) -Reducer 9 <- Reducer 8 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (CUSTOM_SIMPLE_EDGE), Reducer 8 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 7 <- Reducer 19 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (CUSTOM_SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 6 + Reducer 5 File Output Operator [FS_91] Limit [LIM_90] (rows=1 width=225) Number of rows:100 Select Operator [SEL_89] (rows=1 width=225) Output:["_col0","_col1","_col2"] - <-Reducer 5 [SIMPLE_EDGE] + <-Reducer 4 [SIMPLE_EDGE] SHUFFLE [RS_88] Select Operator [SEL_87] (rows=1 width=225) Output:["_col0","_col1","_col2"] Merge Join Operator [MERGEJOIN_156] (rows=1 width=225) Conds:(Inner),Output:["_col0","_col1"] - <-Reducer 4 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_84] - Group By Operator [GBY_43] (rows=1 width=112) - Output:["_col0"],aggregations:["sum(VALUE._col0)"] - <-Reducer 3 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_42] - Group By Operator [GBY_41] (rows=1 width=112) - Output:["_col0"],aggregations:["sum(_col9)"] - Merge Join Operator [MERGEJOIN_154] (rows=927646829 width=88) - Conds:RS_37._col0=RS_38._col2(Inner),Output:["_col9"] - <-Reducer 15 [SIMPLE_EDGE] - SHUFFLE [RS_38] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_149] (rows=843315281 width=88) - Conds:RS_30._col4=RS_31._col0(Inner),Output:["_col2","_col5"] - <-Map 22 [SIMPLE_EDGE] - SHUFFLE [RS_31] - PartitionCols:_col0 - Select Operator [SEL_20] (rows=2300 width=1179) - Output:["_col0"] - Filter Operator [FIL_138] (rows=2300 width=1179) - predicate:(((p_channel_dmail = 'Y') or (p_channel_email = 'Y') or (p_channel_tv = 'Y')) and p_promo_sk is not null) - TableScan [TS_18] (rows=2300 width=1179) - default@promotion,promotion,Tbl:COMPLETE,Col:NONE,Output:["p_promo_sk","p_channel_dmail","p_channel_email","p_channel_tv"] - <-Reducer 14 [SIMPLE_EDGE] - SHUFFLE [RS_30] - PartitionCols:_col4 - Merge Join Operator [MERGEJOIN_148] (rows=766650239 width=88) - Conds:RS_27._col3=RS_28._col0(Inner),Output:["_col2","_col4","_col5"] - <-Map 21 [SIMPLE_EDGE] - SHUFFLE [RS_28] - PartitionCols:_col0 - Select Operator [SEL_17] (rows=852 width=1910) - Output:["_col0"] - Filter Operator [FIL_137] (rows=852 width=1910) - predicate:((s_gmt_offset = -7) and s_store_sk is not null) - TableScan [TS_15] (rows=1704 width=1910) - default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_gmt_offset"] - <-Reducer 13 [SIMPLE_EDGE] - SHUFFLE [RS_27] - PartitionCols:_col3 - Merge Join Operator [MERGEJOIN_147] (rows=696954748 width=88) - Conds:RS_24._col1=RS_25._col0(Inner),Output:["_col2","_col3","_col4","_col5"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_25] - PartitionCols:_col0 - Select Operator [SEL_14] (rows=231000 width=1436) - Output:["_col0"] - Filter Operator [FIL_136] (rows=231000 width=1436) - predicate:((i_category = 'Electronics') and i_item_sk is not null) - TableScan [TS_12] (rows=462000 width=1436) - default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_category"] - <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_24] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_146] (rows=633595212 width=88) - Conds:RS_21._col0=RS_22._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Map 16 [SIMPLE_EDGE] - SHUFFLE [RS_22] - PartitionCols:_col0 - Select Operator [SEL_11] (rows=18262 width=1119) - Output:["_col0"] - Filter Operator [FIL_135] (rows=18262 width=1119) - predicate:((d_year = 1999) and (d_moy = 11) and d_date_sk is not null) - TableScan [TS_9] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] - <-Map 11 [SIMPLE_EDGE] - SHUFFLE [RS_21] - PartitionCols:_col0 - Select Operator [SEL_8] (rows=575995635 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_134] (rows=575995635 width=88) - predicate:(ss_store_sk is not null and ss_promo_sk is not null and ss_sold_date_sk is not null and ss_customer_sk is not null and ss_item_sk is not null) - TableScan [TS_6] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_customer_sk","ss_store_sk","ss_promo_sk","ss_ext_sales_price"] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_37] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_145] (rows=88000001 width=860) - Conds:RS_34._col1=RS_35._col0(Inner),Output:["_col0"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_34] - PartitionCols:_col1 - Select Operator [SEL_2] (rows=80000000 width=860) - Output:["_col0","_col1"] - Filter Operator [FIL_132] (rows=80000000 width=860) - predicate:(c_customer_sk is not null and c_current_addr_sk is not null) - TableScan [TS_0] (rows=80000000 width=860) - default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_addr_sk"] - <-Map 10 [SIMPLE_EDGE] - SHUFFLE [RS_35] - PartitionCols:_col0 - Select Operator [SEL_5] (rows=20000000 width=1014) - Output:["_col0"] - Filter Operator [FIL_133] (rows=20000000 width=1014) - predicate:((ca_gmt_offset = -7) and ca_address_sk is not null) - TableScan [TS_3] (rows=40000000 width=1014) - default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_gmt_offset"] - <-Reducer 9 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_85] - Group By Operator [GBY_82] (rows=1 width=112) - Output:["_col0"],aggregations:["sum(VALUE._col0)"] - <-Reducer 8 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_81] - Group By Operator [GBY_80] (rows=1 width=112) - Output:["_col0"],aggregations:["sum(_col8)"] - Merge Join Operator [MERGEJOIN_155] (rows=843315281 width=88) - Conds:RS_76._col0=RS_77._col2(Inner),Output:["_col8"] - <-Reducer 19 [SIMPLE_EDGE] - SHUFFLE [RS_77] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_153] (rows=766650239 width=88) - Conds:RS_69._col3=RS_70._col0(Inner),Output:["_col2","_col4"] - <-Map 21 [SIMPLE_EDGE] - SHUFFLE [RS_70] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_17] - <-Reducer 18 [SIMPLE_EDGE] - SHUFFLE [RS_69] - PartitionCols:_col3 - Merge Join Operator [MERGEJOIN_152] (rows=696954748 width=88) - Conds:RS_66._col1=RS_67._col0(Inner),Output:["_col2","_col3","_col4"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_67] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_14] - <-Reducer 17 [SIMPLE_EDGE] - SHUFFLE [RS_66] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_151] (rows=633595212 width=88) - Conds:RS_63._col0=RS_64._col0(Inner),Output:["_col1","_col2","_col3","_col4"] - <-Map 16 [SIMPLE_EDGE] - SHUFFLE [RS_64] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_11] - <-Map 23 [SIMPLE_EDGE] - SHUFFLE [RS_63] - PartitionCols:_col0 - Select Operator [SEL_53] (rows=575995635 width=88) - Output:["_col0","_col1","_col2","_col3","_col4"] - Filter Operator [FIL_141] (rows=575995635 width=88) - predicate:(ss_store_sk is not null and ss_sold_date_sk is not null and ss_customer_sk is not null and ss_item_sk is not null) - TableScan [TS_51] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_customer_sk","ss_store_sk","ss_ext_sales_price"] - <-Reducer 7 [SIMPLE_EDGE] - SHUFFLE [RS_76] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_150] (rows=88000001 width=860) - Conds:RS_73._col1=RS_74._col0(Inner),Output:["_col0"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_73] - PartitionCols:_col1 - Please refer to the previous Select Operator [SEL_2] - <-Map 10 [SIMPLE_EDGE] - SHUFFLE [RS_74] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] + <-Group By Operator [GBY_43] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(VALUE._col0)"] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_42] + Group By Operator [GBY_41] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(_col9)"] + Merge Join Operator [MERGEJOIN_154] (rows=927646829 width=88) + Conds:RS_37._col0=RS_38._col2(Inner),Output:["_col9"] + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_38] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_149] (rows=843315281 width=88) + Conds:RS_30._col4=RS_31._col0(Inner),Output:["_col2","_col5"] + <-Map 22 [SIMPLE_EDGE] + SHUFFLE [RS_31] + PartitionCols:_col0 + Select Operator [SEL_20] (rows=2300 width=1179) + Output:["_col0"] + Filter Operator [FIL_138] (rows=2300 width=1179) + predicate:(((p_channel_dmail = 'Y') or (p_channel_email = 'Y') or (p_channel_tv = 'Y')) and p_promo_sk is not null) + TableScan [TS_18] (rows=2300 width=1179) + default@promotion,promotion,Tbl:COMPLETE,Col:NONE,Output:["p_promo_sk","p_channel_dmail","p_channel_email","p_channel_tv"] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_148] (rows=766650239 width=88) + Conds:RS_27._col3=RS_28._col0(Inner),Output:["_col2","_col4","_col5"] + <-Map 21 [SIMPLE_EDGE] + SHUFFLE [RS_28] + PartitionCols:_col0 + Select Operator [SEL_17] (rows=852 width=1910) + Output:["_col0"] + Filter Operator [FIL_137] (rows=852 width=1910) + predicate:((s_gmt_offset = -7) and s_store_sk is not null) + TableScan [TS_15] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_gmt_offset"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_147] (rows=696954748 width=88) + Conds:RS_24._col1=RS_25._col0(Inner),Output:["_col2","_col3","_col4","_col5"] + <-Map 20 [SIMPLE_EDGE] + SHUFFLE [RS_25] + PartitionCols:_col0 + Select Operator [SEL_14] (rows=231000 width=1436) + Output:["_col0"] + Filter Operator [FIL_136] (rows=231000 width=1436) + predicate:((i_category = 'Electronics') and i_item_sk is not null) + TableScan [TS_12] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_category"] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_24] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_146] (rows=633595212 width=88) + Conds:RS_21._col0=RS_22._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 16 [SIMPLE_EDGE] + SHUFFLE [RS_22] + PartitionCols:_col0 + Select Operator [SEL_11] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_135] (rows=18262 width=1119) + predicate:((d_year = 1999) and (d_moy = 11) and d_date_sk is not null) + TableScan [TS_9] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 11 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col0 + Select Operator [SEL_8] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_134] (rows=575995635 width=88) + predicate:(ss_store_sk is not null and ss_promo_sk is not null and ss_sold_date_sk is not null and ss_customer_sk is not null and ss_item_sk is not null) + TableScan [TS_6] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_customer_sk","ss_store_sk","ss_promo_sk","ss_ext_sales_price"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_37] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_145] (rows=88000001 width=860) + Conds:RS_34._col1=RS_35._col0(Inner),Output:["_col0"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_34] + PartitionCols:_col1 + Select Operator [SEL_2] (rows=80000000 width=860) + Output:["_col0","_col1"] + Filter Operator [FIL_132] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_current_addr_sk is not null) + TableScan [TS_0] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_addr_sk"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col0 + Select Operator [SEL_5] (rows=20000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_133] (rows=20000000 width=1014) + predicate:((ca_gmt_offset = -7) and ca_address_sk is not null) + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_gmt_offset"] + <-Reducer 8 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_85] + Group By Operator [GBY_82] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(VALUE._col0)"] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_81] + Group By Operator [GBY_80] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(_col8)"] + Merge Join Operator [MERGEJOIN_155] (rows=843315281 width=88) + Conds:RS_76._col0=RS_77._col2(Inner),Output:["_col8"] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_77] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_153] (rows=766650239 width=88) + Conds:RS_69._col3=RS_70._col0(Inner),Output:["_col2","_col4"] + <-Map 21 [SIMPLE_EDGE] + SHUFFLE [RS_70] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_17] + <-Reducer 18 [SIMPLE_EDGE] + SHUFFLE [RS_69] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_152] (rows=696954748 width=88) + Conds:RS_66._col1=RS_67._col0(Inner),Output:["_col2","_col3","_col4"] + <-Map 20 [SIMPLE_EDGE] + SHUFFLE [RS_67] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_14] + <-Reducer 17 [SIMPLE_EDGE] + SHUFFLE [RS_66] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_151] (rows=633595212 width=88) + Conds:RS_63._col0=RS_64._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 16 [SIMPLE_EDGE] + SHUFFLE [RS_64] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_11] + <-Map 23 [SIMPLE_EDGE] + SHUFFLE [RS_63] + PartitionCols:_col0 + Select Operator [SEL_53] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_141] (rows=575995635 width=88) + predicate:(ss_store_sk is not null and ss_sold_date_sk is not null and ss_customer_sk is not null and ss_item_sk is not null) + TableScan [TS_51] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_customer_sk","ss_store_sk","ss_ext_sales_price"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_76] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_150] (rows=88000001 width=860) + Conds:RS_73._col1=RS_74._col0(Inner),Output:["_col0"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_73] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_2] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_74] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] diff --git ql/src/test/results/clientpositive/perf/query64.q.out ql/src/test/results/clientpositive/perf/query64.q.out index ddd0614..a16e8bf 100644 --- ql/src/test/results/clientpositive/perf/query64.q.out +++ ql/src/test/results/clientpositive/perf/query64.q.out @@ -237,16 +237,15 @@ POSTHOOK: type: QUERY Plan optimized by CBO. Vertex dependency in root stage -Reducer 10 <- Reducer 19 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) -Reducer 11 <- Reducer 10 (SIMPLE_EDGE) -Reducer 12 <- Map 1 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) -Reducer 13 <- Map 20 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) -Reducer 14 <- Reducer 13 (SIMPLE_EDGE), Reducer 36 (SIMPLE_EDGE) -Reducer 15 <- Map 39 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) -Reducer 16 <- Map 40 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE) -Reducer 17 <- Reducer 16 (SIMPLE_EDGE), Reducer 32 (SIMPLE_EDGE) -Reducer 18 <- Map 40 (SIMPLE_EDGE), Reducer 17 (SIMPLE_EDGE) -Reducer 19 <- Reducer 18 (SIMPLE_EDGE) +Reducer 10 <- Reducer 9 (SIMPLE_EDGE) +Reducer 11 <- Map 1 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) +Reducer 12 <- Map 20 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE), Reducer 36 (SIMPLE_EDGE) +Reducer 14 <- Map 39 (SIMPLE_EDGE), Reducer 13 (SIMPLE_EDGE) +Reducer 15 <- Map 40 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE), Reducer 32 (SIMPLE_EDGE) +Reducer 17 <- Map 40 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (SIMPLE_EDGE) Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) Reducer 21 <- Map 20 (SIMPLE_EDGE), Reducer 43 (SIMPLE_EDGE) Reducer 22 <- Map 48 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE) @@ -278,495 +277,494 @@ Reducer 53 <- Reducer 52 (SIMPLE_EDGE) Reducer 6 <- Map 40 (SIMPLE_EDGE), Reducer 5 (SIMPLE_EDGE) Reducer 7 <- Reducer 26 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) Reducer 8 <- Map 40 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) -Reducer 9 <- Reducer 8 (SIMPLE_EDGE) +Reducer 9 <- Reducer 18 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:-1 Stage-1 - Reducer 11 + Reducer 10 File Output Operator [FS_264] Select Operator [SEL_262] (rows=273897192 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20"] - <-Reducer 10 [SIMPLE_EDGE] + <-Reducer 9 [SIMPLE_EDGE] SHUFFLE [RS_261] Select Operator [SEL_260] (rows=273897192 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18"] Filter Operator [FIL_259] (rows=273897192 width=88) predicate:(_col30 <= _col13) Merge Join Operator [MERGEJOIN_611] (rows=821691577 width=88) - Conds:RS_256._col2, _col1, _col3=RS_257._col2, _col1, _col3(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col13","_col14","_col15","_col16","_col30","_col31","_col32","_col33"] - <-Reducer 19 [SIMPLE_EDGE] - SHUFFLE [RS_257] - PartitionCols:_col2, _col1, _col3 - Select Operator [SEL_254] (rows=746992327 width=88) - Output:["_col1","_col2","_col3","_col13","_col14","_col15","_col16"] - Group By Operator [GBY_253] (rows=746992327 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8, KEY._col9, KEY._col10, KEY._col11, KEY._col12, KEY._col13 - <-Reducer 18 [SIMPLE_EDGE] - SHUFFLE [RS_252] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13 - Group By Operator [GBY_251] (rows=1493984654 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"],aggregations:["count()","sum(_col45)","sum(_col46)","sum(_col47)"],keys:_col26, _col48, _col27, _col7, _col9, _col14, _col15, _col16, _col17, _col21, _col22, _col23, _col24, _col51 - Select Operator [SEL_250] (rows=1493984654 width=88) - Output:["_col7","_col9","_col14","_col15","_col16","_col17","_col21","_col22","_col23","_col24","_col26","_col27","_col45","_col46","_col47","_col48","_col51"] - Filter Operator [FIL_249] (rows=1493984654 width=88) - predicate:(_col56 <> _col19) - Merge Join Operator [MERGEJOIN_610] (rows=1493984654 width=88) - Conds:RS_246._col39=RS_247._col0(Inner),Output:["_col7","_col9","_col14","_col15","_col16","_col17","_col19","_col21","_col22","_col23","_col24","_col26","_col27","_col45","_col46","_col47","_col48","_col51","_col56"] - <-Map 40 [SIMPLE_EDGE] - SHUFFLE [RS_247] - PartitionCols:_col0 - Select Operator [SEL_24] (rows=1861800 width=385) - Output:["_col0","_col1"] - Filter Operator [FIL_543] (rows=1861800 width=385) - predicate:cd_demo_sk is not null - TableScan [TS_22] (rows=1861800 width=385) - default@customer_demographics,cd2,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_marital_status"] - <-Reducer 17 [SIMPLE_EDGE] - SHUFFLE [RS_246] - PartitionCols:_col39 - Merge Join Operator [MERGEJOIN_609] (rows=1358167838 width=88) - Conds:RS_243._col0=RS_244._col18(Inner),Output:["_col7","_col9","_col14","_col15","_col16","_col17","_col19","_col21","_col22","_col23","_col24","_col26","_col27","_col39","_col45","_col46","_col47","_col48","_col51"] - <-Reducer 16 [SIMPLE_EDGE] - SHUFFLE [RS_243] + Conds:SEL_126._col2, _col1, _col3=SEL_612._col2, _col1, _col3(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col13","_col14","_col15","_col16","_col30","_col31","_col32","_col33"] + <-Select Operator [SEL_612] + Output:["_col1","_col2","_col3","_col13","_col14","_col15","_col16"] + <-Select Operator [SEL_126] (rows=746992327 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col13","_col14","_col15","_col16"] + Group By Operator [GBY_125] (rows=746992327 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8, KEY._col9, KEY._col10, KEY._col11, KEY._col12, KEY._col13 + <-Reducer 18 [SIMPLE_EDGE] + SHUFFLE [RS_257] + PartitionCols:_col2, _col1, _col3 + Select Operator [SEL_254] (rows=746992327 width=88) + Output:["_col1","_col2","_col3","_col13","_col14","_col15","_col16"] + Group By Operator [GBY_253] (rows=746992327 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8, KEY._col9, KEY._col10, KEY._col11, KEY._col12, KEY._col13 + <-Reducer 17 [SIMPLE_EDGE] + SHUFFLE [RS_252] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13 + Group By Operator [GBY_251] (rows=1493984654 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"],aggregations:["count()","sum(_col45)","sum(_col46)","sum(_col47)"],keys:_col26, _col48, _col27, _col7, _col9, _col14, _col15, _col16, _col17, _col21, _col22, _col23, _col24, _col51 + Select Operator [SEL_250] (rows=1493984654 width=88) + Output:["_col7","_col9","_col14","_col15","_col16","_col17","_col21","_col22","_col23","_col24","_col26","_col27","_col45","_col46","_col47","_col48","_col51"] + Filter Operator [FIL_249] (rows=1493984654 width=88) + predicate:(_col56 <> _col19) + Merge Join Operator [MERGEJOIN_610] (rows=1493984654 width=88) + Conds:RS_246._col39=RS_247._col0(Inner),Output:["_col7","_col9","_col14","_col15","_col16","_col17","_col19","_col21","_col22","_col23","_col24","_col26","_col27","_col45","_col46","_col47","_col48","_col51","_col56"] + <-Map 40 [SIMPLE_EDGE] + SHUFFLE [RS_247] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_598] (rows=128840811 width=860) - Conds:RS_240._col1=RS_241._col0(Inner),Output:["_col0","_col7","_col9","_col14","_col15","_col16","_col17","_col19"] - <-Map 40 [SIMPLE_EDGE] - SHUFFLE [RS_241] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_24] + Select Operator [SEL_24] (rows=1861800 width=385) + Output:["_col0","_col1"] + Filter Operator [FIL_543] (rows=1861800 width=385) + predicate:cd_demo_sk is not null + TableScan [TS_22] (rows=1861800 width=385) + default@customer_demographics,cd2,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_marital_status"] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_246] + PartitionCols:_col39 + Merge Join Operator [MERGEJOIN_609] (rows=1358167838 width=88) + Conds:RS_243._col0=RS_244._col18(Inner),Output:["_col7","_col9","_col14","_col15","_col16","_col17","_col19","_col21","_col22","_col23","_col24","_col26","_col27","_col39","_col45","_col46","_col47","_col48","_col51"] <-Reducer 15 [SIMPLE_EDGE] - SHUFFLE [RS_240] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_597] (rows=117128008 width=860) - Conds:RS_237._col3=RS_238._col0(Inner),Output:["_col0","_col1","_col7","_col9","_col14","_col15","_col16","_col17"] - <-Map 39 [SIMPLE_EDGE] - SHUFFLE [RS_238] + SHUFFLE [RS_243] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_598] (rows=128840811 width=860) + Conds:RS_240._col1=RS_241._col0(Inner),Output:["_col0","_col7","_col9","_col14","_col15","_col16","_col17","_col19"] + <-Map 40 [SIMPLE_EDGE] + SHUFFLE [RS_241] PartitionCols:_col0 - Select Operator [SEL_21] (rows=40000000 width=1014) - Output:["_col0","_col1","_col2","_col3","_col4"] - Filter Operator [FIL_542] (rows=40000000 width=1014) - predicate:ca_address_sk is not null - TableScan [TS_19] (rows=40000000 width=1014) - default@customer_address,ad2,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_street_number","ca_street_name","ca_city","ca_zip"] + Please refer to the previous Select Operator [SEL_24] <-Reducer 14 [SIMPLE_EDGE] - SHUFFLE [RS_237] - PartitionCols:_col3 - Merge Join Operator [MERGEJOIN_596] (rows=106480005 width=860) - Conds:RS_234._col2=RS_235._col0(Inner),Output:["_col0","_col1","_col3","_col7","_col9"] + SHUFFLE [RS_240] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_597] (rows=117128008 width=860) + Conds:RS_237._col3=RS_238._col0(Inner),Output:["_col0","_col1","_col7","_col9","_col14","_col15","_col16","_col17"] + <-Map 39 [SIMPLE_EDGE] + SHUFFLE [RS_238] + PartitionCols:_col0 + Select Operator [SEL_21] (rows=40000000 width=1014) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_542] (rows=40000000 width=1014) + predicate:ca_address_sk is not null + TableScan [TS_19] (rows=40000000 width=1014) + default@customer_address,ad2,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_street_number","ca_street_name","ca_city","ca_zip"] <-Reducer 13 [SIMPLE_EDGE] - SHUFFLE [RS_234] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_594] (rows=96800003 width=860) - Conds:RS_231._col4=RS_232._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col7","_col9"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_232] - PartitionCols:_col0 - Select Operator [SEL_136] (rows=73049 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_558] (rows=73049 width=1119) - predicate:d_date_sk is not null - TableScan [TS_3] (rows=73049 width=1119) - default@date_dim,d2,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + SHUFFLE [RS_237] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_596] (rows=106480005 width=860) + Conds:RS_234._col2=RS_235._col0(Inner),Output:["_col0","_col1","_col3","_col7","_col9"] <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_231] - PartitionCols:_col4 - Merge Join Operator [MERGEJOIN_593] (rows=88000001 width=860) - Conds:RS_228._col5=RS_229._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col7"] + SHUFFLE [RS_234] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_594] (rows=96800003 width=860) + Conds:RS_231._col4=RS_232._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col7","_col9"] <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_229] + SHUFFLE [RS_232] PartitionCols:_col0 - Select Operator [SEL_133] (rows=73049 width=1119) + Select Operator [SEL_136] (rows=73049 width=1119) Output:["_col0","_col1"] - Filter Operator [FIL_557] (rows=73049 width=1119) + Filter Operator [FIL_558] (rows=73049 width=1119) predicate:d_date_sk is not null - Please refer to the previous TableScan [TS_3] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_228] - PartitionCols:_col5 - Select Operator [SEL_2] (rows=80000000 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_537] (rows=80000000 width=860) - predicate:(c_customer_sk is not null and c_first_shipto_date_sk is not null and c_first_sales_date_sk is not null and c_current_cdemo_sk is not null and c_current_hdemo_sk is not null and c_current_addr_sk is not null) - TableScan [TS_0] (rows=80000000 width=860) - default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_hdemo_sk","c_current_addr_sk","c_first_shipto_date_sk","c_first_sales_date_sk"] - <-Reducer 36 [SIMPLE_EDGE] - SHUFFLE [RS_235] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_595] (rows=7920 width=107) - Conds:RS_143._col1=RS_144._col0(Inner),Output:["_col0"] - <-Map 33 [SIMPLE_EDGE] - SHUFFLE [RS_143] - PartitionCols:_col1 - Select Operator [SEL_11] (rows=7200 width=107) - Output:["_col0","_col1"] - Filter Operator [FIL_540] (rows=7200 width=107) - predicate:(hd_demo_sk is not null and hd_income_band_sk is not null) - TableScan [TS_9] (rows=7200 width=107) - default@household_demographics,hd2,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_income_band_sk"] - <-Map 38 [SIMPLE_EDGE] - SHUFFLE [RS_144] + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,d2,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_231] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_593] (rows=88000001 width=860) + Conds:RS_228._col5=RS_229._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col7"] + <-Map 20 [SIMPLE_EDGE] + SHUFFLE [RS_229] + PartitionCols:_col0 + Select Operator [SEL_133] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_557] (rows=73049 width=1119) + predicate:d_date_sk is not null + Please refer to the previous TableScan [TS_3] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_228] + PartitionCols:_col5 + Select Operator [SEL_2] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_537] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_first_shipto_date_sk is not null and c_first_sales_date_sk is not null and c_current_cdemo_sk is not null and c_current_hdemo_sk is not null and c_current_addr_sk is not null) + TableScan [TS_0] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_hdemo_sk","c_current_addr_sk","c_first_shipto_date_sk","c_first_sales_date_sk"] + <-Reducer 36 [SIMPLE_EDGE] + SHUFFLE [RS_235] PartitionCols:_col0 - Select Operator [SEL_14] (rows=20 width=12) - Output:["_col0"] - Filter Operator [FIL_541] (rows=20 width=12) - predicate:ib_income_band_sk is not null - TableScan [TS_12] (rows=20 width=12) - default@income_band,ib2,Tbl:COMPLETE,Col:NONE,Output:["ib_income_band_sk"] - <-Reducer 32 [SIMPLE_EDGE] - SHUFFLE [RS_244] - PartitionCols:_col18 - Select Operator [SEL_224] (rows=1234698008 width=88) - Output:["_col1","_col2","_col3","_col4","_col6","_col7","_col18","_col19","_col25","_col26","_col27","_col28","_col31"] - Merge Join Operator [MERGEJOIN_608] (rows=1234698008 width=88) - Conds:RS_221._col13=RS_222._col0(Inner),Output:["_col10","_col11","_col17","_col18","_col19","_col20","_col23","_col28","_col29","_col31","_col32","_col33","_col34"] - <-Map 39 [SIMPLE_EDGE] - SHUFFLE [RS_222] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_21] - <-Reducer 31 [SIMPLE_EDGE] - SHUFFLE [RS_221] - PartitionCols:_col13 - Merge Join Operator [MERGEJOIN_607] (rows=1122452711 width=88) - Conds:RS_218._col14=RS_219._col0(Inner),Output:["_col10","_col11","_col13","_col17","_col18","_col19","_col20","_col23","_col28","_col29"] - <-Map 55 [SIMPLE_EDGE] - SHUFFLE [RS_219] + Merge Join Operator [MERGEJOIN_595] (rows=7920 width=107) + Conds:RS_143._col1=RS_144._col0(Inner),Output:["_col0"] + <-Map 33 [SIMPLE_EDGE] + SHUFFLE [RS_143] + PartitionCols:_col1 + Select Operator [SEL_11] (rows=7200 width=107) + Output:["_col0","_col1"] + Filter Operator [FIL_540] (rows=7200 width=107) + predicate:(hd_demo_sk is not null and hd_income_band_sk is not null) + TableScan [TS_9] (rows=7200 width=107) + default@household_demographics,hd2,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_income_band_sk"] + <-Map 38 [SIMPLE_EDGE] + SHUFFLE [RS_144] + PartitionCols:_col0 + Select Operator [SEL_14] (rows=20 width=12) + Output:["_col0"] + Filter Operator [FIL_541] (rows=20 width=12) + predicate:ib_income_band_sk is not null + TableScan [TS_12] (rows=20 width=12) + default@income_band,ib2,Tbl:COMPLETE,Col:NONE,Output:["ib_income_band_sk"] + <-Reducer 32 [SIMPLE_EDGE] + SHUFFLE [RS_244] + PartitionCols:_col18 + Select Operator [SEL_224] (rows=1234698008 width=88) + Output:["_col1","_col2","_col3","_col4","_col6","_col7","_col18","_col19","_col25","_col26","_col27","_col28","_col31"] + Merge Join Operator [MERGEJOIN_608] (rows=1234698008 width=88) + Conds:RS_221._col13=RS_222._col0(Inner),Output:["_col10","_col11","_col17","_col18","_col19","_col20","_col23","_col28","_col29","_col31","_col32","_col33","_col34"] + <-Map 39 [SIMPLE_EDGE] + SHUFFLE [RS_222] PartitionCols:_col0 - Select Operator [SEL_77] (rows=1704 width=1910) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_553] (rows=1704 width=1910) - predicate:(s_store_sk is not null and s_store_name is not null and s_zip is not null) - TableScan [TS_75] (rows=1704 width=1910) - default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name","s_zip"] - <-Reducer 30 [SIMPLE_EDGE] - SHUFFLE [RS_218] - PartitionCols:_col14 - Merge Join Operator [MERGEJOIN_606] (rows=1020411534 width=88) - Conds:RS_215._col9=RS_216._col0(Inner),Output:["_col10","_col11","_col13","_col14","_col17","_col18","_col19","_col20","_col23"] - <-Reducer 29 [SIMPLE_EDGE] - SHUFFLE [RS_215] - PartitionCols:_col9 - Merge Join Operator [MERGEJOIN_605] (rows=927646829 width=88) - Conds:RS_212._col0=RS_213._col9(Inner),Output:["_col9","_col10","_col11","_col13","_col14","_col17","_col18","_col19","_col20","_col23"] - <-Reducer 28 [SIMPLE_EDGE] - SHUFFLE [RS_213] + Please refer to the previous Select Operator [SEL_21] + <-Reducer 31 [SIMPLE_EDGE] + SHUFFLE [RS_221] + PartitionCols:_col13 + Merge Join Operator [MERGEJOIN_607] (rows=1122452711 width=88) + Conds:RS_218._col14=RS_219._col0(Inner),Output:["_col10","_col11","_col13","_col17","_col18","_col19","_col20","_col23","_col28","_col29"] + <-Map 55 [SIMPLE_EDGE] + SHUFFLE [RS_219] + PartitionCols:_col0 + Select Operator [SEL_77] (rows=1704 width=1910) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_553] (rows=1704 width=1910) + predicate:(s_store_sk is not null and s_store_name is not null and s_zip is not null) + TableScan [TS_75] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name","s_zip"] + <-Reducer 30 [SIMPLE_EDGE] + SHUFFLE [RS_218] + PartitionCols:_col14 + Merge Join Operator [MERGEJOIN_606] (rows=1020411534 width=88) + Conds:RS_215._col9=RS_216._col0(Inner),Output:["_col10","_col11","_col13","_col14","_col17","_col18","_col19","_col20","_col23"] + <-Reducer 29 [SIMPLE_EDGE] + SHUFFLE [RS_215] PartitionCols:_col9 - Select Operator [SEL_186] (rows=843315281 width=88) - Output:["_col6","_col7","_col8","_col9","_col10","_col11","_col14","_col15","_col16","_col17","_col20"] - Merge Join Operator [MERGEJOIN_603] (rows=843315281 width=88) - Conds:RS_183._col7=RS_184._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col9","_col10","_col11","_col12","_col15"] - <-Map 48 [SIMPLE_EDGE] - SHUFFLE [RS_184] - PartitionCols:_col0 - Select Operator [SEL_45] (rows=2300 width=1179) - Output:["_col0"] - Filter Operator [FIL_550] (rows=2300 width=1179) - predicate:p_promo_sk is not null - TableScan [TS_43] (rows=2300 width=1179) - default@promotion,promotion,Tbl:COMPLETE,Col:NONE,Output:["p_promo_sk"] - <-Reducer 27 [SIMPLE_EDGE] - SHUFFLE [RS_183] - PartitionCols:_col7 - Merge Join Operator [MERGEJOIN_602] (rows=766650239 width=88) - Conds:RS_180._col0=RS_181._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10","_col11","_col12","_col15"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_181] + Merge Join Operator [MERGEJOIN_605] (rows=927646829 width=88) + Conds:RS_212._col0=RS_213._col9(Inner),Output:["_col9","_col10","_col11","_col13","_col14","_col17","_col18","_col19","_col20","_col23"] + <-Reducer 28 [SIMPLE_EDGE] + SHUFFLE [RS_213] + PartitionCols:_col9 + Select Operator [SEL_186] (rows=843315281 width=88) + Output:["_col6","_col7","_col8","_col9","_col10","_col11","_col14","_col15","_col16","_col17","_col20"] + Merge Join Operator [MERGEJOIN_603] (rows=843315281 width=88) + Conds:RS_183._col7=RS_184._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col9","_col10","_col11","_col12","_col15"] + <-Map 48 [SIMPLE_EDGE] + SHUFFLE [RS_184] PartitionCols:_col0 - Select Operator [SEL_170] (rows=36524 width=1119) + Select Operator [SEL_45] (rows=2300 width=1179) Output:["_col0"] - Filter Operator [FIL_568] (rows=36524 width=1119) - predicate:((d_year = 2001) and d_date_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Reducer 45 [SIMPLE_EDGE] - SHUFFLE [RS_180] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_601] (rows=696954748 width=88) - Conds:RS_177._col1, _col8=RS_178._col0, _col1(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10","_col11","_col12","_col15"] - <-Map 47 [SIMPLE_EDGE] - SHUFFLE [RS_178] - PartitionCols:_col0, _col1 - Select Operator [SEL_39] (rows=57591150 width=77) - Output:["_col0","_col1"] - Filter Operator [FIL_548] (rows=57591150 width=77) - predicate:(sr_item_sk is not null and sr_ticket_number is not null) - TableScan [TS_37] (rows=57591150 width=77) - default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_item_sk","sr_ticket_number"] - <-Reducer 44 [SIMPLE_EDGE] - SHUFFLE [RS_177] - PartitionCols:_col1, _col8 - Merge Join Operator [MERGEJOIN_600] (rows=633595212 width=88) - Conds:RS_174._col1=RS_175._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col15"] - <-Map 41 [SIMPLE_EDGE] - SHUFFLE [RS_174] - PartitionCols:_col1 - Select Operator [SEL_33] (rows=575995635 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] - Filter Operator [FIL_546] (rows=575995635 width=88) - predicate:(ss_item_sk is not null and ss_ticket_number is not null and ss_sold_date_sk is not null and ss_store_sk is not null and ss_customer_sk is not null and ss_cdemo_sk is not null and ss_promo_sk is not null and ss_hdemo_sk is not null and ss_addr_sk is not null) - TableScan [TS_31] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_customer_sk","ss_cdemo_sk","ss_hdemo_sk","ss_addr_sk","ss_store_sk","ss_promo_sk","ss_ticket_number","ss_wholesale_cost","ss_list_price","ss_coupon_amt"] - <-Map 46 [SIMPLE_EDGE] - SHUFFLE [RS_175] - PartitionCols:_col0 - Select Operator [SEL_36] (rows=2851 width=1436) - Output:["_col0","_col3"] - Filter Operator [FIL_547] (rows=2851 width=1436) - predicate:((i_color) IN ('maroon', 'burnished', 'dim', 'steel', 'navajo', 'chocolate') and i_current_price BETWEEN 35 AND 45 and i_current_price BETWEEN 36 AND 50 and i_item_sk is not null) - TableScan [TS_34] (rows=462000 width=1436) - default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_current_price","i_color","i_product_name"] - <-Reducer 37 [SIMPLE_EDGE] - SHUFFLE [RS_212] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_599] (rows=7920 width=107) - Conds:RS_209._col1=RS_210._col0(Inner),Output:["_col0"] - <-Map 33 [SIMPLE_EDGE] - SHUFFLE [RS_209] - PartitionCols:_col1 - Please refer to the previous Select Operator [SEL_11] - <-Map 38 [SIMPLE_EDGE] - SHUFFLE [RS_210] + Filter Operator [FIL_550] (rows=2300 width=1179) + predicate:p_promo_sk is not null + TableScan [TS_43] (rows=2300 width=1179) + default@promotion,promotion,Tbl:COMPLETE,Col:NONE,Output:["p_promo_sk"] + <-Reducer 27 [SIMPLE_EDGE] + SHUFFLE [RS_183] + PartitionCols:_col7 + Merge Join Operator [MERGEJOIN_602] (rows=766650239 width=88) + Conds:RS_180._col0=RS_181._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10","_col11","_col12","_col15"] + <-Map 20 [SIMPLE_EDGE] + SHUFFLE [RS_181] + PartitionCols:_col0 + Select Operator [SEL_170] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_568] (rows=36524 width=1119) + predicate:((d_year = 2001) and d_date_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Reducer 45 [SIMPLE_EDGE] + SHUFFLE [RS_180] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_601] (rows=696954748 width=88) + Conds:RS_177._col1, _col8=RS_178._col0, _col1(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10","_col11","_col12","_col15"] + <-Map 47 [SIMPLE_EDGE] + SHUFFLE [RS_178] + PartitionCols:_col0, _col1 + Select Operator [SEL_39] (rows=57591150 width=77) + Output:["_col0","_col1"] + Filter Operator [FIL_548] (rows=57591150 width=77) + predicate:(sr_item_sk is not null and sr_ticket_number is not null) + TableScan [TS_37] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_item_sk","sr_ticket_number"] + <-Reducer 44 [SIMPLE_EDGE] + SHUFFLE [RS_177] + PartitionCols:_col1, _col8 + Merge Join Operator [MERGEJOIN_600] (rows=633595212 width=88) + Conds:RS_174._col1=RS_175._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col15"] + <-Map 41 [SIMPLE_EDGE] + SHUFFLE [RS_174] + PartitionCols:_col1 + Select Operator [SEL_33] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + Filter Operator [FIL_546] (rows=575995635 width=88) + predicate:(ss_item_sk is not null and ss_ticket_number is not null and ss_sold_date_sk is not null and ss_store_sk is not null and ss_customer_sk is not null and ss_cdemo_sk is not null and ss_promo_sk is not null and ss_hdemo_sk is not null and ss_addr_sk is not null) + TableScan [TS_31] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_customer_sk","ss_cdemo_sk","ss_hdemo_sk","ss_addr_sk","ss_store_sk","ss_promo_sk","ss_ticket_number","ss_wholesale_cost","ss_list_price","ss_coupon_amt"] + <-Map 46 [SIMPLE_EDGE] + SHUFFLE [RS_175] + PartitionCols:_col0 + Select Operator [SEL_36] (rows=2851 width=1436) + Output:["_col0","_col3"] + Filter Operator [FIL_547] (rows=2851 width=1436) + predicate:((i_color) IN ('maroon', 'burnished', 'dim', 'steel', 'navajo', 'chocolate') and i_current_price BETWEEN 35 AND 45 and i_current_price BETWEEN 36 AND 50 and i_item_sk is not null) + TableScan [TS_34] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_current_price","i_color","i_product_name"] + <-Reducer 37 [SIMPLE_EDGE] + SHUFFLE [RS_212] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_14] - <-Reducer 53 [SIMPLE_EDGE] - SHUFFLE [RS_216] - PartitionCols:_col0 - Select Operator [SEL_202] (rows=52798137 width=135) - Output:["_col0"] - Filter Operator [FIL_201] (rows=52798137 width=135) - predicate:(_col1 > (2 * _col2)) - Group By Operator [GBY_200] (rows=158394413 width=135) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 - <-Reducer 52 [SIMPLE_EDGE] - SHUFFLE [RS_199] + Merge Join Operator [MERGEJOIN_599] (rows=7920 width=107) + Conds:RS_209._col1=RS_210._col0(Inner),Output:["_col0"] + <-Map 33 [SIMPLE_EDGE] + SHUFFLE [RS_209] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_11] + <-Map 38 [SIMPLE_EDGE] + SHUFFLE [RS_210] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_14] + <-Reducer 53 [SIMPLE_EDGE] + SHUFFLE [RS_216] + PartitionCols:_col0 + Select Operator [SEL_202] (rows=52798137 width=135) + Output:["_col0"] + Filter Operator [FIL_201] (rows=52798137 width=135) + predicate:(_col1 > (2 * _col2)) + Group By Operator [GBY_200] (rows=158394413 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 + <-Reducer 52 [SIMPLE_EDGE] + SHUFFLE [RS_199] + PartitionCols:_col0 + Group By Operator [GBY_198] (rows=316788826 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","sum(_col2)"],keys:_col0 + Select Operator [SEL_196] (rows=316788826 width=135) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_604] (rows=316788826 width=135) + Conds:RS_193._col0, _col1=RS_194._col0, _col1(Inner),Output:["_col0","_col2","_col5","_col6","_col7"] + <-Map 49 [SIMPLE_EDGE] + SHUFFLE [RS_193] + PartitionCols:_col0, _col1 + Select Operator [SEL_61] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_551] (rows=287989836 width=135) + predicate:(cs_order_number is not null and cs_item_sk is not null) + TableScan [TS_59] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_item_sk","cs_order_number","cs_ext_list_price"] + <-Map 54 [SIMPLE_EDGE] + SHUFFLE [RS_194] + PartitionCols:_col0, _col1 + Select Operator [SEL_64] (rows=28798881 width=106) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_552] (rows=28798881 width=106) + predicate:(cr_order_number is not null and cr_item_sk is not null) + TableScan [TS_62] (rows=28798881 width=106) + default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_item_sk","cr_order_number","cr_refunded_cash","cr_reversed_charge","cr_store_credit"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_124] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_123] (rows=1493984654 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"],aggregations:["count()","sum(_col45)","sum(_col46)","sum(_col47)"],keys:_col26, _col48, _col27, _col7, _col9, _col14, _col15, _col16, _col17, _col21, _col22, _col23, _col24, _col51 + Select Operator [SEL_122] (rows=1493984654 width=88) + Output:["_col7","_col9","_col14","_col15","_col16","_col17","_col21","_col22","_col23","_col24","_col26","_col27","_col45","_col46","_col47","_col48","_col51"] + Filter Operator [FIL_121] (rows=1493984654 width=88) + predicate:(_col56 <> _col19) + Merge Join Operator [MERGEJOIN_592] (rows=1493984654 width=88) + Conds:RS_118._col39=RS_119._col0(Inner),Output:["_col7","_col9","_col14","_col15","_col16","_col17","_col19","_col21","_col22","_col23","_col24","_col26","_col27","_col45","_col46","_col47","_col48","_col51","_col56"] + <-Map 40 [SIMPLE_EDGE] + SHUFFLE [RS_119] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_24] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_118] + PartitionCols:_col39 + Merge Join Operator [MERGEJOIN_591] (rows=1358167838 width=88) + Conds:RS_115._col0=RS_116._col18(Inner),Output:["_col7","_col9","_col14","_col15","_col16","_col17","_col19","_col21","_col22","_col23","_col24","_col26","_col27","_col39","_col45","_col46","_col47","_col48","_col51"] + <-Reducer 26 [SIMPLE_EDGE] + SHUFFLE [RS_116] + PartitionCols:_col18 + Select Operator [SEL_96] (rows=1234698008 width=88) + Output:["_col1","_col2","_col3","_col4","_col6","_col7","_col18","_col19","_col25","_col26","_col27","_col28","_col31"] + Merge Join Operator [MERGEJOIN_590] (rows=1234698008 width=88) + Conds:RS_93._col13=RS_94._col0(Inner),Output:["_col10","_col11","_col17","_col18","_col19","_col20","_col23","_col28","_col29","_col31","_col32","_col33","_col34"] + <-Map 39 [SIMPLE_EDGE] + SHUFFLE [RS_94] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_21] + <-Reducer 25 [SIMPLE_EDGE] + SHUFFLE [RS_93] + PartitionCols:_col13 + Merge Join Operator [MERGEJOIN_589] (rows=1122452711 width=88) + Conds:RS_90._col14=RS_91._col0(Inner),Output:["_col10","_col11","_col13","_col17","_col18","_col19","_col20","_col23","_col28","_col29"] + <-Map 55 [SIMPLE_EDGE] + SHUFFLE [RS_91] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_77] + <-Reducer 24 [SIMPLE_EDGE] + SHUFFLE [RS_90] + PartitionCols:_col14 + Merge Join Operator [MERGEJOIN_588] (rows=1020411534 width=88) + Conds:RS_87._col9=RS_88._col0(Inner),Output:["_col10","_col11","_col13","_col14","_col17","_col18","_col19","_col20","_col23"] + <-Reducer 23 [SIMPLE_EDGE] + SHUFFLE [RS_87] + PartitionCols:_col9 + Merge Join Operator [MERGEJOIN_587] (rows=927646829 width=88) + Conds:RS_84._col0=RS_85._col9(Inner),Output:["_col9","_col10","_col11","_col13","_col14","_col17","_col18","_col19","_col20","_col23"] + <-Reducer 22 [SIMPLE_EDGE] + SHUFFLE [RS_85] + PartitionCols:_col9 + Select Operator [SEL_58] (rows=843315281 width=88) + Output:["_col6","_col7","_col8","_col9","_col10","_col11","_col14","_col15","_col16","_col17","_col20"] + Merge Join Operator [MERGEJOIN_585] (rows=843315281 width=88) + Conds:RS_55._col7=RS_56._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col9","_col10","_col11","_col12","_col15"] + <-Map 48 [SIMPLE_EDGE] + SHUFFLE [RS_56] PartitionCols:_col0 - Group By Operator [GBY_198] (rows=316788826 width=135) - Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","sum(_col2)"],keys:_col0 - Select Operator [SEL_196] (rows=316788826 width=135) - Output:["_col0","_col1","_col2"] - Merge Join Operator [MERGEJOIN_604] (rows=316788826 width=135) - Conds:RS_193._col0, _col1=RS_194._col0, _col1(Inner),Output:["_col0","_col2","_col5","_col6","_col7"] - <-Map 49 [SIMPLE_EDGE] - SHUFFLE [RS_193] + Please refer to the previous Select Operator [SEL_45] + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_55] + PartitionCols:_col7 + Merge Join Operator [MERGEJOIN_584] (rows=766650239 width=88) + Conds:RS_52._col0=RS_53._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10","_col11","_col12","_col15"] + <-Map 20 [SIMPLE_EDGE] + SHUFFLE [RS_53] + PartitionCols:_col0 + Select Operator [SEL_42] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_549] (rows=36524 width=1119) + predicate:((d_year = 2000) and d_date_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Reducer 43 [SIMPLE_EDGE] + SHUFFLE [RS_52] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_583] (rows=696954748 width=88) + Conds:RS_49._col1, _col8=RS_50._col0, _col1(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10","_col11","_col12","_col15"] + <-Map 47 [SIMPLE_EDGE] + SHUFFLE [RS_50] PartitionCols:_col0, _col1 - Select Operator [SEL_61] (rows=287989836 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_551] (rows=287989836 width=135) - predicate:(cs_order_number is not null and cs_item_sk is not null) - TableScan [TS_59] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_item_sk","cs_order_number","cs_ext_list_price"] - <-Map 54 [SIMPLE_EDGE] - SHUFFLE [RS_194] - PartitionCols:_col0, _col1 - Select Operator [SEL_64] (rows=28798881 width=106) - Output:["_col0","_col1","_col2","_col3","_col4"] - Filter Operator [FIL_552] (rows=28798881 width=106) - predicate:(cr_order_number is not null and cr_item_sk is not null) - TableScan [TS_62] (rows=28798881 width=106) - default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_item_sk","cr_order_number","cr_refunded_cash","cr_reversed_charge","cr_store_credit"] - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_256] - PartitionCols:_col2, _col1, _col3 - Select Operator [SEL_126] (rows=746992327 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col13","_col14","_col15","_col16"] - Group By Operator [GBY_125] (rows=746992327 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8, KEY._col9, KEY._col10, KEY._col11, KEY._col12, KEY._col13 - <-Reducer 8 [SIMPLE_EDGE] - SHUFFLE [RS_124] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13 - Group By Operator [GBY_123] (rows=1493984654 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"],aggregations:["count()","sum(_col45)","sum(_col46)","sum(_col47)"],keys:_col26, _col48, _col27, _col7, _col9, _col14, _col15, _col16, _col17, _col21, _col22, _col23, _col24, _col51 - Select Operator [SEL_122] (rows=1493984654 width=88) - Output:["_col7","_col9","_col14","_col15","_col16","_col17","_col21","_col22","_col23","_col24","_col26","_col27","_col45","_col46","_col47","_col48","_col51"] - Filter Operator [FIL_121] (rows=1493984654 width=88) - predicate:(_col56 <> _col19) - Merge Join Operator [MERGEJOIN_592] (rows=1493984654 width=88) - Conds:RS_118._col39=RS_119._col0(Inner),Output:["_col7","_col9","_col14","_col15","_col16","_col17","_col19","_col21","_col22","_col23","_col24","_col26","_col27","_col45","_col46","_col47","_col48","_col51","_col56"] - <-Map 40 [SIMPLE_EDGE] - SHUFFLE [RS_119] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_24] - <-Reducer 7 [SIMPLE_EDGE] - SHUFFLE [RS_118] - PartitionCols:_col39 - Merge Join Operator [MERGEJOIN_591] (rows=1358167838 width=88) - Conds:RS_115._col0=RS_116._col18(Inner),Output:["_col7","_col9","_col14","_col15","_col16","_col17","_col19","_col21","_col22","_col23","_col24","_col26","_col27","_col39","_col45","_col46","_col47","_col48","_col51"] - <-Reducer 26 [SIMPLE_EDGE] - SHUFFLE [RS_116] - PartitionCols:_col18 - Select Operator [SEL_96] (rows=1234698008 width=88) - Output:["_col1","_col2","_col3","_col4","_col6","_col7","_col18","_col19","_col25","_col26","_col27","_col28","_col31"] - Merge Join Operator [MERGEJOIN_590] (rows=1234698008 width=88) - Conds:RS_93._col13=RS_94._col0(Inner),Output:["_col10","_col11","_col17","_col18","_col19","_col20","_col23","_col28","_col29","_col31","_col32","_col33","_col34"] + Please refer to the previous Select Operator [SEL_39] + <-Reducer 42 [SIMPLE_EDGE] + SHUFFLE [RS_49] + PartitionCols:_col1, _col8 + Merge Join Operator [MERGEJOIN_582] (rows=633595212 width=88) + Conds:RS_46._col1=RS_47._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col15"] + <-Map 41 [SIMPLE_EDGE] + SHUFFLE [RS_46] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_33] + <-Map 46 [SIMPLE_EDGE] + SHUFFLE [RS_47] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_36] + <-Reducer 35 [SIMPLE_EDGE] + SHUFFLE [RS_84] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_581] (rows=7920 width=107) + Conds:RS_81._col1=RS_82._col0(Inner),Output:["_col0"] + <-Map 33 [SIMPLE_EDGE] + SHUFFLE [RS_81] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_11] + <-Map 38 [SIMPLE_EDGE] + SHUFFLE [RS_82] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_14] + <-Reducer 51 [SIMPLE_EDGE] + SHUFFLE [RS_88] + PartitionCols:_col0 + Select Operator [SEL_74] (rows=52798137 width=135) + Output:["_col0"] + Filter Operator [FIL_73] (rows=52798137 width=135) + predicate:(_col1 > (2 * _col2)) + Group By Operator [GBY_72] (rows=158394413 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 + <-Reducer 50 [SIMPLE_EDGE] + SHUFFLE [RS_71] + PartitionCols:_col0 + Group By Operator [GBY_70] (rows=316788826 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","sum(_col2)"],keys:_col0 + Select Operator [SEL_68] (rows=316788826 width=135) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_586] (rows=316788826 width=135) + Conds:RS_65._col0, _col1=RS_66._col0, _col1(Inner),Output:["_col0","_col2","_col5","_col6","_col7"] + <-Map 49 [SIMPLE_EDGE] + SHUFFLE [RS_65] + PartitionCols:_col0, _col1 + Please refer to the previous Select Operator [SEL_61] + <-Map 54 [SIMPLE_EDGE] + SHUFFLE [RS_66] + PartitionCols:_col0, _col1 + Please refer to the previous Select Operator [SEL_64] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_115] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_580] (rows=128840811 width=860) + Conds:RS_112._col1=RS_113._col0(Inner),Output:["_col0","_col7","_col9","_col14","_col15","_col16","_col17","_col19"] + <-Map 40 [SIMPLE_EDGE] + SHUFFLE [RS_113] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_24] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_112] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_579] (rows=117128008 width=860) + Conds:RS_109._col3=RS_110._col0(Inner),Output:["_col0","_col1","_col7","_col9","_col14","_col15","_col16","_col17"] <-Map 39 [SIMPLE_EDGE] - SHUFFLE [RS_94] + SHUFFLE [RS_110] PartitionCols:_col0 Please refer to the previous Select Operator [SEL_21] - <-Reducer 25 [SIMPLE_EDGE] - SHUFFLE [RS_93] - PartitionCols:_col13 - Merge Join Operator [MERGEJOIN_589] (rows=1122452711 width=88) - Conds:RS_90._col14=RS_91._col0(Inner),Output:["_col10","_col11","_col13","_col17","_col18","_col19","_col20","_col23","_col28","_col29"] - <-Map 55 [SIMPLE_EDGE] - SHUFFLE [RS_91] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_77] - <-Reducer 24 [SIMPLE_EDGE] - SHUFFLE [RS_90] - PartitionCols:_col14 - Merge Join Operator [MERGEJOIN_588] (rows=1020411534 width=88) - Conds:RS_87._col9=RS_88._col0(Inner),Output:["_col10","_col11","_col13","_col14","_col17","_col18","_col19","_col20","_col23"] - <-Reducer 23 [SIMPLE_EDGE] - SHUFFLE [RS_87] - PartitionCols:_col9 - Merge Join Operator [MERGEJOIN_587] (rows=927646829 width=88) - Conds:RS_84._col0=RS_85._col9(Inner),Output:["_col9","_col10","_col11","_col13","_col14","_col17","_col18","_col19","_col20","_col23"] - <-Reducer 22 [SIMPLE_EDGE] - SHUFFLE [RS_85] - PartitionCols:_col9 - Select Operator [SEL_58] (rows=843315281 width=88) - Output:["_col6","_col7","_col8","_col9","_col10","_col11","_col14","_col15","_col16","_col17","_col20"] - Merge Join Operator [MERGEJOIN_585] (rows=843315281 width=88) - Conds:RS_55._col7=RS_56._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col9","_col10","_col11","_col12","_col15"] - <-Map 48 [SIMPLE_EDGE] - SHUFFLE [RS_56] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_45] - <-Reducer 21 [SIMPLE_EDGE] - SHUFFLE [RS_55] - PartitionCols:_col7 - Merge Join Operator [MERGEJOIN_584] (rows=766650239 width=88) - Conds:RS_52._col0=RS_53._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10","_col11","_col12","_col15"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_53] - PartitionCols:_col0 - Select Operator [SEL_42] (rows=36524 width=1119) - Output:["_col0"] - Filter Operator [FIL_549] (rows=36524 width=1119) - predicate:((d_year = 2000) and d_date_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Reducer 43 [SIMPLE_EDGE] - SHUFFLE [RS_52] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_583] (rows=696954748 width=88) - Conds:RS_49._col1, _col8=RS_50._col0, _col1(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10","_col11","_col12","_col15"] - <-Map 47 [SIMPLE_EDGE] - SHUFFLE [RS_50] - PartitionCols:_col0, _col1 - Please refer to the previous Select Operator [SEL_39] - <-Reducer 42 [SIMPLE_EDGE] - SHUFFLE [RS_49] - PartitionCols:_col1, _col8 - Merge Join Operator [MERGEJOIN_582] (rows=633595212 width=88) - Conds:RS_46._col1=RS_47._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col15"] - <-Map 41 [SIMPLE_EDGE] - SHUFFLE [RS_46] - PartitionCols:_col1 - Please refer to the previous Select Operator [SEL_33] - <-Map 46 [SIMPLE_EDGE] - SHUFFLE [RS_47] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_36] - <-Reducer 35 [SIMPLE_EDGE] - SHUFFLE [RS_84] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_109] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_578] (rows=106480005 width=860) + Conds:RS_106._col2=RS_107._col0(Inner),Output:["_col0","_col1","_col3","_col7","_col9"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_106] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_576] (rows=96800003 width=860) + Conds:RS_103._col4=RS_104._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col7","_col9"] + <-Map 20 [SIMPLE_EDGE] + SHUFFLE [RS_104] + PartitionCols:_col0 + Select Operator [SEL_5] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_538] (rows=73049 width=1119) + predicate:d_date_sk is not null + Please refer to the previous TableScan [TS_3] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_103] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_575] (rows=88000001 width=860) + Conds:RS_100._col5=RS_101._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col7"] + <-Map 20 [SIMPLE_EDGE] + SHUFFLE [RS_101] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_581] (rows=7920 width=107) - Conds:RS_81._col1=RS_82._col0(Inner),Output:["_col0"] - <-Map 33 [SIMPLE_EDGE] - SHUFFLE [RS_81] - PartitionCols:_col1 - Please refer to the previous Select Operator [SEL_11] - <-Map 38 [SIMPLE_EDGE] - SHUFFLE [RS_82] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_14] - <-Reducer 51 [SIMPLE_EDGE] - SHUFFLE [RS_88] + Please refer to the previous Select Operator [SEL_5] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_100] + PartitionCols:_col5 + Please refer to the previous Select Operator [SEL_2] + <-Reducer 34 [SIMPLE_EDGE] + SHUFFLE [RS_107] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_577] (rows=7920 width=107) + Conds:RS_15._col1=RS_16._col0(Inner),Output:["_col0"] + <-Map 33 [SIMPLE_EDGE] + SHUFFLE [RS_15] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_11] + <-Map 38 [SIMPLE_EDGE] + SHUFFLE [RS_16] PartitionCols:_col0 - Select Operator [SEL_74] (rows=52798137 width=135) - Output:["_col0"] - Filter Operator [FIL_73] (rows=52798137 width=135) - predicate:(_col1 > (2 * _col2)) - Group By Operator [GBY_72] (rows=158394413 width=135) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 - <-Reducer 50 [SIMPLE_EDGE] - SHUFFLE [RS_71] - PartitionCols:_col0 - Group By Operator [GBY_70] (rows=316788826 width=135) - Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","sum(_col2)"],keys:_col0 - Select Operator [SEL_68] (rows=316788826 width=135) - Output:["_col0","_col1","_col2"] - Merge Join Operator [MERGEJOIN_586] (rows=316788826 width=135) - Conds:RS_65._col0, _col1=RS_66._col0, _col1(Inner),Output:["_col0","_col2","_col5","_col6","_col7"] - <-Map 49 [SIMPLE_EDGE] - SHUFFLE [RS_65] - PartitionCols:_col0, _col1 - Please refer to the previous Select Operator [SEL_61] - <-Map 54 [SIMPLE_EDGE] - SHUFFLE [RS_66] - PartitionCols:_col0, _col1 - Please refer to the previous Select Operator [SEL_64] - <-Reducer 6 [SIMPLE_EDGE] - SHUFFLE [RS_115] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_580] (rows=128840811 width=860) - Conds:RS_112._col1=RS_113._col0(Inner),Output:["_col0","_col7","_col9","_col14","_col15","_col16","_col17","_col19"] - <-Map 40 [SIMPLE_EDGE] - SHUFFLE [RS_113] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_24] - <-Reducer 5 [SIMPLE_EDGE] - SHUFFLE [RS_112] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_579] (rows=117128008 width=860) - Conds:RS_109._col3=RS_110._col0(Inner),Output:["_col0","_col1","_col7","_col9","_col14","_col15","_col16","_col17"] - <-Map 39 [SIMPLE_EDGE] - SHUFFLE [RS_110] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_21] - <-Reducer 4 [SIMPLE_EDGE] - SHUFFLE [RS_109] - PartitionCols:_col3 - Merge Join Operator [MERGEJOIN_578] (rows=106480005 width=860) - Conds:RS_106._col2=RS_107._col0(Inner),Output:["_col0","_col1","_col3","_col7","_col9"] - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_106] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_576] (rows=96800003 width=860) - Conds:RS_103._col4=RS_104._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col7","_col9"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_104] - PartitionCols:_col0 - Select Operator [SEL_5] (rows=73049 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_538] (rows=73049 width=1119) - predicate:d_date_sk is not null - Please refer to the previous TableScan [TS_3] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_103] - PartitionCols:_col4 - Merge Join Operator [MERGEJOIN_575] (rows=88000001 width=860) - Conds:RS_100._col5=RS_101._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col7"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_101] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_100] - PartitionCols:_col5 - Please refer to the previous Select Operator [SEL_2] - <-Reducer 34 [SIMPLE_EDGE] - SHUFFLE [RS_107] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_577] (rows=7920 width=107) - Conds:RS_15._col1=RS_16._col0(Inner),Output:["_col0"] - <-Map 33 [SIMPLE_EDGE] - SHUFFLE [RS_15] - PartitionCols:_col1 - Please refer to the previous Select Operator [SEL_11] - <-Map 38 [SIMPLE_EDGE] - SHUFFLE [RS_16] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_14] + Please refer to the previous Select Operator [SEL_14] diff --git ql/src/test/results/clientpositive/perf/query77.q.out ql/src/test/results/clientpositive/perf/query77.q.out index db42b18..d11ea3a 100644 --- ql/src/test/results/clientpositive/perf/query77.q.out +++ ql/src/test/results/clientpositive/perf/query77.q.out @@ -1,4 +1,3 @@ -Warning: Shuffle Join MERGEJOIN[188][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 15' is a cross product PREHOOK: query: explain with ss as (select s_store_sk, @@ -219,9 +218,8 @@ Reducer 11 <- Map 25 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) Reducer 12 <- Reducer 11 (SIMPLE_EDGE) Reducer 13 <- Map 27 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) Reducer 14 <- Reducer 13 (SIMPLE_EDGE) -Reducer 15 <- Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 17 (CUSTOM_SIMPLE_EDGE), Union 6 (CONTAINS) +Reducer 15 <- Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 16 (CUSTOM_SIMPLE_EDGE), Union 6 (CONTAINS) Reducer 16 <- Map 28 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) -Reducer 17 <- Reducer 16 (CUSTOM_SIMPLE_EDGE) Reducer 18 <- Map 29 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) Reducer 19 <- Map 30 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE) Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) @@ -262,58 +260,56 @@ Stage-0 Output:["_col0","_col1","_col2","_col3","_col4"] Merge Join Operator [MERGEJOIN_188] (rows=158394413 width=360) Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4"] - <-Reducer 14 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_72] - Group By Operator [GBY_56] (rows=158394413 width=135) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 - <-Reducer 13 [SIMPLE_EDGE] - SHUFFLE [RS_55] - PartitionCols:_col0 - Group By Operator [GBY_54] (rows=316788826 width=135) - Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)","sum(_col3)"],keys:_col1 - Merge Join Operator [MERGEJOIN_181] (rows=316788826 width=135) - Conds:RS_50._col0=RS_51._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 9 [SIMPLE_EDGE] - SHUFFLE [RS_51] - PartitionCols:_col0 - Select Operator [SEL_5] (rows=8116 width=1119) - Output:["_col0"] - Filter Operator [FIL_162] (rows=8116 width=1119) - predicate:(CAST( d_date AS TIMESTAMP) BETWEEN 1998-08-04 00:00:00.0 AND 1998-09-03 00:00:00.0 and d_date_sk is not null) - TableScan [TS_3] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] - <-Map 27 [SIMPLE_EDGE] - SHUFFLE [RS_50] - PartitionCols:_col0 - Select Operator [SEL_46] (rows=287989836 width=135) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_167] (rows=287989836 width=135) - predicate:cs_sold_date_sk is not null - TableScan [TS_44] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_call_center_sk","cs_ext_sales_price","cs_net_profit"] - <-Reducer 17 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_73] - Group By Operator [GBY_70] (rows=1 width=224) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"] - <-Reducer 16 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_69] - Group By Operator [GBY_68] (rows=1 width=224) - Output:["_col0","_col1"],aggregations:["sum(_col1)","sum(_col2)"] - Merge Join Operator [MERGEJOIN_182] (rows=31678769 width=106) - Conds:RS_64._col0=RS_65._col0(Inner),Output:["_col1","_col2"] - <-Map 9 [SIMPLE_EDGE] - SHUFFLE [RS_65] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_64] - PartitionCols:_col0 - Select Operator [SEL_60] (rows=28798881 width=106) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_169] (rows=28798881 width=106) - predicate:cr_returned_date_sk is not null - TableScan [TS_58] (rows=28798881 width=106) - default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_returned_date_sk","cr_return_amount","cr_net_loss"] + <-Select Operator [SEL_189] + Output:["_col0","_col1","_col2"] + <-Reducer 14 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_72] + Group By Operator [GBY_56] (rows=158394413 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_55] + PartitionCols:_col0 + Group By Operator [GBY_54] (rows=316788826 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)","sum(_col3)"],keys:_col1 + Merge Join Operator [MERGEJOIN_181] (rows=316788826 width=135) + Conds:RS_50._col0=RS_51._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 9 [SIMPLE_EDGE] + SHUFFLE [RS_51] + PartitionCols:_col0 + Select Operator [SEL_5] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_162] (rows=8116 width=1119) + predicate:(CAST( d_date AS TIMESTAMP) BETWEEN 1998-08-04 00:00:00.0 AND 1998-09-03 00:00:00.0 and d_date_sk is not null) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Map 27 [SIMPLE_EDGE] + SHUFFLE [RS_50] + PartitionCols:_col0 + Select Operator [SEL_46] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_167] (rows=287989836 width=135) + predicate:cs_sold_date_sk is not null + TableScan [TS_44] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_call_center_sk","cs_ext_sales_price","cs_net_profit"] + <-Reducer 16 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_69] + Group By Operator [GBY_68] (rows=1 width=224) + Output:["_col0","_col1"],aggregations:["sum(_col1)","sum(_col2)"] + Merge Join Operator [MERGEJOIN_182] (rows=31678769 width=106) + Conds:RS_64._col0=RS_65._col0(Inner),Output:["_col1","_col2"] + <-Map 9 [SIMPLE_EDGE] + SHUFFLE [RS_65] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5] + <-Map 28 [SIMPLE_EDGE] + SHUFFLE [RS_64] + PartitionCols:_col0 + Select Operator [SEL_60] (rows=28798881 width=106) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_169] (rows=28798881 width=106) + predicate:cr_returned_date_sk is not null + TableScan [TS_58] (rows=28798881 width=106) + default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_returned_date_sk","cr_return_amount","cr_net_loss"] <-Reducer 21 [CONTAINS] Reduce Output Operator [RS_124] PartitionCols:_col0, _col1, _col2 @@ -321,7 +317,7 @@ Stage-0 Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)"],keys:_col0, _col1, 0 Select Operator [SEL_120] (rows=95833780 width=135) Output:["_col0","_col1","_col2","_col3","_col4"] - Merge Join Operator [MERGEJOIN_189] (rows=95833780 width=135) + Merge Join Operator [MERGEJOIN_191] (rows=95833780 width=135) Conds:RS_117._col0=RS_118._col0(Left Outer),Output:["_col0","_col1","_col2","_col4","_col5"] <-Reducer 20 [SIMPLE_EDGE] SHUFFLE [RS_117] diff --git ql/src/test/results/clientpositive/perf/query83.q.out ql/src/test/results/clientpositive/perf/query83.q.out index 4f14cc6..83771d9 100644 --- ql/src/test/results/clientpositive/perf/query83.q.out +++ ql/src/test/results/clientpositive/perf/query83.q.out @@ -135,24 +135,21 @@ Plan optimized by CBO. Vertex dependency in root stage Reducer 10 <- Reducer 9 (SIMPLE_EDGE) Reducer 11 <- Map 27 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 12 <- Reducer 11 (SIMPLE_EDGE), Reducer 17 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) Reducer 13 <- Reducer 12 (SIMPLE_EDGE) -Reducer 15 <- Map 14 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) -Reducer 16 <- Map 14 (SIMPLE_EDGE), Reducer 22 (SIMPLE_EDGE) -Reducer 17 <- Map 14 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) Reducer 19 <- Map 18 (SIMPLE_EDGE), Map 25 (SIMPLE_EDGE) Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 20 <- Reducer 19 (SIMPLE_EDGE) +Reducer 20 <- Map 14 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE) Reducer 21 <- Map 18 (SIMPLE_EDGE), Map 25 (SIMPLE_EDGE) -Reducer 22 <- Reducer 21 (SIMPLE_EDGE) +Reducer 22 <- Map 14 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE) Reducer 23 <- Map 18 (SIMPLE_EDGE), Map 25 (SIMPLE_EDGE) -Reducer 24 <- Reducer 23 (SIMPLE_EDGE) -Reducer 3 <- Reducer 15 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 24 <- Map 14 (SIMPLE_EDGE), Reducer 23 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) Reducer 4 <- Reducer 3 (SIMPLE_EDGE) Reducer 5 <- Reducer 10 (SIMPLE_EDGE), Reducer 13 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) Reducer 6 <- Reducer 5 (SIMPLE_EDGE) Reducer 8 <- Map 26 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 9 <- Reducer 16 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 9 <- Reducer 22 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) Stage-0 Fetch Operator @@ -168,7 +165,7 @@ Stage-0 SHUFFLE [RS_125] Select Operator [SEL_124] (rows=76653825 width=77) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_222] (rows=76653825 width=77) + Merge Join Operator [MERGEJOIN_228] (rows=76653825 width=77) Conds:RS_120._col0=RS_121._col0(Inner),RS_120._col0=RS_122._col0(Inner),Output:["_col0","_col1","_col3","_col5"] <-Reducer 10 [SIMPLE_EDGE] SHUFFLE [RS_121] @@ -180,58 +177,57 @@ Stage-0 PartitionCols:_col0 Group By Operator [GBY_76] (rows=69685294 width=77) Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_220] (rows=69685294 width=77) + Merge Join Operator [MERGEJOIN_226] (rows=69685294 width=77) Conds:RS_72._col0=RS_73._col0(Inner),Output:["_col2","_col4"] - <-Reducer 16 [SIMPLE_EDGE] + <-Reducer 22 [SIMPLE_EDGE] SHUFFLE [RS_73] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_215] (rows=80353 width=1119) - Conds:RS_65._col1=RS_66._col0(Inner),Output:["_col0"] - <-Map 14 [SIMPLE_EDGE] - SHUFFLE [RS_65] - PartitionCols:_col1 - Select Operator [SEL_8] (rows=73049 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_197] (rows=73049 width=1119) - predicate:(d_date is not null and d_date_sk is not null) - TableScan [TS_6] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] - <-Reducer 22 [SIMPLE_EDGE] - SHUFFLE [RS_66] - PartitionCols:_col0 - Group By Operator [GBY_63] (rows=40176 width=1119) - Output:["_col0"],keys:KEY._col0 - <-Reducer 21 [SIMPLE_EDGE] - SHUFFLE [RS_62] - PartitionCols:_col0 - Group By Operator [GBY_61] (rows=80353 width=1119) - Output:["_col0"],keys:_col0 - Merge Join Operator [MERGEJOIN_214] (rows=80353 width=1119) - Conds:RS_57._col1=RS_58._col0(Left Semi),Output:["_col0"] - <-Map 18 [SIMPLE_EDGE] - SHUFFLE [RS_57] - PartitionCols:_col1 - Select Operator [SEL_11] (rows=73049 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_198] (rows=73049 width=1119) - predicate:(d_week_seq is not null and d_date is not null) - TableScan [TS_9] (rows=73049 width=1119) + Merge Join Operator [MERGEJOIN_217] (rows=80353 width=1119) + Conds:SEL_218._col1=GBY_63._col0(Inner),Output:["_col0"] + <-Select Operator [SEL_218] + Output:["_col0","_col1"] + <-Group By Operator [GBY_63] (rows=40176 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Map 14 [SIMPLE_EDGE] + SHUFFLE [RS_65] + PartitionCols:_col1 + Select Operator [SEL_8] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_197] (rows=73049 width=1119) + predicate:(d_date is not null and d_date_sk is not null) + TableScan [TS_6] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_62] + PartitionCols:_col0 + Group By Operator [GBY_61] (rows=80353 width=1119) + Output:["_col0"],keys:_col0 + Merge Join Operator [MERGEJOIN_216] (rows=80353 width=1119) + Conds:RS_57._col1=RS_58._col0(Left Semi),Output:["_col0"] + <-Map 18 [SIMPLE_EDGE] + SHUFFLE [RS_57] + PartitionCols:_col1 + Select Operator [SEL_11] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_198] (rows=73049 width=1119) + predicate:(d_week_seq is not null and d_date is not null) + TableScan [TS_9] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date","d_week_seq"] + <-Map 25 [SIMPLE_EDGE] + SHUFFLE [RS_58] + PartitionCols:_col0 + Group By Operator [GBY_16] (rows=36525 width=1119) + Output:["_col0"],keys:_col0 + Select Operator [SEL_14] (rows=36525 width=1119) + Output:["_col0"] + Filter Operator [FIL_199] (rows=36525 width=1119) + predicate:((d_date) IN ('1998-01-02', '1998-10-15', '1998-11-10') and d_week_seq is not null) + TableScan [TS_12] (rows=73049 width=1119) default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date","d_week_seq"] - <-Map 25 [SIMPLE_EDGE] - SHUFFLE [RS_58] - PartitionCols:_col0 - Group By Operator [GBY_16] (rows=36525 width=1119) - Output:["_col0"],keys:_col0 - Select Operator [SEL_14] (rows=36525 width=1119) - Output:["_col0"] - Filter Operator [FIL_199] (rows=36525 width=1119) - predicate:((d_date) IN ('1998-01-02', '1998-10-15', '1998-11-10') and d_week_seq is not null) - TableScan [TS_12] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date","d_week_seq"] <-Reducer 8 [SIMPLE_EDGE] SHUFFLE [RS_72] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_213] (rows=63350266 width=77) + Merge Join Operator [MERGEJOIN_215] (rows=63350266 width=77) Conds:RS_69._col1=RS_70._col0(Inner),Output:["_col0","_col2","_col4"] <-Map 7 [SIMPLE_EDGE] SHUFFLE [RS_70] @@ -261,12 +257,12 @@ Stage-0 PartitionCols:_col0 Group By Operator [GBY_116] (rows=17422145 width=92) Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_221] (rows=17422145 width=92) + Merge Join Operator [MERGEJOIN_227] (rows=17422145 width=92) Conds:RS_112._col0=RS_113._col0(Inner),Output:["_col2","_col4"] <-Reducer 11 [SIMPLE_EDGE] SHUFFLE [RS_112] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_216] (rows=15838314 width=92) + Merge Join Operator [MERGEJOIN_220] (rows=15838314 width=92) Conds:RS_109._col1=RS_110._col0(Inner),Output:["_col0","_col2","_col4"] <-Map 7 [SIMPLE_EDGE] SHUFFLE [RS_110] @@ -281,35 +277,34 @@ Stage-0 predicate:(wr_item_sk is not null and wr_returned_date_sk is not null) TableScan [TS_80] (rows=14398467 width=92) default@web_returns,web_returns,Tbl:COMPLETE,Col:NONE,Output:["wr_returned_date_sk","wr_item_sk","wr_return_quantity"] - <-Reducer 17 [SIMPLE_EDGE] + <-Reducer 24 [SIMPLE_EDGE] SHUFFLE [RS_113] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_218] (rows=80353 width=1119) - Conds:RS_105._col1=RS_106._col0(Inner),Output:["_col0"] - <-Map 14 [SIMPLE_EDGE] - SHUFFLE [RS_105] - PartitionCols:_col1 - Please refer to the previous Select Operator [SEL_8] - <-Reducer 24 [SIMPLE_EDGE] - SHUFFLE [RS_106] - PartitionCols:_col0 - Group By Operator [GBY_103] (rows=40176 width=1119) - Output:["_col0"],keys:KEY._col0 - <-Reducer 23 [SIMPLE_EDGE] - SHUFFLE [RS_102] - PartitionCols:_col0 - Group By Operator [GBY_101] (rows=80353 width=1119) - Output:["_col0"],keys:_col0 - Merge Join Operator [MERGEJOIN_217] (rows=80353 width=1119) - Conds:RS_97._col1=RS_98._col0(Left Semi),Output:["_col0"] - <-Map 18 [SIMPLE_EDGE] - SHUFFLE [RS_97] - PartitionCols:_col1 - Please refer to the previous Select Operator [SEL_11] - <-Map 25 [SIMPLE_EDGE] - SHUFFLE [RS_98] - PartitionCols:_col0 - Please refer to the previous Group By Operator [GBY_16] + Merge Join Operator [MERGEJOIN_222] (rows=80353 width=1119) + Conds:SEL_223._col1=GBY_103._col0(Inner),Output:["_col0"] + <-Select Operator [SEL_223] + Output:["_col0","_col1"] + <-Group By Operator [GBY_103] (rows=40176 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Map 14 [SIMPLE_EDGE] + SHUFFLE [RS_105] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_8] + <-Reducer 23 [SIMPLE_EDGE] + SHUFFLE [RS_102] + PartitionCols:_col0 + Group By Operator [GBY_101] (rows=80353 width=1119) + Output:["_col0"],keys:_col0 + Merge Join Operator [MERGEJOIN_221] (rows=80353 width=1119) + Conds:RS_97._col1=RS_98._col0(Left Semi),Output:["_col0"] + <-Map 18 [SIMPLE_EDGE] + SHUFFLE [RS_97] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_11] + <-Map 25 [SIMPLE_EDGE] + SHUFFLE [RS_98] + PartitionCols:_col0 + Please refer to the previous Group By Operator [GBY_16] <-Reducer 4 [SIMPLE_EDGE] SHUFFLE [RS_120] PartitionCols:_col0 @@ -320,37 +315,8 @@ Stage-0 PartitionCols:_col0 Group By Operator [GBY_36] (rows=34846646 width=106) Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_219] (rows=34846646 width=106) + Merge Join Operator [MERGEJOIN_225] (rows=34846646 width=106) Conds:RS_32._col0=RS_33._col0(Inner),Output:["_col2","_col4"] - <-Reducer 15 [SIMPLE_EDGE] - SHUFFLE [RS_33] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_212] (rows=80353 width=1119) - Conds:RS_25._col1=RS_26._col0(Inner),Output:["_col0"] - <-Map 14 [SIMPLE_EDGE] - SHUFFLE [RS_25] - PartitionCols:_col1 - Please refer to the previous Select Operator [SEL_8] - <-Reducer 20 [SIMPLE_EDGE] - SHUFFLE [RS_26] - PartitionCols:_col0 - Group By Operator [GBY_23] (rows=40176 width=1119) - Output:["_col0"],keys:KEY._col0 - <-Reducer 19 [SIMPLE_EDGE] - SHUFFLE [RS_22] - PartitionCols:_col0 - Group By Operator [GBY_21] (rows=80353 width=1119) - Output:["_col0"],keys:_col0 - Merge Join Operator [MERGEJOIN_211] (rows=80353 width=1119) - Conds:RS_17._col1=RS_18._col0(Left Semi),Output:["_col0"] - <-Map 18 [SIMPLE_EDGE] - SHUFFLE [RS_17] - PartitionCols:_col1 - Please refer to the previous Select Operator [SEL_11] - <-Map 25 [SIMPLE_EDGE] - SHUFFLE [RS_18] - PartitionCols:_col0 - Please refer to the previous Group By Operator [GBY_16] <-Reducer 2 [SIMPLE_EDGE] SHUFFLE [RS_32] PartitionCols:_col0 @@ -369,4 +335,32 @@ Stage-0 predicate:(cr_item_sk is not null and cr_returned_date_sk is not null) TableScan [TS_0] (rows=28798881 width=106) default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_returned_date_sk","cr_item_sk","cr_return_quantity"] + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_33] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_212] (rows=80353 width=1119) + Conds:SEL_213._col1=GBY_23._col0(Inner),Output:["_col0"] + <-Select Operator [SEL_213] + Output:["_col0","_col1"] + <-Group By Operator [GBY_23] (rows=40176 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Map 14 [SIMPLE_EDGE] + SHUFFLE [RS_25] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_8] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_22] + PartitionCols:_col0 + Group By Operator [GBY_21] (rows=80353 width=1119) + Output:["_col0"],keys:_col0 + Merge Join Operator [MERGEJOIN_211] (rows=80353 width=1119) + Conds:RS_17._col1=RS_18._col0(Left Semi),Output:["_col0"] + <-Map 18 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_11] + <-Map 25 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col0 + Please refer to the previous Group By Operator [GBY_16] diff --git ql/src/test/results/clientpositive/perf/query88.q.out ql/src/test/results/clientpositive/perf/query88.q.out index 6bad30c..ad68278 100644 --- ql/src/test/results/clientpositive/perf/query88.q.out +++ ql/src/test/results/clientpositive/perf/query88.q.out @@ -1,4 +1,3 @@ -Warning: Shuffle Join MERGEJOIN[347][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6, $hdt$_7]] in Stage 'Reducer 6' is a cross product PREHOOK: query: explain select * from @@ -186,384 +185,381 @@ POSTHOOK: type: QUERY Plan optimized by CBO. Vertex dependency in root stage -Reducer 10 <- Reducer 9 (CUSTOM_SIMPLE_EDGE) -Reducer 11 <- Map 1 (SIMPLE_EDGE), Map 35 (SIMPLE_EDGE) -Reducer 12 <- Map 36 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) -Reducer 13 <- Map 37 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) +Reducer 11 <- Map 1 (SIMPLE_EDGE), Map 41 (SIMPLE_EDGE) +Reducer 12 <- Map 42 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Map 43 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) Reducer 14 <- Reducer 13 (CUSTOM_SIMPLE_EDGE) -Reducer 15 <- Map 1 (SIMPLE_EDGE), Map 35 (SIMPLE_EDGE) -Reducer 16 <- Map 36 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE) -Reducer 17 <- Map 37 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) -Reducer 18 <- Reducer 17 (CUSTOM_SIMPLE_EDGE) -Reducer 19 <- Map 1 (SIMPLE_EDGE), Map 35 (SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 35 (SIMPLE_EDGE) -Reducer 20 <- Map 36 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE) -Reducer 21 <- Map 37 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) -Reducer 22 <- Reducer 21 (CUSTOM_SIMPLE_EDGE) -Reducer 23 <- Map 1 (SIMPLE_EDGE), Map 35 (SIMPLE_EDGE) -Reducer 24 <- Map 36 (SIMPLE_EDGE), Reducer 23 (SIMPLE_EDGE) -Reducer 25 <- Map 37 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) -Reducer 26 <- Reducer 25 (CUSTOM_SIMPLE_EDGE) -Reducer 27 <- Map 1 (SIMPLE_EDGE), Map 35 (SIMPLE_EDGE) -Reducer 28 <- Map 36 (SIMPLE_EDGE), Reducer 27 (SIMPLE_EDGE) -Reducer 29 <- Map 37 (SIMPLE_EDGE), Reducer 28 (SIMPLE_EDGE) -Reducer 3 <- Map 36 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 30 <- Reducer 29 (CUSTOM_SIMPLE_EDGE) -Reducer 31 <- Map 1 (SIMPLE_EDGE), Map 35 (SIMPLE_EDGE) -Reducer 32 <- Map 36 (SIMPLE_EDGE), Reducer 31 (SIMPLE_EDGE) -Reducer 33 <- Map 37 (SIMPLE_EDGE), Reducer 32 (SIMPLE_EDGE) +Reducer 16 <- Map 1 (SIMPLE_EDGE), Map 41 (SIMPLE_EDGE) +Reducer 17 <- Map 42 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Map 43 (SIMPLE_EDGE), Reducer 17 (SIMPLE_EDGE) +Reducer 19 <- Reducer 18 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 41 (SIMPLE_EDGE) +Reducer 21 <- Map 1 (SIMPLE_EDGE), Map 41 (SIMPLE_EDGE) +Reducer 22 <- Map 42 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE) +Reducer 23 <- Map 43 (SIMPLE_EDGE), Reducer 22 (SIMPLE_EDGE) +Reducer 24 <- Reducer 23 (CUSTOM_SIMPLE_EDGE) +Reducer 26 <- Map 1 (SIMPLE_EDGE), Map 41 (SIMPLE_EDGE) +Reducer 27 <- Map 42 (SIMPLE_EDGE), Reducer 26 (SIMPLE_EDGE) +Reducer 28 <- Map 43 (SIMPLE_EDGE), Reducer 27 (SIMPLE_EDGE) +Reducer 29 <- Reducer 28 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 42 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 31 <- Map 1 (SIMPLE_EDGE), Map 41 (SIMPLE_EDGE) +Reducer 32 <- Map 42 (SIMPLE_EDGE), Reducer 31 (SIMPLE_EDGE) +Reducer 33 <- Map 43 (SIMPLE_EDGE), Reducer 32 (SIMPLE_EDGE) Reducer 34 <- Reducer 33 (CUSTOM_SIMPLE_EDGE) -Reducer 4 <- Map 37 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Reducer 4 (CUSTOM_SIMPLE_EDGE) -Reducer 6 <- Reducer 10 (CUSTOM_SIMPLE_EDGE), Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 18 (CUSTOM_SIMPLE_EDGE), Reducer 22 (CUSTOM_SIMPLE_EDGE), Reducer 26 (CUSTOM_SIMPLE_EDGE), Reducer 30 (CUSTOM_SIMPLE_EDGE), Reducer 34 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE) -Reducer 7 <- Map 1 (SIMPLE_EDGE), Map 35 (SIMPLE_EDGE) -Reducer 8 <- Map 36 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) -Reducer 9 <- Map 37 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 36 <- Map 1 (SIMPLE_EDGE), Map 41 (SIMPLE_EDGE) +Reducer 37 <- Map 42 (SIMPLE_EDGE), Reducer 36 (SIMPLE_EDGE) +Reducer 38 <- Map 43 (SIMPLE_EDGE), Reducer 37 (SIMPLE_EDGE) +Reducer 39 <- Reducer 38 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Map 43 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 19 (CUSTOM_SIMPLE_EDGE), Reducer 24 (CUSTOM_SIMPLE_EDGE), Reducer 29 (CUSTOM_SIMPLE_EDGE), Reducer 34 (CUSTOM_SIMPLE_EDGE), Reducer 39 (CUSTOM_SIMPLE_EDGE), Reducer 4 (CUSTOM_SIMPLE_EDGE), Reducer 9 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Map 1 (SIMPLE_EDGE), Map 41 (SIMPLE_EDGE) +Reducer 7 <- Map 42 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Map 43 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (CUSTOM_SIMPLE_EDGE) Stage-0 Fetch Operator limit:-1 Stage-1 - Reducer 6 + Reducer 5 File Output Operator [FS_218] Select Operator [SEL_217] (rows=1 width=65) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] Merge Join Operator [MERGEJOIN_347] (rows=1 width=65) Conds:(Inner),(Inner),(Inner),(Inner),(Inner),(Inner),(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - <-Reducer 10 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_209] - Group By Operator [GBY_50] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 9 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_49] - Group By Operator [GBY_48] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_328] (rows=766650239 width=88) - Conds:RS_44._col2=RS_45._col0(Inner) - <-Map 37 [SIMPLE_EDGE] - SHUFFLE [RS_45] - PartitionCols:_col0 - Select Operator [SEL_11] (rows=852 width=1910) - Output:["_col0"] - Filter Operator [FIL_294] (rows=852 width=1910) - predicate:((s_store_name = 'ese') and s_store_sk is not null) - TableScan [TS_9] (rows=1704 width=1910) - default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name"] - <-Reducer 8 [SIMPLE_EDGE] - SHUFFLE [RS_44] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_327] (rows=696954748 width=88) - Conds:RS_41._col1=RS_42._col0(Inner),Output:["_col2"] - <-Map 36 [SIMPLE_EDGE] - SHUFFLE [RS_42] - PartitionCols:_col0 - Select Operator [SEL_8] (rows=3600 width=107) - Output:["_col0"] - Filter Operator [FIL_293] (rows=3600 width=107) - predicate:((((hd_dep_count = 3) and (hd_vehicle_count <= 5)) or ((hd_dep_count = 0) and (hd_vehicle_count <= 2)) or ((hd_dep_count = 1) and (hd_vehicle_count <= 3))) and hd_demo_sk is not null) - TableScan [TS_6] (rows=7200 width=107) - default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_dep_count","hd_vehicle_count"] - <-Reducer 7 [SIMPLE_EDGE] - SHUFFLE [RS_41] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_326] (rows=633595212 width=88) - Conds:RS_38._col0=RS_39._col0(Inner),Output:["_col1","_col2"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_38] - PartitionCols:_col0 - Select Operator [SEL_2] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_291] (rows=575995635 width=88) - predicate:(ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) - TableScan [TS_0] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] - <-Map 35 [SIMPLE_EDGE] - SHUFFLE [RS_39] - PartitionCols:_col0 - Select Operator [SEL_31] (rows=14400 width=471) - Output:["_col0"] - Filter Operator [FIL_296] (rows=14400 width=471) - predicate:((t_hour = 12) and (t_minute < 30) and t_time_sk is not null) - TableScan [TS_3] (rows=86400 width=471) - default@time_dim,time_dim,Tbl:COMPLETE,Col:NONE,Output:["t_time_sk","t_hour","t_minute"] - <-Reducer 14 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_210] - Group By Operator [GBY_76] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 13 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_75] - Group By Operator [GBY_74] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_331] (rows=766650239 width=88) - Conds:RS_70._col2=RS_71._col0(Inner) - <-Map 37 [SIMPLE_EDGE] - SHUFFLE [RS_71] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_11] - <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_70] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_330] (rows=696954748 width=88) - Conds:RS_67._col1=RS_68._col0(Inner),Output:["_col2"] - <-Map 36 [SIMPLE_EDGE] - SHUFFLE [RS_68] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_8] - <-Reducer 11 [SIMPLE_EDGE] - SHUFFLE [RS_67] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_329] (rows=633595212 width=88) - Conds:RS_64._col0=RS_65._col0(Inner),Output:["_col1","_col2"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_64] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_2] - <-Map 35 [SIMPLE_EDGE] - SHUFFLE [RS_65] - PartitionCols:_col0 - Select Operator [SEL_57] (rows=14400 width=471) - Output:["_col0"] - Filter Operator [FIL_300] (rows=14400 width=471) - predicate:((t_hour = 11) and (t_minute >= 30) and t_time_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Reducer 18 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_211] - Group By Operator [GBY_102] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 17 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_101] - Group By Operator [GBY_100] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_334] (rows=766650239 width=88) - Conds:RS_96._col2=RS_97._col0(Inner) - <-Map 37 [SIMPLE_EDGE] - SHUFFLE [RS_97] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_11] - <-Reducer 16 [SIMPLE_EDGE] - SHUFFLE [RS_96] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_333] (rows=696954748 width=88) - Conds:RS_93._col1=RS_94._col0(Inner),Output:["_col2"] - <-Map 36 [SIMPLE_EDGE] - SHUFFLE [RS_94] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_8] - <-Reducer 15 [SIMPLE_EDGE] - SHUFFLE [RS_93] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_332] (rows=633595212 width=88) - Conds:RS_90._col0=RS_91._col0(Inner),Output:["_col1","_col2"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_90] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_2] - <-Map 35 [SIMPLE_EDGE] - SHUFFLE [RS_91] - PartitionCols:_col0 - Select Operator [SEL_83] (rows=14400 width=471) - Output:["_col0"] - Filter Operator [FIL_304] (rows=14400 width=471) - predicate:((t_hour = 11) and (t_minute < 30) and t_time_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Reducer 22 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_212] - Group By Operator [GBY_128] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 21 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_127] - Group By Operator [GBY_126] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_337] (rows=766650239 width=88) - Conds:RS_122._col2=RS_123._col0(Inner) - <-Map 37 [SIMPLE_EDGE] - SHUFFLE [RS_123] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_11] - <-Reducer 20 [SIMPLE_EDGE] - SHUFFLE [RS_122] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_336] (rows=696954748 width=88) - Conds:RS_119._col1=RS_120._col0(Inner),Output:["_col2"] - <-Map 36 [SIMPLE_EDGE] - SHUFFLE [RS_120] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_8] - <-Reducer 19 [SIMPLE_EDGE] - SHUFFLE [RS_119] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_335] (rows=633595212 width=88) - Conds:RS_116._col0=RS_117._col0(Inner),Output:["_col1","_col2"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_116] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_2] - <-Map 35 [SIMPLE_EDGE] - SHUFFLE [RS_117] - PartitionCols:_col0 - Select Operator [SEL_109] (rows=14400 width=471) - Output:["_col0"] - Filter Operator [FIL_308] (rows=14400 width=471) - predicate:((t_hour = 10) and (t_minute >= 30) and t_time_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Reducer 26 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_213] - Group By Operator [GBY_154] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 25 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_153] - Group By Operator [GBY_152] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_340] (rows=766650239 width=88) - Conds:RS_148._col2=RS_149._col0(Inner) - <-Map 37 [SIMPLE_EDGE] - SHUFFLE [RS_149] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_11] - <-Reducer 24 [SIMPLE_EDGE] - SHUFFLE [RS_148] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_339] (rows=696954748 width=88) - Conds:RS_145._col1=RS_146._col0(Inner),Output:["_col2"] - <-Map 36 [SIMPLE_EDGE] - SHUFFLE [RS_146] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_8] - <-Reducer 23 [SIMPLE_EDGE] - SHUFFLE [RS_145] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_338] (rows=633595212 width=88) - Conds:RS_142._col0=RS_143._col0(Inner),Output:["_col1","_col2"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_142] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_2] - <-Map 35 [SIMPLE_EDGE] - SHUFFLE [RS_143] - PartitionCols:_col0 - Select Operator [SEL_135] (rows=14400 width=471) - Output:["_col0"] - Filter Operator [FIL_312] (rows=14400 width=471) - predicate:((t_hour = 10) and (t_minute < 30) and t_time_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Reducer 30 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_214] - Group By Operator [GBY_180] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 29 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_179] - Group By Operator [GBY_178] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_343] (rows=766650239 width=88) - Conds:RS_174._col2=RS_175._col0(Inner) - <-Map 37 [SIMPLE_EDGE] - SHUFFLE [RS_175] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_11] - <-Reducer 28 [SIMPLE_EDGE] - SHUFFLE [RS_174] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_342] (rows=696954748 width=88) - Conds:RS_171._col1=RS_172._col0(Inner),Output:["_col2"] - <-Map 36 [SIMPLE_EDGE] - SHUFFLE [RS_172] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_8] - <-Reducer 27 [SIMPLE_EDGE] - SHUFFLE [RS_171] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_341] (rows=633595212 width=88) - Conds:RS_168._col0=RS_169._col0(Inner),Output:["_col1","_col2"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_168] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_2] - <-Map 35 [SIMPLE_EDGE] - SHUFFLE [RS_169] - PartitionCols:_col0 - Select Operator [SEL_161] (rows=14400 width=471) - Output:["_col0"] - Filter Operator [FIL_316] (rows=14400 width=471) - predicate:((t_hour = 9) and (t_minute >= 30) and t_time_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Reducer 34 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_215] - Group By Operator [GBY_206] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 33 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_205] - Group By Operator [GBY_204] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_346] (rows=766650239 width=88) - Conds:RS_200._col2=RS_201._col0(Inner) - <-Map 37 [SIMPLE_EDGE] - SHUFFLE [RS_201] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_11] - <-Reducer 32 [SIMPLE_EDGE] - SHUFFLE [RS_200] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_345] (rows=696954748 width=88) - Conds:RS_197._col1=RS_198._col0(Inner),Output:["_col2"] - <-Map 36 [SIMPLE_EDGE] - SHUFFLE [RS_198] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_8] - <-Reducer 31 [SIMPLE_EDGE] - SHUFFLE [RS_197] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_344] (rows=633595212 width=88) - Conds:RS_194._col0=RS_195._col0(Inner),Output:["_col1","_col2"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_194] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_2] - <-Map 35 [SIMPLE_EDGE] - SHUFFLE [RS_195] - PartitionCols:_col0 - Select Operator [SEL_187] (rows=14400 width=471) - Output:["_col0"] - Filter Operator [FIL_320] (rows=14400 width=471) - predicate:((t_hour = 9) and (t_minute < 30) and t_time_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Reducer 5 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_208] - Group By Operator [GBY_24] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 4 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_23] - Group By Operator [GBY_22] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_325] (rows=766650239 width=88) - Conds:RS_18._col2=RS_19._col0(Inner) - <-Map 37 [SIMPLE_EDGE] - SHUFFLE [RS_19] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_11] - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_18] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_324] (rows=696954748 width=88) - Conds:RS_15._col1=RS_16._col0(Inner),Output:["_col2"] - <-Map 36 [SIMPLE_EDGE] - SHUFFLE [RS_16] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_8] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_15] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_323] (rows=633595212 width=88) - Conds:RS_12._col0=RS_13._col0(Inner),Output:["_col1","_col2"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_12] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_2] - <-Map 35 [SIMPLE_EDGE] - SHUFFLE [RS_13] - PartitionCols:_col0 - Select Operator [SEL_5] (rows=14400 width=471) - Output:["_col0"] - Filter Operator [FIL_292] (rows=14400 width=471) - predicate:((t_hour = 8) and (t_minute >= 30) and t_time_sk is not null) - Please refer to the previous TableScan [TS_3] + <-Group By Operator [GBY_24] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 14 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_210] + Group By Operator [GBY_76] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 13 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_75] + Group By Operator [GBY_74] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_331] (rows=766650239 width=88) + Conds:RS_70._col2=RS_71._col0(Inner) + <-Map 43 [SIMPLE_EDGE] + SHUFFLE [RS_71] + PartitionCols:_col0 + Select Operator [SEL_11] (rows=852 width=1910) + Output:["_col0"] + Filter Operator [FIL_294] (rows=852 width=1910) + predicate:((s_store_name = 'ese') and s_store_sk is not null) + TableScan [TS_9] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name"] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_70] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_330] (rows=696954748 width=88) + Conds:RS_67._col1=RS_68._col0(Inner),Output:["_col2"] + <-Map 42 [SIMPLE_EDGE] + SHUFFLE [RS_68] + PartitionCols:_col0 + Select Operator [SEL_8] (rows=3600 width=107) + Output:["_col0"] + Filter Operator [FIL_293] (rows=3600 width=107) + predicate:((((hd_dep_count = 3) and (hd_vehicle_count <= 5)) or ((hd_dep_count = 0) and (hd_vehicle_count <= 2)) or ((hd_dep_count = 1) and (hd_vehicle_count <= 3))) and hd_demo_sk is not null) + TableScan [TS_6] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_dep_count","hd_vehicle_count"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_67] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_329] (rows=633595212 width=88) + Conds:RS_64._col0=RS_65._col0(Inner),Output:["_col1","_col2"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_64] + PartitionCols:_col0 + Select Operator [SEL_2] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_291] (rows=575995635 width=88) + predicate:(ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) + TableScan [TS_0] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Map 41 [SIMPLE_EDGE] + SHUFFLE [RS_65] + PartitionCols:_col0 + Select Operator [SEL_57] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_300] (rows=14400 width=471) + predicate:((t_hour = 11) and (t_minute >= 30) and t_time_sk is not null) + TableScan [TS_3] (rows=86400 width=471) + default@time_dim,time_dim,Tbl:COMPLETE,Col:NONE,Output:["t_time_sk","t_hour","t_minute"] + <-Reducer 19 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_211] + Group By Operator [GBY_102] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 18 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_101] + Group By Operator [GBY_100] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_334] (rows=766650239 width=88) + Conds:RS_96._col2=RS_97._col0(Inner) + <-Map 43 [SIMPLE_EDGE] + SHUFFLE [RS_97] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_11] + <-Reducer 17 [SIMPLE_EDGE] + SHUFFLE [RS_96] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_333] (rows=696954748 width=88) + Conds:RS_93._col1=RS_94._col0(Inner),Output:["_col2"] + <-Map 42 [SIMPLE_EDGE] + SHUFFLE [RS_94] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_8] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_93] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_332] (rows=633595212 width=88) + Conds:RS_90._col0=RS_91._col0(Inner),Output:["_col1","_col2"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_90] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_2] + <-Map 41 [SIMPLE_EDGE] + SHUFFLE [RS_91] + PartitionCols:_col0 + Select Operator [SEL_83] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_304] (rows=14400 width=471) + predicate:((t_hour = 11) and (t_minute < 30) and t_time_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Reducer 24 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_212] + Group By Operator [GBY_128] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 23 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_127] + Group By Operator [GBY_126] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_337] (rows=766650239 width=88) + Conds:RS_122._col2=RS_123._col0(Inner) + <-Map 43 [SIMPLE_EDGE] + SHUFFLE [RS_123] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_11] + <-Reducer 22 [SIMPLE_EDGE] + SHUFFLE [RS_122] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_336] (rows=696954748 width=88) + Conds:RS_119._col1=RS_120._col0(Inner),Output:["_col2"] + <-Map 42 [SIMPLE_EDGE] + SHUFFLE [RS_120] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_8] + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_119] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_335] (rows=633595212 width=88) + Conds:RS_116._col0=RS_117._col0(Inner),Output:["_col1","_col2"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_116] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_2] + <-Map 41 [SIMPLE_EDGE] + SHUFFLE [RS_117] + PartitionCols:_col0 + Select Operator [SEL_109] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_308] (rows=14400 width=471) + predicate:((t_hour = 10) and (t_minute >= 30) and t_time_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Reducer 29 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_213] + Group By Operator [GBY_154] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 28 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_153] + Group By Operator [GBY_152] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_340] (rows=766650239 width=88) + Conds:RS_148._col2=RS_149._col0(Inner) + <-Map 43 [SIMPLE_EDGE] + SHUFFLE [RS_149] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_11] + <-Reducer 27 [SIMPLE_EDGE] + SHUFFLE [RS_148] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_339] (rows=696954748 width=88) + Conds:RS_145._col1=RS_146._col0(Inner),Output:["_col2"] + <-Map 42 [SIMPLE_EDGE] + SHUFFLE [RS_146] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_8] + <-Reducer 26 [SIMPLE_EDGE] + SHUFFLE [RS_145] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_338] (rows=633595212 width=88) + Conds:RS_142._col0=RS_143._col0(Inner),Output:["_col1","_col2"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_142] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_2] + <-Map 41 [SIMPLE_EDGE] + SHUFFLE [RS_143] + PartitionCols:_col0 + Select Operator [SEL_135] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_312] (rows=14400 width=471) + predicate:((t_hour = 10) and (t_minute < 30) and t_time_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Reducer 34 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_214] + Group By Operator [GBY_180] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 33 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_179] + Group By Operator [GBY_178] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_343] (rows=766650239 width=88) + Conds:RS_174._col2=RS_175._col0(Inner) + <-Map 43 [SIMPLE_EDGE] + SHUFFLE [RS_175] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_11] + <-Reducer 32 [SIMPLE_EDGE] + SHUFFLE [RS_174] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_342] (rows=696954748 width=88) + Conds:RS_171._col1=RS_172._col0(Inner),Output:["_col2"] + <-Map 42 [SIMPLE_EDGE] + SHUFFLE [RS_172] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_8] + <-Reducer 31 [SIMPLE_EDGE] + SHUFFLE [RS_171] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_341] (rows=633595212 width=88) + Conds:RS_168._col0=RS_169._col0(Inner),Output:["_col1","_col2"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_168] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_2] + <-Map 41 [SIMPLE_EDGE] + SHUFFLE [RS_169] + PartitionCols:_col0 + Select Operator [SEL_161] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_316] (rows=14400 width=471) + predicate:((t_hour = 9) and (t_minute >= 30) and t_time_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Reducer 39 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_215] + Group By Operator [GBY_206] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 38 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_205] + Group By Operator [GBY_204] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_346] (rows=766650239 width=88) + Conds:RS_200._col2=RS_201._col0(Inner) + <-Map 43 [SIMPLE_EDGE] + SHUFFLE [RS_201] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_11] + <-Reducer 37 [SIMPLE_EDGE] + SHUFFLE [RS_200] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_345] (rows=696954748 width=88) + Conds:RS_197._col1=RS_198._col0(Inner),Output:["_col2"] + <-Map 42 [SIMPLE_EDGE] + SHUFFLE [RS_198] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_8] + <-Reducer 36 [SIMPLE_EDGE] + SHUFFLE [RS_197] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_344] (rows=633595212 width=88) + Conds:RS_194._col0=RS_195._col0(Inner),Output:["_col1","_col2"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_194] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_2] + <-Map 41 [SIMPLE_EDGE] + SHUFFLE [RS_195] + PartitionCols:_col0 + Select Operator [SEL_187] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_320] (rows=14400 width=471) + predicate:((t_hour = 9) and (t_minute < 30) and t_time_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_23] + Group By Operator [GBY_22] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_325] (rows=766650239 width=88) + Conds:RS_18._col2=RS_19._col0(Inner) + <-Map 43 [SIMPLE_EDGE] + SHUFFLE [RS_19] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_11] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_324] (rows=696954748 width=88) + Conds:RS_15._col1=RS_16._col0(Inner),Output:["_col2"] + <-Map 42 [SIMPLE_EDGE] + SHUFFLE [RS_16] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_8] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_15] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_323] (rows=633595212 width=88) + Conds:RS_12._col0=RS_13._col0(Inner),Output:["_col1","_col2"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_2] + <-Map 41 [SIMPLE_EDGE] + SHUFFLE [RS_13] + PartitionCols:_col0 + Select Operator [SEL_5] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_292] (rows=14400 width=471) + predicate:((t_hour = 8) and (t_minute >= 30) and t_time_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Reducer 9 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_209] + Group By Operator [GBY_50] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 8 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_49] + Group By Operator [GBY_48] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_328] (rows=766650239 width=88) + Conds:RS_44._col2=RS_45._col0(Inner) + <-Map 43 [SIMPLE_EDGE] + SHUFFLE [RS_45] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_11] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_44] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_327] (rows=696954748 width=88) + Conds:RS_41._col1=RS_42._col0(Inner),Output:["_col2"] + <-Map 42 [SIMPLE_EDGE] + SHUFFLE [RS_42] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_8] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_41] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_326] (rows=633595212 width=88) + Conds:RS_38._col0=RS_39._col0(Inner),Output:["_col1","_col2"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_38] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_2] + <-Map 41 [SIMPLE_EDGE] + SHUFFLE [RS_39] + PartitionCols:_col0 + Select Operator [SEL_31] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_296] (rows=14400 width=471) + predicate:((t_hour = 12) and (t_minute < 30) and t_time_sk is not null) + Please refer to the previous TableScan [TS_3] diff --git ql/src/test/results/clientpositive/perf/query9.q.out ql/src/test/results/clientpositive/perf/query9.q.out index 425163e..f7f3bda 100644 --- ql/src/test/results/clientpositive/perf/query9.q.out +++ ql/src/test/results/clientpositive/perf/query9.q.out @@ -1,18 +1,3 @@ -Warning: Shuffle Join MERGEJOIN[171][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 2' is a cross product -Warning: Shuffle Join MERGEJOIN[172][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 3' is a cross product -Warning: Shuffle Join MERGEJOIN[173][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3]] in Stage 'Reducer 4' is a cross product -Warning: Shuffle Join MERGEJOIN[174][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4]] in Stage 'Reducer 5' is a cross product -Warning: Shuffle Join MERGEJOIN[175][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5]] in Stage 'Reducer 6' is a cross product -Warning: Shuffle Join MERGEJOIN[176][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6]] in Stage 'Reducer 7' is a cross product -Warning: Shuffle Join MERGEJOIN[177][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6, $hdt$_7]] in Stage 'Reducer 8' is a cross product -Warning: Shuffle Join MERGEJOIN[178][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6, $hdt$_7, $hdt$_8]] in Stage 'Reducer 9' is a cross product -Warning: Shuffle Join MERGEJOIN[179][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6, $hdt$_7, $hdt$_8, $hdt$_9]] in Stage 'Reducer 10' is a cross product -Warning: Shuffle Join MERGEJOIN[180][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6, $hdt$_7, $hdt$_8, $hdt$_9, $hdt$_10]] in Stage 'Reducer 11' is a cross product -Warning: Shuffle Join MERGEJOIN[181][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6, $hdt$_7, $hdt$_8, $hdt$_9, $hdt$_10, $hdt$_11]] in Stage 'Reducer 12' is a cross product -Warning: Shuffle Join MERGEJOIN[182][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6, $hdt$_7, $hdt$_8, $hdt$_9, $hdt$_10, $hdt$_11, $hdt$_12]] in Stage 'Reducer 13' is a cross product -Warning: Shuffle Join MERGEJOIN[183][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6, $hdt$_7, $hdt$_8, $hdt$_9, $hdt$_10, $hdt$_11, $hdt$_12, $hdt$_13]] in Stage 'Reducer 14' is a cross product -Warning: Shuffle Join MERGEJOIN[184][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6, $hdt$_7, $hdt$_8, $hdt$_9, $hdt$_10, $hdt$_11, $hdt$_12, $hdt$_13, $hdt$_14]] in Stage 'Reducer 15' is a cross product -Warning: Shuffle Join MERGEJOIN[185][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6, $hdt$_7, $hdt$_8, $hdt$_9, $hdt$_10, $hdt$_11, $hdt$_12, $hdt$_13, $hdt$_14, $hdt$_15]] in Stage 'Reducer 16' is a cross product PREHOOK: query: explain select case when (select count(*) from store_sales @@ -114,36 +99,21 @@ POSTHOOK: type: QUERY Plan optimized by CBO. Vertex dependency in root stage -Reducer 10 <- Reducer 32 (CUSTOM_SIMPLE_EDGE), Reducer 9 (CUSTOM_SIMPLE_EDGE) -Reducer 11 <- Reducer 10 (CUSTOM_SIMPLE_EDGE), Reducer 21 (CUSTOM_SIMPLE_EDGE) -Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE), Reducer 27 (CUSTOM_SIMPLE_EDGE) -Reducer 13 <- Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 33 (CUSTOM_SIMPLE_EDGE) -Reducer 14 <- Reducer 13 (CUSTOM_SIMPLE_EDGE), Reducer 22 (CUSTOM_SIMPLE_EDGE) -Reducer 15 <- Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 28 (CUSTOM_SIMPLE_EDGE) -Reducer 16 <- Reducer 15 (CUSTOM_SIMPLE_EDGE), Reducer 34 (CUSTOM_SIMPLE_EDGE) -Reducer 18 <- Map 17 (CUSTOM_SIMPLE_EDGE) -Reducer 19 <- Map 17 (CUSTOM_SIMPLE_EDGE) -Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE), Reducer 18 (CUSTOM_SIMPLE_EDGE) -Reducer 20 <- Map 17 (CUSTOM_SIMPLE_EDGE) -Reducer 21 <- Map 17 (CUSTOM_SIMPLE_EDGE) -Reducer 22 <- Map 17 (CUSTOM_SIMPLE_EDGE) -Reducer 24 <- Map 23 (CUSTOM_SIMPLE_EDGE) -Reducer 25 <- Map 23 (CUSTOM_SIMPLE_EDGE) -Reducer 26 <- Map 23 (CUSTOM_SIMPLE_EDGE) -Reducer 27 <- Map 23 (CUSTOM_SIMPLE_EDGE) -Reducer 28 <- Map 23 (CUSTOM_SIMPLE_EDGE) -Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE), Reducer 24 (CUSTOM_SIMPLE_EDGE) -Reducer 30 <- Map 29 (CUSTOM_SIMPLE_EDGE) -Reducer 31 <- Map 29 (CUSTOM_SIMPLE_EDGE) -Reducer 32 <- Map 29 (CUSTOM_SIMPLE_EDGE) -Reducer 33 <- Map 29 (CUSTOM_SIMPLE_EDGE) -Reducer 34 <- Map 29 (CUSTOM_SIMPLE_EDGE) -Reducer 4 <- Reducer 3 (CUSTOM_SIMPLE_EDGE), Reducer 30 (CUSTOM_SIMPLE_EDGE) -Reducer 5 <- Reducer 19 (CUSTOM_SIMPLE_EDGE), Reducer 4 (CUSTOM_SIMPLE_EDGE) -Reducer 6 <- Reducer 25 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE) -Reducer 7 <- Reducer 31 (CUSTOM_SIMPLE_EDGE), Reducer 6 (CUSTOM_SIMPLE_EDGE) -Reducer 8 <- Reducer 20 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE) -Reducer 9 <- Reducer 26 (CUSTOM_SIMPLE_EDGE), Reducer 8 (CUSTOM_SIMPLE_EDGE) +Reducer 10 <- Map 29 (CUSTOM_SIMPLE_EDGE), Reducer 9 (CUSTOM_SIMPLE_EDGE) +Reducer 11 <- Map 17 (CUSTOM_SIMPLE_EDGE), Reducer 10 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Map 23 (CUSTOM_SIMPLE_EDGE), Reducer 11 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 29 (CUSTOM_SIMPLE_EDGE), Reducer 12 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 17 (CUSTOM_SIMPLE_EDGE), Reducer 13 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 23 (CUSTOM_SIMPLE_EDGE), Reducer 14 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 29 (CUSTOM_SIMPLE_EDGE), Reducer 15 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE), Map 17 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 23 (CUSTOM_SIMPLE_EDGE), Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Map 29 (CUSTOM_SIMPLE_EDGE), Reducer 3 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Map 17 (CUSTOM_SIMPLE_EDGE), Reducer 4 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Map 23 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Map 29 (CUSTOM_SIMPLE_EDGE), Reducer 6 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Map 17 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 23 (CUSTOM_SIMPLE_EDGE), Reducer 8 (CUSTOM_SIMPLE_EDGE) Stage-0 Fetch Operator @@ -153,242 +123,26 @@ Stage-0 File Output Operator [FS_154] Select Operator [SEL_153] (rows=36 width=3135) Output:["_col0","_col1","_col2","_col3","_col4"] - Merge Join Operator [MERGEJOIN_185] (rows=36 width=3135) + Merge Join Operator [MERGEJOIN_213] (rows=36 width=3135) Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Reducer 15 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_150] - Merge Join Operator [MERGEJOIN_184] (rows=36 width=2846) - Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"] - <-Reducer 14 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_147] - Merge Join Operator [MERGEJOIN_183] (rows=36 width=2557) - Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] - <-Reducer 13 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_144] - Merge Join Operator [MERGEJOIN_182] (rows=36 width=2548) - Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12"] - <-Reducer 12 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_141] - Merge Join Operator [MERGEJOIN_181] (rows=36 width=2259) - Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] - <-Reducer 11 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_138] - Merge Join Operator [MERGEJOIN_180] (rows=36 width=1970) - Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] - <-Reducer 10 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_135] - Merge Join Operator [MERGEJOIN_179] (rows=36 width=1961) - Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] - <-Reducer 32 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_133] - Group By Operator [GBY_64] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(VALUE._col0)"] - <-Map 29 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_63] - Group By Operator [GBY_62] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(ss_net_paid_inc_tax)"] - Select Operator [SEL_61] (rows=63999515 width=88) - Output:["ss_net_paid_inc_tax"] - Filter Operator [FIL_164] (rows=63999515 width=88) - predicate:ss_quantity BETWEEN 41 AND 60 - TableScan [TS_17] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_quantity","ss_net_paid_inc_tax"] - <-Reducer 9 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_132] - Merge Join Operator [MERGEJOIN_178] (rows=36 width=1672) - Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - <-Reducer 26 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_130] - Group By Operator [GBY_57] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(VALUE._col0)"] - <-Map 23 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_56] - Group By Operator [GBY_55] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(ss_ext_list_price)"] - Select Operator [SEL_54] (rows=63999515 width=88) - Output:["ss_ext_list_price"] - Filter Operator [FIL_163] (rows=63999515 width=88) - predicate:ss_quantity BETWEEN 41 AND 60 - TableScan [TS_10] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_quantity","ss_ext_list_price"] - <-Reducer 8 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_129] - Merge Join Operator [MERGEJOIN_177] (rows=36 width=1383) - Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - <-Reducer 20 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_127] - Group By Operator [GBY_50] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Map 17 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_49] - Group By Operator [GBY_48] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_47] (rows=63999515 width=88) - Filter Operator [FIL_162] (rows=63999515 width=88) - predicate:ss_quantity BETWEEN 41 AND 60 - TableScan [TS_3] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_quantity"] - <-Reducer 7 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_126] - Merge Join Operator [MERGEJOIN_176] (rows=36 width=1374) - Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] - <-Reducer 31 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_124] - Group By Operator [GBY_43] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(VALUE._col0)"] - <-Map 29 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_42] - Group By Operator [GBY_41] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(ss_net_paid_inc_tax)"] - Select Operator [SEL_40] (rows=63999515 width=88) - Output:["ss_net_paid_inc_tax"] - Filter Operator [FIL_161] (rows=63999515 width=88) - predicate:ss_quantity BETWEEN 21 AND 40 - Please refer to the previous TableScan [TS_17] - <-Reducer 6 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_123] - Merge Join Operator [MERGEJOIN_175] (rows=36 width=1085) - Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Reducer 25 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_121] - Group By Operator [GBY_36] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(VALUE._col0)"] - <-Map 23 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_35] - Group By Operator [GBY_34] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(ss_ext_list_price)"] - Select Operator [SEL_33] (rows=63999515 width=88) - Output:["ss_ext_list_price"] - Filter Operator [FIL_160] (rows=63999515 width=88) - predicate:ss_quantity BETWEEN 21 AND 40 - Please refer to the previous TableScan [TS_10] - <-Reducer 5 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_120] - Merge Join Operator [MERGEJOIN_174] (rows=36 width=796) - Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4"] - <-Reducer 19 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_118] - Group By Operator [GBY_29] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Map 17 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_28] - Group By Operator [GBY_27] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_26] (rows=63999515 width=88) - Filter Operator [FIL_159] (rows=63999515 width=88) - predicate:ss_quantity BETWEEN 21 AND 40 - Please refer to the previous TableScan [TS_3] - <-Reducer 4 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_117] - Merge Join Operator [MERGEJOIN_173] (rows=36 width=787) - Conds:(Left Outer),Output:["_col1","_col2","_col3"] - <-Reducer 3 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_114] - Merge Join Operator [MERGEJOIN_172] (rows=36 width=498) - Conds:(Left Outer),Output:["_col1","_col2"] - <-Reducer 2 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_111] - Merge Join Operator [MERGEJOIN_171] (rows=36 width=209) - Conds:(Left Outer),Output:["_col1"] - <-Map 1 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_108] - Select Operator [SEL_2] (rows=36 width=200) - Filter Operator [FIL_155] (rows=36 width=200) - predicate:(r_reason_sk = 1) - TableScan [TS_0] (rows=72 width=200) - default@reason,reason,Tbl:COMPLETE,Col:NONE,Output:["r_reason_sk"] - <-Reducer 18 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_109] - Group By Operator [GBY_8] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Map 17 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_7] - Group By Operator [GBY_6] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_5] (rows=63999515 width=88) - Filter Operator [FIL_156] (rows=63999515 width=88) - predicate:ss_quantity BETWEEN 1 AND 20 - Please refer to the previous TableScan [TS_3] - <-Reducer 24 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_112] - Group By Operator [GBY_15] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(VALUE._col0)"] - <-Map 23 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_14] - Group By Operator [GBY_13] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(ss_ext_list_price)"] - Select Operator [SEL_12] (rows=63999515 width=88) - Output:["ss_ext_list_price"] - Filter Operator [FIL_157] (rows=63999515 width=88) - predicate:ss_quantity BETWEEN 1 AND 20 - Please refer to the previous TableScan [TS_10] - <-Reducer 30 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_115] - Group By Operator [GBY_22] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(VALUE._col0)"] - <-Map 29 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_21] - Group By Operator [GBY_20] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(ss_net_paid_inc_tax)"] - Select Operator [SEL_19] (rows=63999515 width=88) - Output:["ss_net_paid_inc_tax"] - Filter Operator [FIL_158] (rows=63999515 width=88) - predicate:ss_quantity BETWEEN 1 AND 20 - Please refer to the previous TableScan [TS_17] - <-Reducer 21 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_136] - Group By Operator [GBY_71] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Map 17 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_70] - Group By Operator [GBY_69] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_68] (rows=63999515 width=88) - Filter Operator [FIL_165] (rows=63999515 width=88) - predicate:ss_quantity BETWEEN 61 AND 80 - Please refer to the previous TableScan [TS_3] - <-Reducer 27 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_139] - Group By Operator [GBY_78] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(VALUE._col0)"] - <-Map 23 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_77] - Group By Operator [GBY_76] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(ss_ext_list_price)"] - Select Operator [SEL_75] (rows=63999515 width=88) - Output:["ss_ext_list_price"] - Filter Operator [FIL_166] (rows=63999515 width=88) - predicate:ss_quantity BETWEEN 61 AND 80 - Please refer to the previous TableScan [TS_10] - <-Reducer 33 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_142] - Group By Operator [GBY_85] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(VALUE._col0)"] - <-Map 29 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_84] - Group By Operator [GBY_83] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(ss_net_paid_inc_tax)"] - Select Operator [SEL_82] (rows=63999515 width=88) - Output:["ss_net_paid_inc_tax"] - Filter Operator [FIL_167] (rows=63999515 width=88) - predicate:ss_quantity BETWEEN 61 AND 80 - Please refer to the previous TableScan [TS_17] - <-Reducer 22 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_145] - Group By Operator [GBY_92] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Map 17 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_91] - Group By Operator [GBY_90] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_89] (rows=63999515 width=88) - Filter Operator [FIL_168] (rows=63999515 width=88) - predicate:ss_quantity BETWEEN 81 AND 100 - Please refer to the previous TableScan [TS_3] - <-Reducer 28 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_148] - Group By Operator [GBY_99] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(VALUE._col0)"] + <-Select Operator [SEL_214] + Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"] + <-Map 29 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_105] + Group By Operator [GBY_104] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(ss_net_paid_inc_tax)"] + Select Operator [SEL_103] (rows=63999515 width=88) + Output:["ss_net_paid_inc_tax"] + Filter Operator [FIL_170] (rows=63999515 width=88) + predicate:ss_quantity BETWEEN 81 AND 100 + TableScan [TS_17] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_quantity","ss_net_paid_inc_tax"] + <-Reducer 15 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_150] + Merge Join Operator [MERGEJOIN_210] (rows=36 width=2846) + Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"] + <-Select Operator [SEL_211] + Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] <-Map 23 [CUSTOM_SIMPLE_EDGE] PARTITION_ONLY_SHUFFLE [RS_98] Group By Operator [GBY_97] (rows=1 width=288) @@ -397,18 +151,203 @@ Stage-0 Output:["ss_ext_list_price"] Filter Operator [FIL_169] (rows=63999515 width=88) predicate:ss_quantity BETWEEN 81 AND 100 - Please refer to the previous TableScan [TS_10] - <-Reducer 34 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_151] - Group By Operator [GBY_106] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(VALUE._col0)"] - <-Map 29 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_105] - Group By Operator [GBY_104] (rows=1 width=288) - Output:["_col0"],aggregations:["avg(ss_net_paid_inc_tax)"] - Select Operator [SEL_103] (rows=63999515 width=88) - Output:["ss_net_paid_inc_tax"] - Filter Operator [FIL_170] (rows=63999515 width=88) - predicate:ss_quantity BETWEEN 81 AND 100 - Please refer to the previous TableScan [TS_17] + TableScan [TS_10] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_quantity","ss_ext_list_price"] + <-Reducer 14 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_147] + Merge Join Operator [MERGEJOIN_207] (rows=36 width=2557) + Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Select Operator [SEL_208] + Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_91] + Group By Operator [GBY_90] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_89] (rows=63999515 width=88) + Filter Operator [FIL_168] (rows=63999515 width=88) + predicate:ss_quantity BETWEEN 81 AND 100 + TableScan [TS_3] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_quantity"] + <-Reducer 13 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_144] + Merge Join Operator [MERGEJOIN_204] (rows=36 width=2548) + Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12"] + <-Select Operator [SEL_205] + Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 29 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_84] + Group By Operator [GBY_83] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(ss_net_paid_inc_tax)"] + Select Operator [SEL_82] (rows=63999515 width=88) + Output:["ss_net_paid_inc_tax"] + Filter Operator [FIL_167] (rows=63999515 width=88) + predicate:ss_quantity BETWEEN 61 AND 80 + Please refer to the previous TableScan [TS_17] + <-Reducer 12 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_141] + Merge Join Operator [MERGEJOIN_201] (rows=36 width=2259) + Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Select Operator [SEL_202] + Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_77] + Group By Operator [GBY_76] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(ss_ext_list_price)"] + Select Operator [SEL_75] (rows=63999515 width=88) + Output:["ss_ext_list_price"] + Filter Operator [FIL_166] (rows=63999515 width=88) + predicate:ss_quantity BETWEEN 61 AND 80 + Please refer to the previous TableScan [TS_10] + <-Reducer 11 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_138] + Merge Join Operator [MERGEJOIN_198] (rows=36 width=1970) + Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + <-Select Operator [SEL_199] + Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_70] + Group By Operator [GBY_69] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_68] (rows=63999515 width=88) + Filter Operator [FIL_165] (rows=63999515 width=88) + predicate:ss_quantity BETWEEN 61 AND 80 + Please refer to the previous TableScan [TS_3] + <-Reducer 10 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_135] + Merge Join Operator [MERGEJOIN_195] (rows=36 width=1961) + Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + <-Select Operator [SEL_196] + Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + <-Map 29 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_63] + Group By Operator [GBY_62] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(ss_net_paid_inc_tax)"] + Select Operator [SEL_61] (rows=63999515 width=88) + Output:["ss_net_paid_inc_tax"] + Filter Operator [FIL_164] (rows=63999515 width=88) + predicate:ss_quantity BETWEEN 41 AND 60 + Please refer to the previous TableScan [TS_17] + <-Reducer 9 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_132] + Merge Join Operator [MERGEJOIN_192] (rows=36 width=1672) + Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + <-Select Operator [SEL_193] + Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_56] + Group By Operator [GBY_55] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(ss_ext_list_price)"] + Select Operator [SEL_54] (rows=63999515 width=88) + Output:["ss_ext_list_price"] + Filter Operator [FIL_163] (rows=63999515 width=88) + predicate:ss_quantity BETWEEN 41 AND 60 + Please refer to the previous TableScan [TS_10] + <-Reducer 8 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_129] + Merge Join Operator [MERGEJOIN_189] (rows=36 width=1383) + Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Select Operator [SEL_190] + Output:["_col1","_col2","_col3","_col4","_col5","_col6"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_49] + Group By Operator [GBY_48] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_47] (rows=63999515 width=88) + Filter Operator [FIL_162] (rows=63999515 width=88) + predicate:ss_quantity BETWEEN 41 AND 60 + Please refer to the previous TableScan [TS_3] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_126] + Merge Join Operator [MERGEJOIN_186] (rows=36 width=1374) + Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] + <-Select Operator [SEL_187] + Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 29 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_42] + Group By Operator [GBY_41] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(ss_net_paid_inc_tax)"] + Select Operator [SEL_40] (rows=63999515 width=88) + Output:["ss_net_paid_inc_tax"] + Filter Operator [FIL_161] (rows=63999515 width=88) + predicate:ss_quantity BETWEEN 21 AND 40 + Please refer to the previous TableScan [TS_17] + <-Reducer 6 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_123] + Merge Join Operator [MERGEJOIN_183] (rows=36 width=1085) + Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Select Operator [SEL_184] + Output:["_col1","_col2","_col3","_col4"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_35] + Group By Operator [GBY_34] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(ss_ext_list_price)"] + Select Operator [SEL_33] (rows=63999515 width=88) + Output:["ss_ext_list_price"] + Filter Operator [FIL_160] (rows=63999515 width=88) + predicate:ss_quantity BETWEEN 21 AND 40 + Please refer to the previous TableScan [TS_10] + <-Reducer 5 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_120] + Merge Join Operator [MERGEJOIN_180] (rows=36 width=796) + Conds:(Left Outer),Output:["_col1","_col2","_col3","_col4"] + <-Select Operator [SEL_181] + Output:["_col1","_col2","_col3"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_28] + Group By Operator [GBY_27] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_26] (rows=63999515 width=88) + Filter Operator [FIL_159] (rows=63999515 width=88) + predicate:ss_quantity BETWEEN 21 AND 40 + Please refer to the previous TableScan [TS_3] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_117] + Merge Join Operator [MERGEJOIN_177] (rows=36 width=787) + Conds:(Left Outer),Output:["_col1","_col2","_col3"] + <-Select Operator [SEL_178] + Output:["_col1","_col2"] + <-Map 29 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_21] + Group By Operator [GBY_20] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(ss_net_paid_inc_tax)"] + Select Operator [SEL_19] (rows=63999515 width=88) + Output:["ss_net_paid_inc_tax"] + Filter Operator [FIL_158] (rows=63999515 width=88) + predicate:ss_quantity BETWEEN 1 AND 20 + Please refer to the previous TableScan [TS_17] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_114] + Merge Join Operator [MERGEJOIN_174] (rows=36 width=498) + Conds:(Left Outer),Output:["_col1","_col2"] + <-Select Operator [SEL_175] + Output:["_col1"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_14] + Group By Operator [GBY_13] (rows=1 width=288) + Output:["_col0"],aggregations:["avg(ss_ext_list_price)"] + Select Operator [SEL_12] (rows=63999515 width=88) + Output:["ss_ext_list_price"] + Filter Operator [FIL_157] (rows=63999515 width=88) + predicate:ss_quantity BETWEEN 1 AND 20 + Please refer to the previous TableScan [TS_10] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_111] + Merge Join Operator [MERGEJOIN_171] (rows=36 width=209) + Conds:(Left Outer),Output:["_col1"] + <-Select Operator [SEL_172] + <-Map 17 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_7] + Group By Operator [GBY_6] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_5] (rows=63999515 width=88) + Filter Operator [FIL_156] (rows=63999515 width=88) + predicate:ss_quantity BETWEEN 1 AND 20 + Please refer to the previous TableScan [TS_3] + <-Map 1 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_108] + Select Operator [SEL_2] (rows=36 width=200) + Filter Operator [FIL_155] (rows=36 width=200) + predicate:(r_reason_sk = 1) + TableScan [TS_0] (rows=72 width=200) + default@reason,reason,Tbl:COMPLETE,Col:NONE,Output:["r_reason_sk"] diff --git ql/src/test/results/clientpositive/perf/query90.q.out ql/src/test/results/clientpositive/perf/query90.q.out index d63ce1b..48d0f62 100644 --- ql/src/test/results/clientpositive/perf/query90.q.out +++ ql/src/test/results/clientpositive/perf/query90.q.out @@ -1,4 +1,3 @@ -Warning: Shuffle Join MERGEJOIN[92][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 6' is a cross product PREHOOK: query: explain select cast(amc as decimal(15,4))/cast(pmc as decimal(15,4)) am_pm_ratio from ( select count(*) amc @@ -44,127 +43,124 @@ POSTHOOK: type: QUERY Plan optimized by CBO. Vertex dependency in root stage -Reducer 10 <- Map 14 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) -Reducer 11 <- Reducer 10 (CUSTOM_SIMPLE_EDGE) +Reducer 10 <- Reducer 9 (CUSTOM_SIMPLE_EDGE) Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 12 (SIMPLE_EDGE) Reducer 3 <- Map 13 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) Reducer 4 <- Map 14 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Reducer 4 (CUSTOM_SIMPLE_EDGE) -Reducer 6 <- Reducer 11 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE) -Reducer 7 <- Reducer 6 (SIMPLE_EDGE) -Reducer 8 <- Map 1 (SIMPLE_EDGE), Map 12 (SIMPLE_EDGE) -Reducer 9 <- Map 13 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 5 <- Reducer 10 (CUSTOM_SIMPLE_EDGE), Reducer 4 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 7 <- Map 1 (SIMPLE_EDGE), Map 12 (SIMPLE_EDGE) +Reducer 8 <- Map 13 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Map 14 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 7 + Reducer 6 File Output Operator [FS_59] Limit [LIM_58] (rows=1 width=17) Number of rows:100 Select Operator [SEL_57] (rows=1 width=17) Output:["_col0"] - <-Reducer 6 [SIMPLE_EDGE] + <-Reducer 5 [SIMPLE_EDGE] SHUFFLE [RS_56] Select Operator [SEL_55] (rows=1 width=17) Output:["_col0"] Merge Join Operator [MERGEJOIN_92] (rows=1 width=17) Conds:(Inner),Output:["_col0","_col1"] - <-Reducer 11 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_53] - Group By Operator [GBY_50] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 10 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_49] - Group By Operator [GBY_48] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_91] (rows=191667562 width=135) - Conds:RS_44._col1=RS_45._col0(Inner) - <-Map 14 [SIMPLE_EDGE] - SHUFFLE [RS_45] - PartitionCols:_col0 - Select Operator [SEL_11] (rows=3600 width=107) - Output:["_col0"] - Filter Operator [FIL_81] (rows=3600 width=107) - predicate:((hd_dep_count = 8) and hd_demo_sk is not null) - TableScan [TS_9] (rows=7200 width=107) - default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_dep_count"] - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_44] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_90] (rows=174243235 width=135) - Conds:RS_41._col0=RS_42._col0(Inner),Output:["_col1"] - <-Map 13 [SIMPLE_EDGE] - SHUFFLE [RS_42] - PartitionCols:_col0 - Select Operator [SEL_34] (rows=9600 width=471) - Output:["_col0"] - Filter Operator [FIL_84] (rows=9600 width=471) - predicate:(t_hour BETWEEN 14 AND 15 and t_time_sk is not null) - TableScan [TS_6] (rows=86400 width=471) - default@time_dim,time_dim,Tbl:COMPLETE,Col:NONE,Output:["t_time_sk","t_hour"] - <-Reducer 8 [SIMPLE_EDGE] - SHUFFLE [RS_41] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_89] (rows=158402938 width=135) - Conds:RS_38._col2=RS_39._col0(Inner),Output:["_col0","_col1"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_38] - PartitionCols:_col2 - Select Operator [SEL_2] (rows=144002668 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_78] (rows=144002668 width=135) - predicate:(ws_ship_hdemo_sk is not null and ws_sold_time_sk is not null and ws_web_page_sk is not null) - TableScan [TS_0] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_time_sk","ws_ship_hdemo_sk","ws_web_page_sk"] - <-Map 12 [SIMPLE_EDGE] - SHUFFLE [RS_39] - PartitionCols:_col0 - Select Operator [SEL_5] (rows=511 width=585) - Output:["_col0"] - Filter Operator [FIL_79] (rows=511 width=585) - predicate:(wp_char_count BETWEEN 5000 AND 5200 and wp_web_page_sk is not null) - TableScan [TS_3] (rows=4602 width=585) - default@web_page,web_page,Tbl:COMPLETE,Col:NONE,Output:["wp_web_page_sk","wp_char_count"] - <-Reducer 5 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_52] - Group By Operator [GBY_24] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 4 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_23] - Group By Operator [GBY_22] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_88] (rows=191667562 width=135) - Conds:RS_18._col1=RS_19._col0(Inner) - <-Map 14 [SIMPLE_EDGE] - SHUFFLE [RS_19] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_11] - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_18] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_87] (rows=174243235 width=135) - Conds:RS_15._col0=RS_16._col0(Inner),Output:["_col1"] - <-Map 13 [SIMPLE_EDGE] - SHUFFLE [RS_16] - PartitionCols:_col0 - Select Operator [SEL_8] (rows=9600 width=471) - Output:["_col0"] - Filter Operator [FIL_80] (rows=9600 width=471) - predicate:(t_hour BETWEEN 6 AND 7 and t_time_sk is not null) - Please refer to the previous TableScan [TS_6] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_15] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_86] (rows=158402938 width=135) - Conds:RS_12._col2=RS_13._col0(Inner),Output:["_col0","_col1"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_12] - PartitionCols:_col2 - Please refer to the previous Select Operator [SEL_2] - <-Map 12 [SIMPLE_EDGE] - SHUFFLE [RS_13] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_5] + <-Group By Operator [GBY_24] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 10 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_53] + Group By Operator [GBY_50] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 9 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_49] + Group By Operator [GBY_48] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_91] (rows=191667562 width=135) + Conds:RS_44._col1=RS_45._col0(Inner) + <-Map 14 [SIMPLE_EDGE] + SHUFFLE [RS_45] + PartitionCols:_col0 + Select Operator [SEL_11] (rows=3600 width=107) + Output:["_col0"] + Filter Operator [FIL_81] (rows=3600 width=107) + predicate:((hd_dep_count = 8) and hd_demo_sk is not null) + TableScan [TS_9] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_dep_count"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_44] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_90] (rows=174243235 width=135) + Conds:RS_41._col0=RS_42._col0(Inner),Output:["_col1"] + <-Map 13 [SIMPLE_EDGE] + SHUFFLE [RS_42] + PartitionCols:_col0 + Select Operator [SEL_34] (rows=9600 width=471) + Output:["_col0"] + Filter Operator [FIL_84] (rows=9600 width=471) + predicate:(t_hour BETWEEN 14 AND 15 and t_time_sk is not null) + TableScan [TS_6] (rows=86400 width=471) + default@time_dim,time_dim,Tbl:COMPLETE,Col:NONE,Output:["t_time_sk","t_hour"] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_41] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_89] (rows=158402938 width=135) + Conds:RS_38._col2=RS_39._col0(Inner),Output:["_col0","_col1"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_38] + PartitionCols:_col2 + Select Operator [SEL_2] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_78] (rows=144002668 width=135) + predicate:(ws_ship_hdemo_sk is not null and ws_sold_time_sk is not null and ws_web_page_sk is not null) + TableScan [TS_0] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_time_sk","ws_ship_hdemo_sk","ws_web_page_sk"] + <-Map 12 [SIMPLE_EDGE] + SHUFFLE [RS_39] + PartitionCols:_col0 + Select Operator [SEL_5] (rows=511 width=585) + Output:["_col0"] + Filter Operator [FIL_79] (rows=511 width=585) + predicate:(wp_char_count BETWEEN 5000 AND 5200 and wp_web_page_sk is not null) + TableScan [TS_3] (rows=4602 width=585) + default@web_page,web_page,Tbl:COMPLETE,Col:NONE,Output:["wp_web_page_sk","wp_char_count"] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_23] + Group By Operator [GBY_22] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_88] (rows=191667562 width=135) + Conds:RS_18._col1=RS_19._col0(Inner) + <-Map 14 [SIMPLE_EDGE] + SHUFFLE [RS_19] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_11] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_87] (rows=174243235 width=135) + Conds:RS_15._col0=RS_16._col0(Inner),Output:["_col1"] + <-Map 13 [SIMPLE_EDGE] + SHUFFLE [RS_16] + PartitionCols:_col0 + Select Operator [SEL_8] (rows=9600 width=471) + Output:["_col0"] + Filter Operator [FIL_80] (rows=9600 width=471) + predicate:(t_hour BETWEEN 6 AND 7 and t_time_sk is not null) + Please refer to the previous TableScan [TS_6] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_15] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_86] (rows=158402938 width=135) + Conds:RS_12._col2=RS_13._col0(Inner),Output:["_col0","_col1"] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col2 + Please refer to the previous Select Operator [SEL_2] + <-Map 12 [SIMPLE_EDGE] + SHUFFLE [RS_13] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_5]