Date end = null; if (condition.getPageSize() <= 0) { return; // return nothing start = new Date(condition.getStartTime()); end = new Date(condition.getEndTime()); } else { if (!condition.isOutputAll()) { condition.getOutputFields()); HBaseLogReader2 reader = new HBaseLogReader2(entityDef, condition.getPartitionValues(), start, end, condition.getFilter(), condition.getStartRowkey(), outputQualifiers, this.prefix); try { entity.setSerializeVerbose(condition.isOutputVerbose()); entity.setSerializeAlias(condition.getOutputAlias()); if (++count == condition.getPageSize()) { break;
final SearchCondition condition = new SearchCondition(); final String slotStartTimeString = DateTimeUtil.secondsToHumanDate(slotStartTime / 1000); final String slotEndTimeString = DateTimeUtil.secondsToHumanDate(slotEndTime / 1000); condition.setStartTime(slotStartTime); condition.setEndTime(slotEndTime); condition.setFilter(comp.filter()); condition.setQueryExpression(comp.getQueryExpression()); if (partitionValues != null) { condition.setPartitionValues(Arrays.asList(partitionValues.get(0))); condition.setStartRowkey(startRowkey); condition.setPageSize(pageSize); condition.setOutputFields(outputFields); } else { condition.setOutputFields(comp.outputFields());
@Override protected LogReader createIndexReader() { final EntityDefinition entityDef = indexDef.getEntityDefinition(); byte[][] outputQualifiers = null; if (!condition.isOutputAll()) { outputQualifiers = HBaseInternalLogHelper.getOutputQualifiers(entityDef, condition.getOutputFields()); } return new NonClusteredIndexLogReader(indexDef, indexRowkeys, outputQualifiers, condition.getFilter()); } }
public GenericEntityStreamReaderMT(String serviceName, SearchCondition condition, int numThreads) throws Exception { checkIsTimeSeries(serviceName); checkNumThreads(numThreads); long queryStartTime = condition.getStartTime(); long queryEndTime = condition.getEndTime(); long subStartTime = queryStartTime; long subEndTime = 0; long interval = (queryEndTime - queryStartTime) / numThreads; for (int i = 0; i < numThreads; i++) { // split search condition by time range subStartTime = queryStartTime + i * interval; if (i == numThreads - 1) { subEndTime = queryEndTime; } else { subEndTime = subStartTime + interval; } // String strStartTime = DateTimeUtil.millisecondsToHumanDateWithSeconds(subStartTime); // String strEndTime = DateTimeUtil.millisecondsToHumanDateWithSeconds(subEndTime); SearchCondition sc = new SearchCondition(condition); sc.setStartTime(subStartTime); sc.setEndTime(subEndTime); GenericEntityStreamReader reader = new GenericEntityStreamReader(serviceName, sc); readers.add(reader); } }
public TimeSeriesGroupAggregateQueryReader(GenericAggregateReader reader, GenericCoprocessorAggregateQuery query) throws IOException { super(reader, query); try { if (entityDef.isTimeSeries()) { this.start = new Date(searchCondition.getStartTime()); this.end = new Date(searchCondition.getEndTime()); } else { //start = DateTimeUtil.humanDateToDate(EntityConstants.FIXED_READ_START_HUMANTIME); //end = DateTimeUtil.humanDateToDate(EntityConstants.FIXED_READ_END_HUMANTIME); start = new Date(EntityConstants.FIXED_READ_START_TIMESTAMP); end = new Date(EntityConstants.FIXED_READ_END_TIMESTAMP); } this.pointsNum = (int) ((end.getTime() - 1 - start.getTime()) / this.query.aggregateCondition.getIntervalMS() + 1); this.aggFuncNum = this.query.aggFuncNum; this.sortOptions = this.query.sortOptions; this.sortFuncs = this.query.sortFuncs; this.sortAggFuncNum = this.query.sortAggFuncNum; } catch (Exception e) { throw new IOException(e); } }
SearchCondition condition = new SearchCondition(); condition.setFilter(comp.filter()); condition.setQueryExpression(comp.getQueryExpression()); if(comp.sortOptions() == null && top > 0) { LOG.warn("Parameter \"top\" is only used for sort query! Ignore top parameter this time since it's not a sort query"); condition.setPartitionValues(Arrays.asList(partitionValues.get(0))); condition.setStartTime(DateTimeUtil.parseTimeStrToMilliseconds(startTime)); condition.setEndTime(DateTimeUtil.parseTimeStrToMilliseconds(endTime)); condition.setOutputVerbose(verbose==null || verbose ); condition.setOutputAlias(comp.getOutputAlias()); condition.setOutputAll(comp.isOutputAll()); condition.setStartRowkey(startRowkey); condition.setPageSize(pageSize); condition.setOutputFields(outputFields); if(condition.isOutputAll()){ LOG.info("Output: ALL"); }else{ LOG.info("Output: " + StringUtils.join(condition.getOutputFields(), ", ")); condition.setOutputFields(outputFields); if(condition.isOutputAll()){ LOG.info("Output: ALL"); }else{ LOG.info("Output: " + StringUtils.join(condition.getOutputFields(), ", "));
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.searchCondition.setPartitionValues(Arrays.asList(partitionValues.get(0))); this.searchCondition.setStartTime(startTimeMills); this.searchCondition.setEndTime(endTimeMillis); this.setStartTime(startTimeMills); this.setEndTime(endTimeMillis); } else { this.searchCondition.setStartTime(0); this.searchCondition.setEndTime(1); this.setStartTime(0); this.setEndTime(1); searchCondition.setStartRowkey(this.rawQuery.getStartRowkey()); searchCondition.setPageSize(this.rawQuery.getPageSize()); searchCondition.setOutputAll(compiler.isOutputAll()); if (outputFields == null) { outputFields = new ArrayList<String>(); searchCondition.setOutputFields(outputFields);
Date end = null; if (searchCondition.getPageSize() <= 0) { return null; start = new Date(searchCondition.getStartTime()); end = new Date(searchCondition.getEndTime()); } else { final byte[][] outputQualifiers = HBaseInternalLogHelper.getOutputQualifiers(entityDef, searchCondition.getOutputFields()); GenericAggregateReader reader = new GenericAggregateReader(entityDef, searchCondition.getPartitionValues(), start, end, searchCondition.getFilter(), searchCondition.getStartRowkey(), outputQualifiers, this.prefix, this.aggregateCondition); try { if (LOG.isDebugEnabled()) {
final List<String> filterFields = searchCondition.getOutputFields(); final List<String> outputFields = new ArrayList<>(); if (groupbyFields != null) { searchCondition.setOutputFields(outputFields); if (searchCondition.isOutputAll()) { LOG.info("Output: ALL"); } else { LOG.info("Output: " + StringUtils.join(searchCondition.getOutputFields(), ", ")); aggregateCondition.getAggregateFunctionTypes(), aggregateFields, searchCondition.getStartTime(), searchCondition.getEndTime(), aggregateCondition.getIntervalMS()); reader.register(tsAgg);
SearchCondition condition = new SearchCondition(); condition.setOutputFields(new ArrayList<String>()); condition.getOutputFields().add("field1"); condition.getOutputFields().add("field2"); condition.getOutputFields().add("field3"); condition.getOutputFields().add("field4"); condition.getOutputFields().add("field5"); condition.getOutputFields().add("field6"); condition.getOutputFields().add("field7"); condition.setQueryExpression(parser.parse());
} else if(searchCondition.isOutputAll()){ List<String> outputFields = searchCondition.getOutputFields(); for(String field:outputFields) { root.addSelectColumn(new ColumnImpl(this.tableName, field)); ORExpression expression = searchCondition.getQueryExpression(); if(expression!=null){ CriterionBuilder criterionBuilder = new ExpressionCriterionBuilder(expression,this.jdbcEntityDefinition); root.setLimit((int) searchCondition.getPageSize());
public GenericEntityQuery(String serviceName, SearchCondition condition, String metricName) throws IllegalAccessException, InstantiationException { if(serviceName.equals(GenericMetricEntity.GENERIC_METRIC_SERVICE)){ if(LOG.isDebugEnabled()) LOG.debug("List metric query"); if(metricName == null || metricName.isEmpty()){ throw new IllegalArgumentException("metricName should not be empty for metric list query"); } if(!condition.getOutputFields().contains(GenericMetricEntity.VALUE_FIELD)){ condition.getOutputFields().add(GenericMetricEntity.VALUE_FIELD); } reader = new GenericEntityStreamReader(serviceName, condition,metricName); }else{ if(LOG.isDebugEnabled()) LOG.debug("List entity query"); reader = new GenericEntityStreamReader(serviceName, condition); } reader.register(this); }
while ((log = reader.read()) != null) { TaggedLogAPIEntity entity = HBaseInternalLogHelper.buildEntity(log, entityDef); entity.setSerializeAlias(condition.getOutputAlias()); entity.setSerializeVerbose(condition.isOutputVerbose()); l.entityCreated(entity); if (++count == condition.getPageSize()) { break;
SearchCondition condition = new SearchCondition(); condition.setFilter(comp.filter()); condition.setQueryExpression(comp.getQueryExpression()); if(comp.sortOptions() == null && top > 0) { LOG.warn("Parameter \"top\" is only used for sort query! Ignore top parameter this time since it's not a sort query"); condition.setPartitionValues(Arrays.asList(partitionValues.get(0))); condition.setStartTime(startTime); condition.setEndTime(endTime); condition.setOutputVerbose(verbose==null || verbose ); condition.setOutputAlias(comp.getOutputAlias()); condition.setOutputAll(comp.isOutputAll()); condition.setStartRowkey(startRowkey); condition.setPageSize(pageSize); condition.setOutputFields(outputFields); if(condition.isOutputAll()){ LOG.info("Output: ALL"); }else{ LOG.info("Output: " + StringUtils.join(condition.getOutputFields(), ", ")); condition.setOutputFields(outputFields); if(condition.isOutputAll()){ LOG.info("Output: ALL"); }else{ LOG.info("Output: " + StringUtils.join(condition.getOutputFields(), ", "));
String serviceName = comp.serviceName(); SearchCondition condition = new SearchCondition(); condition.setOutputVerbose(verbose == null || verbose); condition.setOutputAlias(comp.getOutputAlias()); condition.setFilter(comp.filter()); condition.setQueryExpression(comp.getQueryExpression()); if(comp.sortOptions() == null && top > 0) { LOG.warn("Parameter \"top\" is only used for sort query! Ignore top parameter this time since it's not a sort query"); condition.setPartitionValues(Arrays.asList(partitionValues.get(0))); if(ed.isTimeSeries()){ condition.setStartTime(startTime); condition.setEndTime(endTime); condition.setStartRowkey(startRowkey); condition.setPageSize(pageSize); condition.setOutputAll(comp.isOutputAll()); if(outputFields == null) outputFields = new ArrayList<String>(); if(comp.hasAgg()){ condition.setOutputFields(outputFields); if(comp.isOutputAll()){ LOG.info("Output fields: ALL");
Date end = null; if(searchCondition.getPageSize() <= 0){ return null; start = DateTimeUtil.humanDateToDate(searchCondition.getStartTime()); end = DateTimeUtil.humanDateToDate(searchCondition.getEndTime()); }else{ start = DateTimeUtil.humanDateToDate(EntityConstants.FIXED_READ_START_HUMANTIME); final byte[][] outputQualifiers = HBaseInternalLogHelper.getOutputQualifiers(entityDef, searchCondition.getOutputFields()); GenericAggregateReader reader = new GenericAggregateReader(entityDef, searchCondition.getPartitionValues(), start, end, searchCondition.getFilter(), searchCondition.getStartRowkey(), outputQualifiers, this.prefix,this.aggregateCondition); try{ if(LOG.isDebugEnabled()) LOG.debug("open and read group aggregate reader");
SearchCondition condition = new SearchCondition(); condition.setOutputFields(new ArrayList<String>()); condition.getOutputFields().add("field1"); condition.getOutputFields().add("field2"); condition.getOutputFields().add("field3"); condition.getOutputFields().add("field4"); condition.getOutputFields().add("field5"); condition.getOutputFields().add("field6"); condition.getOutputFields().add("field7"); condition.setQueryExpression(parser.parse());
@Override protected LogReader createIndexReader() { final EntityDefinition entityDef = indexDef.getEntityDefinition(); // final byte[][] outputQualifiers = null; if(!condition.isOutputAll()) { outputQualifiers = HBaseInternalLogHelper.getOutputQualifiers(entityDef, condition.getOutputFields()); } return new UniqueIndexLogReader(indexDef, indexRowkeys, outputQualifiers, condition.getFilter()); } }
public GenericEntityStreamReaderMT(String serviceName, SearchCondition condition, int numThreads) throws Exception{ checkIsTimeSeries(serviceName); checkNumThreads(numThreads); long queryStartTime = DateTimeUtil.humanDateToSeconds(condition.getStartTime())*1000; long queryEndTime = DateTimeUtil.humanDateToSeconds(condition.getEndTime())*1000; long subStartTime = queryStartTime; long subEndTime = 0; long interval = (queryEndTime-queryStartTime) / numThreads; for(int i=0; i<numThreads; i++){ // split search condition by time range subStartTime = queryStartTime + i*interval; if(i == numThreads-1){ subEndTime = queryEndTime; }else{ subEndTime = subStartTime + interval; } String strStartTime = DateTimeUtil.millisecondsToHumanDateWithSeconds(subStartTime); String strEndTime = DateTimeUtil.millisecondsToHumanDateWithSeconds(subEndTime); SearchCondition sc = new SearchCondition(condition); sc.setStartTime(strStartTime); sc.setEndTime(strEndTime); GenericEntityStreamReader reader = new GenericEntityStreamReader(serviceName, sc); readers.add(reader); } }
} else if(searchCondition.isOutputAll()){ List<String> outputFields = searchCondition.getOutputFields(); for(String field:outputFields) { root.addSelectColumn(new ColumnImpl(this.tableName, field)); ORExpression expression = searchCondition.getQueryExpression(); if(expression!=null){ CriterionBuilder criterionBuilder = new ExpressionCriterionBuilder(expression,this.jdbcEntityDefinition); root.setLimit((int) searchCondition.getPageSize());