public TopNQuery withDimFilter(DimFilter dimFilter) { return new TopNQueryBuilder(this).filters(dimFilter).build(); }
@Deprecated public TopNQueryBuilder copy(TopNQueryBuilder builder) { return new TopNQueryBuilder() .dataSource(builder.dataSource) .virtualColumns(builder.virtualColumns) .dimension(builder.dimensionSpec) .metric(builder.topNMetricSpec) .threshold(builder.threshold) .intervals(builder.querySegmentSpec) .filters(builder.dimFilter) .granularity(builder.granularity) .aggregators(builder.aggregatorSpecs) .postAggregators(builder.postAggregatorSpecs) .context(builder.context); }
@Test public void testTopNOverPartialNullDimensionWithFilterOnNullValue() { TopNQuery query = new TopNQueryBuilder() .dataSource(QueryRunnerTestHelper.dataSource) .granularity(Granularities.ALL) .dimension("partial_null_column") .metric(QueryRunnerTestHelper.uniqueMetric) .filters(new SelectorDimFilter("partial_null_column", null, null)) .threshold(1000) .intervals(QueryRunnerTestHelper.firstToThird) .aggregators(commonAggregators) .build(); Map<String, Object> map = new HashMap<>(); map.put("partial_null_column", null); map.put("rows", 22L); map.put("index", 7583.691513061523D); map.put("uniques", QueryRunnerTestHelper.UNIQUES_9); List<Result<TopNResultValue>> expectedResults = Collections.singletonList( new Result<>( DateTimes.of("2011-04-01T00:00:00.000Z"), new TopNResultValue( Collections.singletonList( map ) ) ) ); assertExpectedResults(expectedResults, query); }
/** See {@link #runTests} */ @SuppressWarnings("unused") private void testFilteredTopN(QueryRunner runner, List<Result<TopNResultValue>> expectedResults, String failMsg) { TopNQuery query = new TopNQueryBuilder() .dataSource(dataSource) .granularity(allGran) .dimension(marketDimension) .filters(marketDimension, "spot") .metric(indexMetric) .threshold(3) .intervals(fullOnInterval) .aggregators( Lists.newArrayList( Iterables.concat( commonAggregators, Lists.newArrayList( new DoubleMaxAggregatorFactory("maxIndex", "index"), new DoubleMinAggregatorFactory("minIndex", "index") ) ) ) ) .postAggregators(Collections.singletonList(addRowsIndexConstant)) .build(); failMsg += " filtered topN "; HashMap<String, Object> context = new HashMap<>(); Iterable<Result<TopNResultValue>> actualResults = runner.run(QueryPlus.wrap(query), context).toList(); TestHelper.assertExpectedResults(expectedResults, actualResults, failMsg); }
.dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.allGran) .filters(QueryRunnerTestHelper.marketDimension, "total_market", "upfront") .dimension(QueryRunnerTestHelper.marketDimension) .metric(QueryRunnerTestHelper.indexMetric)
.dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.allGran) .filters(QueryRunnerTestHelper.marketDimension, "total_market", "upfront", "billyblank") .dimension(QueryRunnerTestHelper.marketDimension) .metric(QueryRunnerTestHelper.indexMetric)
.dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.allGran) .filters(QueryRunnerTestHelper.placementishDimension, "a") .dimension(QueryRunnerTestHelper.placementishDimension) .metric(QueryRunnerTestHelper.indexMetric)
@Test public void testTopNWithNonExistentFilter() { TopNQuery query = new TopNQueryBuilder() .dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.allGran) .filters(QueryRunnerTestHelper.marketDimension, "billyblank") .dimension(QueryRunnerTestHelper.marketDimension) .metric(QueryRunnerTestHelper.indexMetric) .threshold(4) .intervals(QueryRunnerTestHelper.firstToThird) .aggregators(commonAggregators) .postAggregators(Collections.singletonList(QueryRunnerTestHelper.addRowsIndexConstant)) .build(); assertExpectedResults( Collections.singletonList( new Result<>(DateTimes.of("2011-04-01T00:00:00.000Z"), new TopNResultValue(Collections.emptyList())) ), query ); }
.dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.allGran) .filters(QueryRunnerTestHelper.marketDimension, "upfront") .dimension(QueryRunnerTestHelper.marketDimension) .metric(QueryRunnerTestHelper.indexMetric)
private TopNQuery makeFilteredTopNQuery() { return new TopNQueryBuilder() .dataSource(dataSource) .granularity(allGran) .dimension(marketDimension) .metric(indexMetric) .threshold(3) .filters( new AndDimFilter( new SelectorDimFilter(marketDimension, "spot", null), new SelectorDimFilter(placementDimension, "preferred", null) ) ) .intervals(fullOnInterval) .aggregators( Lists.newArrayList( Iterables.concat( commonAggregators, Lists.newArrayList( new DoubleMaxAggregatorFactory("maxIndex", "index"), new DoubleMinAggregatorFactory("minIndex", "index") ) ) ) ) .postAggregators(Collections.singletonList(addRowsIndexConstant)) .build(); }
.postAggregators(Collections.singletonList( QueryRunnerTestHelper.addRowsIndexConstant)) .filters( new ExtractionDimFilter( QueryRunnerTestHelper.marketDimension,
@Test public void testTopNOverPartialNullDimensionWithFilterOnNOTNullValue() { TopNQuery query = new TopNQueryBuilder() .dataSource(QueryRunnerTestHelper.dataSource) .granularity(Granularities.ALL) .dimension("partial_null_column") .metric(QueryRunnerTestHelper.uniqueMetric) .filters(new SelectorDimFilter("partial_null_column", "value", null)) .threshold(1000) .intervals(QueryRunnerTestHelper.firstToThird) .aggregators(commonAggregators) .build(); List<Result<TopNResultValue>> expectedResults = Collections.singletonList( new Result<>( DateTimes.of("2011-04-01T00:00:00.000Z"), new TopNResultValue( Collections.singletonList( ImmutableMap.<String, Object>of( "partial_null_column", "value", "rows", 4L, "index", 4875.669692D, "uniques", QueryRunnerTestHelper.UNIQUES_2 ) ) ) ) ); assertExpectedResults(expectedResults, query); }
.dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.allGran) .filters("doesn't exist", null) .dimension("doesn't exist") .metric(QueryRunnerTestHelper.indexMetric)
.dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.allGran) .filters(QueryRunnerTestHelper.marketDimension, "upfront") .dimension("doesn't exist") .metric(QueryRunnerTestHelper.indexMetric)
.granularity(QueryRunnerTestHelper.allGran) .dimension(QueryRunnerTestHelper.marketDimension, "Market") .filters(new BoundDimFilter( QueryRunnerTestHelper.indexMetric, "0",
.dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.allGran) .filters(QueryRunnerTestHelper.placementishDimension, "m") .dimension(QueryRunnerTestHelper.marketDimension) .metric(QueryRunnerTestHelper.indexMetric) .dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.allGran) .filters(QueryRunnerTestHelper.qualityDimension, "mezzanine") .dimension(QueryRunnerTestHelper.marketDimension) .metric(QueryRunnerTestHelper.indexMetric)
.dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.allGran) .filters(new BoundDimFilter( ColumnHolder.TIME_COLUMN_NAME, "0",
@Test public void testTopNWithNonExistentFilterMultiDim() { AndDimFilter andDimFilter = new AndDimFilter( new SelectorDimFilter(QueryRunnerTestHelper.marketDimension, "billyblank", null), new SelectorDimFilter(QueryRunnerTestHelper.qualityDimension, "mezzanine", null) ); TopNQuery query = new TopNQueryBuilder() .dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.allGran) .filters(andDimFilter) .dimension(QueryRunnerTestHelper.marketDimension) .metric(QueryRunnerTestHelper.indexMetric) .threshold(4) .intervals(QueryRunnerTestHelper.firstToThird) .aggregators(commonAggregators) .postAggregators(Collections.singletonList(QueryRunnerTestHelper.addRowsIndexConstant)) .build(); assertExpectedResults( Collections.singletonList( new Result<>(DateTimes.of("2011-04-01T00:00:00.000Z"), new TopNResultValue(Collections.emptyList())) ), query ); }
.dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.allGran) .filters(QueryRunnerTestHelper.placementishDimension, "m", "a", "b") .dimension(QueryRunnerTestHelper.qualityDimension) .metric(QueryRunnerTestHelper.indexMetric) .dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.allGran) .filters( QueryRunnerTestHelper.qualityDimension, "mezzanine",
.granularity(Granularities.ALL) .dimension(new DefaultDimensionSpec("m1", "d0", ValueType.FLOAT)) .filters("dim2", "a") .aggregators(AGGS( new DoubleSumAggregatorFactory("a0:sum", "m2"),