@Override public void rewriteContext(CubeQueryContext cubeql) throws LensException { if (!cubeql.getCandidateDimTables().isEmpty()) { for (Map.Entry<Dimension, Set<CandidateDim>> entry : cubeql.getCandidateDimTables().entrySet()) { if (entry.getValue().isEmpty()) { continue; } Map<CandidateDim, Double> dimWeightMap = new HashMap<CandidateDim, Double>(); for (CandidateDim dim : entry.getValue()) { dimWeightMap.put(dim, dim.dimtable.weight()); } double minWeight = Collections.min(dimWeightMap.values()); for (Iterator<CandidateDim> i = entry.getValue().iterator(); i.hasNext();) { CandidateDim dim = i.next(); if (dimWeightMap.get(dim) > minWeight) { log.info("Not considering dimtable:{} from candidate dimension tables as it has more weight:{} minimum:{}", dim, dimWeightMap.get(dim), minWeight); cubeql.addDimPruningMsgs(entry.getKey(), dim.dimtable, new CandidateTablePruneCause( CandidateTablePruneCode.MORE_WEIGHT)); i.remove(); } } } } } }
@Override public void rewriteContext(CubeQueryContext cubeql) throws LensException { if (!cubeql.getCandidateDimTables().isEmpty()) { for (Map.Entry<Dimension, Set<CandidateDim>> entry : cubeql.getCandidateDimTables().entrySet()) { if (entry.getValue().isEmpty()) { continue; } Map<CandidateDim, Double> dimWeightMap = new HashMap<CandidateDim, Double>(); for (CandidateDim dim : entry.getValue()) { dimWeightMap.put(dim, dim.dimtable.weight()); } double minWeight = Collections.min(dimWeightMap.values()); for (Iterator<CandidateDim> i = entry.getValue().iterator(); i.hasNext();) { CandidateDim dim = i.next(); if (dimWeightMap.get(dim) > minWeight) { log.info("Not considering dimtable:{} from candidate dimension tables as it has more weight:{} minimum:{}", dim, dimWeightMap.get(dim), minWeight); cubeql.addDimPruningMsgs(entry.getKey(), dim.dimtable, new CandidateTablePruneCause( CandidateTablePruneCode.MORE_WEIGHT)); i.remove(); } } } } } }
public static XDimensionTable dimTableFromCubeDimTable(CubeDimensionTable cubeDimTable) { if (cubeDimTable == null) { return null; } XDimensionTable dimTab = XCF.createXDimensionTable(); dimTab.setDimensionName(cubeDimTable.getDimName()); dimTab.setTableName(cubeDimTable.getName()); dimTab.setWeight(cubeDimTable.weight()); dimTab.setColumns(new XColumns()); dimTab.setProperties(new XProperties()); dimTab.setStorageTables(new XStorageTables()); for (FieldSchema column : cubeDimTable.getColumns()) { dimTab.getColumns().getColumn().add(columnFromFieldSchema(column)); } dimTab.getProperties().getProperty().addAll(xPropertiesFromMap(cubeDimTable.getProperties())); return dimTab; }
public static XDimensionTable dimTableFromCubeDimTable(CubeDimensionTable cubeDimTable) { if (cubeDimTable == null) { return null; } XDimensionTable dimTab = XCF.createXDimensionTable(); dimTab.setDimensionName(cubeDimTable.getDimName()); dimTab.setTableName(cubeDimTable.getName()); dimTab.setWeight(cubeDimTable.weight()); dimTab.setColumns(new XColumns()); dimTab.setProperties(new XProperties()); dimTab.setStorageTables(new XStorageTables()); for (FieldSchema column : cubeDimTable.getColumns()) { dimTab.getColumns().getColumn().add(columnFromFieldSchema(column)); } dimTab.getProperties().getProperty().addAll(xPropertiesFromMap(cubeDimTable.getProperties())); return dimTab; }