public void testSimpleMetricQueryBuilder() throws QueryCompileException { RawQuery rawQuery = new RawQuery(); rawQuery.setQuery("GenericMetricService[@cluster=\"thecluster\"]{@field1,@field2, EXP{@field3/2}}"); rawQuery.setStartTime("2015-01-06 01:40:02"); rawQuery.setEndTime("2015-01-06 01:40:02"); rawQuery.setMetricName("metric.name.value"); rawQuery.setPageSize(1000); CompiledQuery query = new CompiledQuery(rawQuery); QueryCriteriaBuilder criteriaBuilder = new QueryCriteriaBuilder(query,jdbcEntityDefinition); Criteria criteria = criteriaBuilder.build(); LOG.info(criteria.toString()); }
public long getIntervalMin() { return this.getRawQuery().getIntervalmin(); } }
@Test public void testCreatedCompiledQuery() throws QueryCompileException, IOException { RawQuery rawQuery = new RawQuery(); rawQuery.setQuery(queryStr); rawQuery.setStartTime(startTime); rawQuery.setEndTime(endTime); rawQuery.setPageSize(pageSize); CompiledQuery query = new CompiledQuery(rawQuery); Assert.assertEquals(baseTimestamp, query.getStartTime()); Assert.assertEquals(baseTimestamp + 2000, query.getEndTime()); Assert.assertEquals(rawQuery.isTreeAgg(), query.isHasAgg()); Assert.assertEquals(rawQuery.isTimeSeries(), query.isTimeSeries()); RawQuery raw2 = RawQuery.build().query(queryStr).startTime(startTime) .endTime(endTime).pageSize(pageSize).done(); Assert.assertEquals(rawQuery.toString(), raw2.toString()); } }
@Test public void testTimeSeriesGroupAggregateRead() throws IOException, InterruptedException, QueryCompileException { long startTime = System.currentTimeMillis(); testWrite1000Metrics(); long endTime = System.currentTimeMillis(); RawQuery rawQuery = new RawQuery(); rawQuery.setQuery(GenericMetricEntity.GENERIC_METRIC_SERVICE+"[@site=\"unittest_site\" AND @application=\"unittest_application\"]<@site>{sum(value)}"); rawQuery.setMetricName(metricName); rawQuery.setTimeSeries(true); rawQuery.setIntervalmin(10); rawQuery.setStartTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(startTime)); rawQuery.setEndTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(endTime + 10*60*1000)); rawQuery.setPageSize(10000); CompiledQuery query = new CompiledQuery(rawQuery); QueryResult queryResult = storage.query(query, entityDefinition); Assert.assertTrue(queryResult.getSize() >= 1); } }
GenericQuery reader = GenericQueryBuilder .select(query.getSearchCondition().getOutputFields()) .from(query.getServiceName(), query.getRawQuery().getMetricName()).where(query.getSearchCondition()) .groupBy(query.isHasAgg(), query.getGroupByFields(), query.getAggregateFunctionTypes(), query.getAggregateFields()) .timeSeries(query.getRawQuery().isTimeSeries(), query.getRawQuery().getIntervalmin()) .treeAgg(query.getRawQuery().isTreeAgg()) .orderBy(query.getSortOptions(), query.getSortFunctions(), query.getSortFields()) .top(query.getRawQuery().getTop()) .parallel(query.getRawQuery().getParallel()) .build(); List<? extends TaggedLogAPIEntity> entities = reader.result();
protected void compile() throws Exception { validateQueryParameters(this.getRawQuery().getStartRowkey(),this.getRawQuery().getPageSize()); checkNotNull(this.rawQuery,"rawQuery instance"); checkNotNull(this.rawQuery.getQuery(),"query"); ListQueryCompiler compiler = new ListQueryCompiler(this.rawQuery.getQuery(),this.rawQuery.isFilterIfMissing()); this.serviceName = compiler.serviceName(); this.searchCondition = new SearchCondition(); this.searchCondition.setOutputVerbose(this.rawQuery.isVerbose() ); this.searchCondition.setOutputAlias(compiler.getOutputAlias()); this.searchCondition.setFilter(compiler.filter()); this.searchCondition.setQueryExpression(compiler.getQueryExpression()); if (compiler.sortOptions() == null && this.rawQuery.getTop() > 0) { LOG.warn("Parameter \"top\" is only used for sort query! Ignore top parameter this time since it's not a sort query"); this.groupByFields = compiler.groupbyFields(); this.aggregateFields = compiler.aggregateFields(); this.timeSeries = this.getRawQuery().isTimeSeries(); if (this.rawQuery.getStartTime() != null && this.rawQuery.getEndTime() != null) { endTimeMillis = DateTimeUtil.parseTimeStrToMilliseconds(rawQuery.getEndTime()); startTimeMills = DateTimeUtil.parseTimeStrToMilliseconds(rawQuery.getStartTime()); } else { LOG.warn("startTime or endTime is not given, use [currentSystemTime - 30 days, currentSystemTime]"); searchCondition.setStartRowkey(this.rawQuery.getStartRowkey()); searchCondition.setPageSize(this.rawQuery.getPageSize());
public Builder endTime(String endTime) { this.rawQuery.setEndTime(endTime); return this; }
public Builder query(String query) { this.rawQuery.setQuery(query); return this; }
public Builder pageSize(int pageSize) { this.rawQuery.setPageSize(pageSize); return this; }
public Builder startTime(String startTime) { this.rawQuery.setStartTime(startTime); return this; }
public Builder() { this.rawQuery = new RawQuery(); }
@QueryParam("metricName") String metricName, @QueryParam("verbose") Boolean verbose){ RawQuery rawQuery = RawQuery.build() .query(query) .startTime(startTime)
where = where.and(new Criterion(new ColumnImpl(this.tableName, JdbcConstants.METRIC_NAME_COLUMN_NAME),this.query.getRawQuery().getMetricName(),SqlEnum.EQUAL));
GenericQuery reader = GenericQueryBuilder .select(query.getSearchCondition().getOutputFields()) .from(query.getServiceName(),query.getRawQuery().getMetricName()).where(query.getSearchCondition()) .groupBy(query.isHasAgg(), query.getGroupByFields(), query.getAggregateFunctionTypes(), query.getAggregateFields()) .timeSeries(query.getRawQuery().isTimeSeries(),query.getRawQuery().getIntervalmin()) .treeAgg(query.getRawQuery().isTreeAgg()) .orderBy(query.getSortOptions(),query.getSortFunctions(),query.getSortFields()) .top(query.getRawQuery().getTop()) .parallel(query.getRawQuery().getParallel()) .build(); List<? extends TaggedLogAPIEntity> entities = reader.result();
@QueryParam("metricName") String metricName, @QueryParam("verbose") Boolean verbose){ RawQuery rawQuery = RawQuery.build() .query(query) .startTime(startTime)
where = where.and(new Criterion(new ColumnImpl(this.tableName, JdbcConstants.METRIC_NAME_COLUMN_NAME),this.query.getRawQuery().getMetricName(),SqlEnum.EQUAL));
public void testSimpleQueryBuilder2() throws QueryCompileException { RawQuery rawQuery = new RawQuery(); rawQuery.setQuery("TestTimeSeriesAPIEntity[@cluster=\"thecluster\" AND @field4 > 1000 OR @field5 < 10000 ]{@field1,@field2, EXP{@field3/2}}"); rawQuery.setStartTime("2015-01-06 01:40:02"); rawQuery.setEndTime("2015-01-06 01:40:02"); rawQuery.setPageSize(1000); CompiledQuery query = new CompiledQuery(rawQuery); QueryCriteriaBuilder criteriaBuilder = new QueryCriteriaBuilder(query,jdbcEntityDefinition); Criteria criteria = criteriaBuilder.build(); LOG.info(criteria.toString()); }
GenericQuery reader = GenericQueryBuilder .select(query.getSearchCondition().getOutputFields()) .from(query.getServiceName(), query.getRawQuery().getMetricName()).where(query.getSearchCondition()) .groupBy(query.isHasAgg(), query.getGroupByFields(), query.getAggregateFunctionTypes(), query.getAggregateFields()) .timeSeries(query.getRawQuery().isTimeSeries(), query.getRawQuery().getIntervalmin()) .treeAgg(query.getRawQuery().isTreeAgg()) .orderBy(query.getSortOptions(), query.getSortFunctions(), query.getSortFields()) .top(query.getRawQuery().getTop()) .parallel(query.getRawQuery().getParallel()) .build(); List<E> entities = reader.result();
@QueryParam("metricName") String metricName, @QueryParam("verbose") Boolean verbose){ RawQuery rawQuery = RawQuery.build() .query(query) .startTime(startTime)
@Test public void testSimpleQueryBuilder() throws QueryCompileException { RawQuery rawQuery = new RawQuery(); rawQuery.setQuery("TestTimeSeriesAPIEntity[@cluster=\"thecluster\" AND @field4 > 1000 ]{@field1,@field2, EXP{@field3/2}}"); rawQuery.setStartTime("2015-01-06 01:40:02"); rawQuery.setEndTime("2015-01-06 01:40:02"); rawQuery.setPageSize(1000); CompiledQuery query = new CompiledQuery(rawQuery); QueryCriteriaBuilder criteriaBuilder = new QueryCriteriaBuilder(query,jdbcEntityDefinition); Criteria criteria = criteriaBuilder.build(); LOG.info(criteria.toString()); }