public static FunctionDesc newInstance(String expression, ParameterDesc param, String returnType) { FunctionDesc r = new FunctionDesc(); r.expression = (expression == null) ? null : expression.toUpperCase(Locale.ROOT); r.parameter = param; r.returnType = returnType; r.returnDataType = DataType.getType(returnType); return r; }
private FunctionDesc constructSumFunction(TblColRef column) { FunctionDesc function = new FunctionDesc(); function.setParameter(ParameterDesc.newInstance(column)); function.setExpression(FUNC_SUM); function.setReturnType("decimal"); return function; } }
@Before public void setUp() throws Exception { this.createTestMetadata(); cube = getTestKylinCubeWithSeller(); cubeDesc = cube.getDescriptor(); dimensions = Sets.newHashSet(); metrics = Lists.newArrayList(); for (MeasureDesc measureDesc : cubeDesc.getMeasures()) { Collections.addAll(metrics, measureDesc.getFunction()); } FunctionDesc mockUpFuncDesc = new FunctionDesc(); Field field = FunctionDesc.class.getDeclaredField("measureType"); field.setAccessible(true); field.set(mockUpFuncDesc, new MockUpMeasureType()); metrics.add(mockUpFuncDesc); }
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 MeasureDesc measure(String returnType) { MeasureDesc desc = new MeasureDesc(); FunctionDesc func = new FunctionDesc(); func.setReturnType(returnType); desc.setFunction(func); return desc; } }
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; }
public static FunctionDesc newInstance(String expression, ParameterDesc param, String returnType) { FunctionDesc r = new FunctionDesc(); r.expression = (expression == null) ? null : expression.toUpperCase(Locale.ROOT); r.parameter = param; r.returnType = returnType; r.returnDataType = DataType.getType(returnType); return r; }
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; } }
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 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; }