private FunctionDesc constructSumFunction(TblColRef column) { FunctionDesc function = new FunctionDesc(); function.setParameter(ParameterDesc.newInstance(column)); function.setExpression(FUNC_SUM); function.setReturnType("decimal"); return function; } }
FunctionDesc f = m.getFunction(); if (f.getExpression().equals(PercentileMeasureType.FUNC_PERCENTILE)) { f.setExpression(PercentileMeasureType.FUNC_PERCENTILE_APPROX);
public static MeasureDesc getMeasureSum(String column, String dataType) { ParameterDesc parameterDesc = new ParameterDesc(); parameterDesc.setValue(column); parameterDesc.setType(FunctionDesc.PARAMETER_TYPE_COLUMN); FunctionDesc function = new FunctionDesc(); function.setExpression(FunctionDesc.FUNC_SUM); function.setParameter(parameterDesc); function.setReturnType(dataType.equals(HiveTableCreator.HiveTypeEnum.HDOUBLE.toString()) ? HiveTableCreator.HiveTypeEnum.HDECIMAL.toString() : dataType); MeasureDesc result = new MeasureDesc(); result.setName(column + "_SUM"); result.setFunction(function); return result; }
public static MeasureDesc getMeasureMax(String column, String dataType) { ParameterDesc parameterDesc = new ParameterDesc(); parameterDesc.setValue(column); parameterDesc.setType(FunctionDesc.PARAMETER_TYPE_COLUMN); FunctionDesc function = new FunctionDesc(); function.setExpression(FunctionDesc.FUNC_MAX); function.setParameter(parameterDesc); function.setReturnType(dataType); MeasureDesc result = new MeasureDesc(); result.setName(column + "_MAX"); result.setFunction(function); return result; }
public static MeasureDesc getMeasureMin(String column, String dataType) { ParameterDesc parameterDesc = new ParameterDesc(); parameterDesc.setValue(column); parameterDesc.setType(FunctionDesc.PARAMETER_TYPE_COLUMN); FunctionDesc function = new FunctionDesc(); function.setExpression(FunctionDesc.FUNC_MIN); function.setParameter(parameterDesc); function.setReturnType(dataType); MeasureDesc result = new MeasureDesc(); result.setName(column + "_MIN"); result.setFunction(function); return result; }
public static MeasureDesc getMeasureHLL(String column) { ParameterDesc parameterDesc = new ParameterDesc(); parameterDesc.setValue(column); parameterDesc.setType(FunctionDesc.PARAMETER_TYPE_COLUMN); FunctionDesc function = new FunctionDesc(); function.setExpression(FunctionDesc.FUNC_COUNT_DISTINCT); function.setParameter(parameterDesc); function.setReturnType("hllc12"); MeasureDesc result = new MeasureDesc(); result.setName(column + "_HLL"); result.setFunction(function); return result; }
public static MeasureDesc getMeasurePercentile(String column) { ParameterDesc parameterDesc = new ParameterDesc(); parameterDesc.setValue(column); parameterDesc.setType(FunctionDesc.PARAMETER_TYPE_COLUMN); FunctionDesc function = new FunctionDesc(); function.setExpression(PercentileMeasureType.FUNC_PERCENTILE); function.setParameter(parameterDesc); function.setReturnType("percentile(100)"); MeasureDesc result = new MeasureDesc(); result.setName(column + "_PERCENTILE"); result.setFunction(function); return result; } }
public static MeasureDesc getMeasureCount() { ParameterDesc parameterDesc = new ParameterDesc(); parameterDesc.setValue("1"); parameterDesc.setType(FunctionDesc.PARAMETER_TYPE_CONSTANT); FunctionDesc function = new FunctionDesc(); function.setExpression(FunctionDesc.FUNC_COUNT); function.setParameter(parameterDesc); function.setReturnType(HiveTableCreator.HiveTypeEnum.HBIGINT.toString()); MeasureDesc result = new MeasureDesc(); result.setName("_COUNT_"); result.setFunction(function); return result; }
private void initMeasureColumns(Map<String, TableDesc> tables) { if (measures == null || measures.isEmpty()) { return; } TableDesc factTable = tables.get(getFactTable()); for (MeasureDesc m : measures) { m.setName(m.getName().toUpperCase()); if (m.getDependentMeasureRef() != null) { m.setDependentMeasureRef(m.getDependentMeasureRef().toUpperCase()); } FunctionDesc f = m.getFunction(); f.setExpression(f.getExpression().toUpperCase()); f.setReturnDataType(DataType.getInstance(f.getReturnType())); ParameterDesc p = f.getParameter(); p.normalizeColumnValue(); if (p.isColumnType()) { ArrayList<TblColRef> colRefs = Lists.newArrayList(); for (String cName : p.getValue().split("\\s*,\\s*")) { ColumnDesc sourceColumn = factTable.findColumnByName(cName); TblColRef colRef = new TblColRef(sourceColumn); colRefs.add(colRef); allColumns.add(colRef); } if (colRefs.isEmpty() == false) p.setColRefs(colRefs); } } }
f.setExpression(f.getExpression().toUpperCase()); f.setReturnDataType(DataType.getInstance(f.getReturnType()));
private MeasureDesc makeCountMeasure() { MeasureDesc measureDesc = new MeasureDesc(); FunctionDesc f1 = new FunctionDesc(); f1.setExpression("COUNT"); ParameterDesc p1 = new ParameterDesc(); p1.setType("constant"); p1.setValue("1"); f1.setParameter(p1); f1.setReturnType("bigint"); measureDesc.setFunction(f1); return measureDesc; }
private MeasureDesc makeNormalMeasure(String func, ColumnDesc columnDesc) { String columnName = columnDesc.getName(); String returnType = columnDesc.getTypeName(); MeasureDesc measureDesc = new MeasureDesc(); FunctionDesc f1 = new FunctionDesc(); f1.setExpression(func); ParameterDesc p1 = new ParameterDesc(); p1.setType("column"); p1.setValue(columnName); p1.setColRefs(ImmutableList.of(new TblColRef(columnDesc))); f1.setParameter(p1); f1.setReturnType(returnType); measureDesc.setFunction(f1); return measureDesc; }
private List<FunctionDesc> buildAggregations() { List<FunctionDesc> functions = new ArrayList<FunctionDesc>(); FunctionDesc f1 = new FunctionDesc(); f1.setExpression("SUM"); ParameterDesc p1 = new ParameterDesc(); p1.setType("column"); p1.setValue("PRICE"); f1.setParameter(p1); functions.add(f1); FunctionDesc f2 = new FunctionDesc(); f2.setExpression("COUNT_DISTINCT"); ParameterDesc p2 = new ParameterDesc(); p2.setType("column"); p2.setValue("SELLER_ID"); f2.setParameter(p2); functions.add(f2); return functions; }
/** * * @param hllType represents the presision */ private MeasureDesc makeHLLMeasure(ColumnDesc columnDesc, String hllType) { String columnName = columnDesc.getName(); MeasureDesc measureDesc = new MeasureDesc(); FunctionDesc f1 = new FunctionDesc(); f1.setExpression("COUNT_DISTINCT"); ParameterDesc p1 = new ParameterDesc(); p1.setType("column"); p1.setValue(columnName); p1.setColRefs(ImmutableList.of(new TblColRef(columnDesc))); f1.setParameter(p1); f1.setReturnType(hllType); measureDesc.setFunction(f1); return measureDesc; }
private List<FunctionDesc> buildAggregations() { List<FunctionDesc> functions = new ArrayList<FunctionDesc>(); FunctionDesc f1 = new FunctionDesc(); f1.setExpression("SUM"); ParameterDesc p1 = new ParameterDesc(); p1.setType("column"); p1.setValue("PRICE"); f1.setParameter(p1); f1.setReturnType("decimal"); functions.add(f1); FunctionDesc f2 = new FunctionDesc(); f2.setExpression("MIN"); ParameterDesc p2 = new ParameterDesc(); p2.setType("column"); p2.setValue("PRICE"); f2.setParameter(p2); f2.setReturnType("decimal"); functions.add(f2); return functions; }
private FunctionDesc constructSumFunction(TblColRef column) { FunctionDesc function = new FunctionDesc(); function.setParameter(ParameterDesc.newInstance(column)); function.setExpression(FUNC_SUM); function.setReturnType("decimal"); return function; } }
public static MeasureDesc getMeasurePercentile(String column) { ParameterDesc parameterDesc = new ParameterDesc(); parameterDesc.setValue(column); parameterDesc.setType(FunctionDesc.PARAMETER_TYPE_COLUMN); FunctionDesc function = new FunctionDesc(); function.setExpression(PercentileMeasureType.FUNC_PERCENTILE); function.setParameter(parameterDesc); function.setReturnType("percentile(100)"); MeasureDesc result = new MeasureDesc(); result.setName(column + "_PERCENTILE"); result.setFunction(function); return result; } }
public static MeasureDesc getMeasureMax(String column, String dataType) { ParameterDesc parameterDesc = new ParameterDesc(); parameterDesc.setValue(column); parameterDesc.setType(FunctionDesc.PARAMETER_TYPE_COLUMN); FunctionDesc function = new FunctionDesc(); function.setExpression(FunctionDesc.FUNC_MAX); function.setParameter(parameterDesc); function.setReturnType(dataType); MeasureDesc result = new MeasureDesc(); result.setName(column + "_MAX"); result.setFunction(function); return result; }
private MeasureDesc makeCountMeasure() { MeasureDesc measureDesc = new MeasureDesc(); FunctionDesc f1 = new FunctionDesc(); f1.setExpression("COUNT"); ParameterDesc p1 = new ParameterDesc(); p1.setType("constant"); p1.setValue("1"); f1.setParameter(p1); f1.setReturnType("bigint"); measureDesc.setFunction(f1); measureDesc.setName("COUNT_1"); return measureDesc; }
public static MeasureDesc getMeasureCount() { ParameterDesc parameterDesc = new ParameterDesc(); parameterDesc.setValue("1"); parameterDesc.setType(FunctionDesc.PARAMETER_TYPE_CONSTANT); FunctionDesc function = new FunctionDesc(); function.setExpression(FunctionDesc.FUNC_COUNT); function.setParameter(parameterDesc); function.setReturnType(HiveTableCreator.HiveTypeEnum.HBIGINT.toString()); MeasureDesc result = new MeasureDesc(); result.setName("_COUNT_"); result.setFunction(function); return result; }