@Benchmark @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.MICROSECONDS) public void queryIncrementalIndex(Blackhole blackhole) { SelectQuery queryCopy = query.withPagingSpec(PagingSpec.newSpec(pagingThreshold)); SegmentId segmentId = SegmentId.dummy("incIndex"); QueryRunner<Row> runner = QueryBenchmarkUtil.makeQueryRunner( factory, segmentId, new IncrementalIndexSegment(incIndexes.get(0), segmentId) ); boolean done = false; while (!done) { List<Result<SelectResultValue>> results = SelectBenchmark.runQuery(factory, runner, queryCopy); SelectResultValue result = results.get(0).getValue(); if (result.getEvents().size() == 0) { done = true; } else { for (EventHolder eh : result.getEvents()) { blackhole.consume(eh); } queryCopy = incrementQueryPagination(queryCopy, result); } } }
@Benchmark @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.MICROSECONDS) public void queryQueryableIndex(Blackhole blackhole) { SelectQuery queryCopy = query.withPagingSpec(PagingSpec.newSpec(pagingThreshold)); SegmentId segmentId = SegmentId.dummy("qIndex"); QueryRunner<Result<SelectResultValue>> runner = QueryBenchmarkUtil.makeQueryRunner( factory, segmentId, new QueryableIndexSegment(qIndexes.get(0), segmentId) ); boolean done = false; while (!done) { List<Result<SelectResultValue>> results = SelectBenchmark.runQuery(factory, runner, queryCopy); SelectResultValue result = results.get(0).getValue(); if (result.getEvents().size() == 0) { done = true; } else { for (EventHolder eh : result.getEvents()) { blackhole.consume(eh); } queryCopy = incrementQueryPagination(queryCopy, result); } } }
queryBuilder.pagingSpec(PagingSpec.newSpec(pagingThreshold)); query = queryBuilder.build();
public void queryMultiQueryableIndex(Blackhole blackhole) SelectQuery queryCopy = query.withPagingSpec(PagingSpec.newSpec(pagingThreshold));
private Druids.SelectQueryBuilder newTestQuery() { return Druids.newSelectQueryBuilder() .dataSource(new TableDataSource(QueryRunnerTestHelper.dataSource)) .dimensionSpecs(DefaultDimensionSpec.toSpec(Collections.emptyList())) .metrics(Collections.emptyList()) .intervals(QueryRunnerTestHelper.fullOnIntervalSpec) .granularity(QueryRunnerTestHelper.allGran) .pagingSpec(PagingSpec.newSpec(3)) .descending(descending); }
.intervals(QueryRunnerTestHelper.fullOnIntervalSpec) .descending(true) .pagingSpec(PagingSpec.newSpec(1)) .build();
private Druids.SelectQueryBuilder newBuilder() { return Druids.newSelectQueryBuilder() .dataSource(new TableDataSource(QueryRunnerTestHelper.dataSource)) .intervals(SelectQueryRunnerTest.I_0112_0114_SPEC) .granularity(QueryRunnerTestHelper.allGran) .dimensionSpecs(DefaultDimensionSpec.toSpec(QueryRunnerTestHelper.dimensions)) .pagingSpec(PagingSpec.newSpec(3)); }
@Test public void testComputeCacheKeyWithDifferentSortOrer() { final SelectQuery query1 = Druids.newSelectQueryBuilder() .dataSource("dummy") .dimensions(Collections.singletonList("testDim")) .intervals(SelectQueryRunnerTest.I_0112_0114_SPEC) .granularity(QueryRunnerTestHelper.allGran) .pagingSpec(PagingSpec.newSpec(3)) .descending(false) .build(); final SelectQuery query2 = Druids.newSelectQueryBuilder() .dataSource("dummy") .dimensions(Collections.singletonList("testDim")) .intervals(SelectQueryRunnerTest.I_0112_0114_SPEC) .granularity(QueryRunnerTestHelper.allGran) .pagingSpec(PagingSpec.newSpec(3)) .descending(true) .build(); final CacheStrategy<Result<SelectResultValue>, Object, SelectQuery> strategy1 = toolChest.getCacheStrategy(query1); Assert.assertNotNull(strategy1); final CacheStrategy<Result<SelectResultValue>, Object, SelectQuery> strategy2 = toolChest.getCacheStrategy(query2); Assert.assertNotNull(strategy2); Assert.assertFalse(Arrays.equals(strategy1.computeCacheKey(query1), strategy2.computeCacheKey(query2))); } }
@Test public void testPagingIdentifiersForUnionDatasource() { Druids.SelectQueryBuilder selectQueryBuilder = Druids .newSelectQueryBuilder() .dataSource( new UnionDataSource( ImmutableList.of( new TableDataSource(QueryRunnerTestHelper.dataSource), new TableDataSource("testing-2") ) ) ) .intervals(SelectQueryRunnerTest.I_0112_0114_SPEC) .granularity(QueryRunnerTestHelper.allGran) .dimensionSpecs(DefaultDimensionSpec.toSpec(QueryRunnerTestHelper.dimensions)) .pagingSpec(PagingSpec.newSpec(3)); SelectQuery query = selectQueryBuilder.build(); QueryRunner unionQueryRunner = new UnionQueryRunner(runner); List<Result<SelectResultValue>> results = unionQueryRunner.run(QueryPlus.wrap(query), ImmutableMap.of()).toList(); Map<String, Integer> pagingIdentifiers = results.get(0).getValue().getPagingIdentifiers(); query = query.withPagingSpec(toNextCursor(PagingSpec.merge(Collections.singletonList(pagingIdentifiers)), query, 3)); unionQueryRunner.run(QueryPlus.wrap(query), ImmutableMap.of()).toList(); }
@Test public void testDefaultSelectQueryMetricsMetricNamesAndUnits() { CachingEmitter cachingEmitter = new CachingEmitter(); ServiceEmitter serviceEmitter = new ServiceEmitter("", "", cachingEmitter); SelectQuery query = Druids .newSelectQueryBuilder() .dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.dayGran) .intervals(QueryRunnerTestHelper.fullOnIntervalSpec) .descending(true) .pagingSpec(PagingSpec.newSpec(1)) .build(); SelectQueryMetrics queryMetrics = DefaultSelectQueryMetricsFactory.instance().makeMetrics(query); DefaultQueryMetricsTest.testQueryMetricsDefaultMetricNamesAndUnits(cachingEmitter, serviceEmitter, queryMetrics); } }