public static AggregateResult fromPBResult(AggregateProtos.AggregateResult pbResult) throws IOException { ByteArrayDataInput byteArrayDataInput = ByteStreams.newDataInput(pbResult.getByteArray().toByteArray()); ; AggregateResult result = new AggregateResult(); result.readFields(byteArrayDataInput); return result; }
public static AggregateResult fromPBResult(AggregateProtos.AggregateResult pbResult) throws IOException { ByteArrayDataInput byteArrayDataInput = ByteStreams.newDataInput(pbResult.getByteArray().toByteArray());; AggregateResult result = new AggregateResult(); result.readFields(byteArrayDataInput); return result; }
public static AggregateResult build(List<String[]> keys, List<double[]> values, List<Integer> counts, long startTimestamp, long stopTimestamp) { if (keys.size() > values.size()) { throw new IllegalArgumentException("keys' size: " + keys.size() + " not equal with values' size: " + values.size()); } AggregateResult result = new AggregateResult(); result.setStartTimestamp(startTimestamp); result.setStopTimestamp(stopTimestamp); WritableList<GroupbyKeyValue> keyValues = new WritableList<GroupbyKeyValue>(GroupbyKeyValue.class, keys.size()); for (int i = 0; i < keys.size(); i++) { String[] key = keys.get(i); GroupbyKey gkey = new GroupbyKey(); for (String k : key) { gkey.addValue(k.getBytes()); } GroupbyValue gvalue = new GroupbyValue(); double[] value = values.get(i); for (double v : value) { gvalue.add(v); gvalue.addMeta(counts.get(i)); } keyValues.add(new GroupbyKeyValue(gkey, gvalue)); } result.setKeyValues(keyValues); return result; } }
public static AggregateResult build(List<String[]> keys,List<double[]> values,List<Integer> counts,long startTimestamp,long stopTimestamp){ if(keys.size() > values.size()){ throw new IllegalArgumentException("keys' size: "+keys.size()+" not equal with values' size: "+values.size()); } AggregateResult result = new AggregateResult(); result.setStartTimestamp(startTimestamp); result.setStopTimestamp(stopTimestamp); WritableList<GroupbyKeyValue> keyValues = new WritableList<GroupbyKeyValue>(GroupbyKeyValue.class,keys.size()); for(int i=0;i<keys.size();i++) { String[] key = keys.get(i); GroupbyKey gkey = new GroupbyKey(); for (String k : key) { gkey.addValue(k.getBytes()); } GroupbyValue gvalue = new GroupbyValue(); double[] value = values.get(i); for(double v:value){ gvalue.add(v); gvalue.addMeta(counts.get(i)); } keyValues.add(new GroupbyKeyValue(gkey, gvalue)); } result.setKeyValues(keyValues); return result; } }
public AggregateResult result(){ List<GroupbyKeyValue> mergedKeyValues = new ArrayList<GroupbyKeyValue>(); for(Map.Entry<GroupbyKey,List<Function>> entry:this.groupedFuncs.entrySet()){ GroupbyValue value = new GroupbyValue(this.numFuncs); for(Function func:entry.getValue()){ double _result = func.result(); int _count = func.count(); value.add(_result); value.addMeta(_count); } mergedKeyValues.add(new GroupbyKeyValue(entry.getKey(),value)); } final long _stop = System.currentTimeMillis(); if(this.getRegionCounter() > 0) { LOG.info(String.format("result = %d rows, startTime = %d, endTime = %d, source = %d rows, regions = %d, , spend = %d ms", mergedKeyValues.size(),this.startTimestamp,this.stopTimestamp, this.getKVCounter(), this.getRegionCounter(),(_stop - _start))); }else{ LOG.info(String.format("result = %d rows, startTime = %d, endTime = %d, source = %d rows, spend = %d ms", mergedKeyValues.size(),this.startTimestamp,this.stopTimestamp,this.getKVCounter(), (_stop - _start))); } AggregateResult result = new AggregateResult(); result.setKeyValues(mergedKeyValues); result.setStartTimestamp(this.startTimestamp); result.setStopTimestamp(this.stopTimestamp); return result; }
public AggregateResult result() { List<GroupbyKeyValue> mergedKeyValues = new ArrayList<GroupbyKeyValue>(); for (Map.Entry<GroupbyKey, List<Function>> entry : this.groupedFuncs.entrySet()) { GroupbyValue value = new GroupbyValue(this.numFuncs); for (Function func : entry.getValue()) { double _result = func.result(); int _count = func.count(); value.add(_result); value.addMeta(_count); } mergedKeyValues.add(new GroupbyKeyValue(entry.getKey(), value)); } final long _stop = System.currentTimeMillis(); if (this.getRegionCounter() > 0) { LOG.info(String.format("result = %d rows, startTime = %d, endTime = %d, source = %d rows, regions = %d, , spend = %d ms", mergedKeyValues.size(), this.startTimestamp, this.stopTimestamp, this.getKVCounter(), this.getRegionCounter(), (_stop - _start))); } else { LOG.info(String.format("result = %d rows, startTime = %d, endTime = %d, source = %d rows, spend = %d ms", mergedKeyValues.size(), this.startTimestamp, this.stopTimestamp, this.getKVCounter(), (_stop - _start))); } AggregateResult result = new AggregateResult(); result.setKeyValues(mergedKeyValues); result.setStartTimestamp(this.startTimestamp); result.setStopTimestamp(this.stopTimestamp); return result; }
@Override public AggregateResult aggregate(EntityDefinition entityDefinition, Scan scan, List<String> groupbyFields, List<byte[]> aggregateFuncTypes, List<String> aggregatedFields) throws IOException { checkNotNull(entityDefinition, "entityDefinition"); String serviceName = entityDefinition.getService(); LOG.info(this.getLogHeader() + " raw group aggregate on service: " + serviceName + " by: " + groupbyFields + " func: " + AggregateFunctionType.fromBytesList(aggregateFuncTypes) + " fields: " + aggregatedFields); if (LOG.isDebugEnabled()) { LOG.debug("SCAN: " + scan.toJSON()); } final long startTimestamp = System.currentTimeMillis(); final RawAggregator aggregator = new RawAggregator(groupbyFields, AggregateFunctionType.fromBytesList(aggregateFuncTypes), aggregatedFields, entityDefinition); InternalReadReport report = this.asyncStreamRead(entityDefinition, scan, aggregator); List<GroupbyKeyValue> keyValues = aggregator.getGroupbyKeyValues(); AggregateResult result = new AggregateResult(); result.setKeyValues(keyValues); result.setStartTimestamp(report.getStartTimestamp()); result.setStopTimestamp(report.getStopTimestamp()); long _stop = System.currentTimeMillis(); LOG.info(String.format("%s: scan = %d rows, group = %d keys, startTime = %d, endTime = %d, spend = %d ms", this.getLogHeader(), report.getCounter(), keyValues.size(), report.getStartTimestamp(), report.getStopTimestamp(), (_stop - startTimestamp))); return result; }
AggregateResult result = new AggregateResult(); result.setKeyValues(keyValues); result.setStartTimestamp(report.getStartTimestamp());
List<GroupbyKeyValue> keyValues = aggregator.getGroupbyKeyValues(); AggregateResult result = new AggregateResult(); result.setKeyValues(keyValues); result.setStartTimestamp(report.getStartTimestamp());
List<GroupbyKeyValue> keyValues = aggregator.getGroupbyKeyValues(); AggregateResult result = new AggregateResult(); result.setKeyValues(keyValues); result.setStartTimestamp(report.getStartTimestamp());
@Test public void testAggregateResultTimestamp() { AggregateResult result1 = new AggregateResult(); result1.setStartTimestamp(2L); result1.setStopTimestamp(4L); AggregateResult result2 = new AggregateResult(); result2.setStartTimestamp(1L); result2.setStopTimestamp(3L); AggregateResultCallback callback = new AggregateResultCallbackImpl(new ArrayList<AggregateFunctionType>()); callback.update(null, null, result1); callback.update(null, null, result2); AggregateResult result3 = callback.result(); Assert.assertEquals(1L, result3.getStartTimestamp()); Assert.assertEquals(4L, result3.getStopTimestamp()); }
AggregateResult result1 = new AggregateResult(); result1.setStartTimestamp(System.currentTimeMillis()); final List<GroupbyKeyValue> keyValues = new ArrayList<GroupbyKeyValue>();