From 9ec9619143dcff4106b032cef6497489cc9ac88c Mon Sep 17 00:00:00 2001 From: Samarth Jain Date: Mon, 23 Dec 2019 17:49:06 -0800 Subject: [PATCH] Handle null values for metrics in TDigest aggregators. (#9073) Add support for rollup during ingestion. --- .../TDigestSketchAggregator.java | 19 +- .../TDigestSketchAggregatorFactory.java | 45 + .../TDigestSketchBufferAggregator.java | 12 +- .../tdigestsketch/TDigestSketchUtils.java | 13 - .../tdigestsketch/GenerateTestData.java | 3 +- .../TDigestSketchAggregatorTest.java | 13 +- .../src/test/resources/doubles_build_data.tsv | 800 +++++++++--------- .../test/resources/doubles_sketch_data.tsv | 40 +- 8 files changed, 498 insertions(+), 447 deletions(-) diff --git a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregator.java b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregator.java index 9197923a800..d43b19ca065 100644 --- a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregator.java +++ b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregator.java @@ -21,6 +21,7 @@ package org.apache.druid.query.aggregation.tdigestsketch; import com.google.errorprone.annotations.concurrent.GuardedBy; import com.tdunning.math.stats.MergingDigest; +import org.apache.druid.java.util.common.IAE; import org.apache.druid.query.aggregation.Aggregator; import org.apache.druid.segment.ColumnValueSelector; @@ -56,16 +57,24 @@ public class TDigestSketchAggregator implements Aggregator @Override public void aggregate() { - if (selector.getObject() instanceof Number) { + Object obj = selector.getObject(); + if (obj == null) { + return; + } + if (obj instanceof Number) { synchronized (this) { - histogram.add(((Number) selector.getObject()).doubleValue()); + histogram.add(((Number) obj).doubleValue()); } - } else if (selector.getObject() instanceof MergingDigest) { + } else if (obj instanceof MergingDigest) { synchronized (this) { - histogram.add((MergingDigest) selector.getObject()); + histogram.add((MergingDigest) obj); } } else { - TDigestSketchUtils.throwExceptionForWrongType(selector); + throw new IAE( + "Expected a number or an instance of MergingDigest, but received [%s] of type [%s]", + obj, + obj.getClass() + ); } } diff --git a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorFactory.java b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorFactory.java index 74caf612e92..dc93f75fc06 100644 --- a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorFactory.java +++ b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorFactory.java @@ -24,13 +24,16 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeName; import com.tdunning.math.stats.MergingDigest; import com.tdunning.math.stats.TDigest; +import org.apache.druid.query.aggregation.AggregateCombiner; import org.apache.druid.query.aggregation.Aggregator; import org.apache.druid.query.aggregation.AggregatorFactory; import org.apache.druid.query.aggregation.AggregatorFactoryNotMergeableException; import org.apache.druid.query.aggregation.AggregatorUtil; import org.apache.druid.query.aggregation.BufferAggregator; +import org.apache.druid.query.aggregation.ObjectAggregateCombiner; import org.apache.druid.query.cache.CacheKeyBuilder; import org.apache.druid.segment.ColumnSelectorFactory; +import org.apache.druid.segment.ColumnValueSelector; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -219,6 +222,48 @@ public class TDigestSketchAggregatorFactory extends AggregatorFactory return TDigestSketchUtils.getMaxIntermdiateTDigestSize(compression); } + @Override + public AggregateCombiner makeAggregateCombiner() + { + return new ObjectAggregateCombiner() + { + private MergingDigest combined = new MergingDigest(compression); + + @Override + public void reset(final ColumnValueSelector selector) + { + combined = null; + fold(selector); + } + + @Override + public void fold(final ColumnValueSelector selector) + { + MergingDigest other = (MergingDigest) selector.getObject(); + if (other == null) { + return; + } + if (combined == null) { + combined = new MergingDigest(compression); + } + combined.add(other); + } + + @Nullable + @Override + public MergingDigest getObject() + { + return combined; + } + + @Override + public Class classOfObject() + { + return MergingDigest.class; + } + }; + } + @Override public boolean equals(final Object o) { diff --git a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchBufferAggregator.java b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchBufferAggregator.java index 3a9eb140a07..be65896239c 100644 --- a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchBufferAggregator.java +++ b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchBufferAggregator.java @@ -23,6 +23,7 @@ import com.google.common.base.Preconditions; import com.tdunning.math.stats.MergingDigest; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; +import org.apache.druid.java.util.common.IAE; import org.apache.druid.query.aggregation.BufferAggregator; import org.apache.druid.segment.ColumnValueSelector; @@ -66,14 +67,21 @@ public class TDigestSketchBufferAggregator implements BufferAggregator @Override public void aggregate(ByteBuffer buffer, int position) { - MergingDigest sketch = sketchCache.get(buffer).get(position); Object x = selector.getObject(); + if (x == null) { + return; + } + MergingDigest sketch = sketchCache.get(buffer).get(position); if (x instanceof Number) { sketch.add(((Number) x).doubleValue()); } else if (x instanceof MergingDigest) { sketch.add((MergingDigest) x); } else { - TDigestSketchUtils.throwExceptionForWrongType(selector); + throw new IAE( + "Expected a number or an instance of MergingDigest, but received [%s] of type [%s]", + x, + x.getClass() + ); } } diff --git a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchUtils.java b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchUtils.java index edfd148b406..3a5be131049 100644 --- a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchUtils.java +++ b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchUtils.java @@ -22,7 +22,6 @@ package org.apache.druid.query.aggregation.tdigestsketch; import com.tdunning.math.stats.MergingDigest; import org.apache.druid.java.util.common.IAE; import org.apache.druid.java.util.common.StringUtils; -import org.apache.druid.segment.ColumnValueSelector; import org.apache.druid.segment.VirtualColumn; import org.apache.druid.segment.virtual.ExpressionVirtualColumn; import org.apache.druid.sql.calcite.aggregation.Aggregation; @@ -80,18 +79,6 @@ public class TDigestSketchUtils return intermediateSize + 1000; } - static void throwExceptionForWrongType(ColumnValueSelector selector) - { - final String msg = selector.getObject() == null - ? StringUtils.format("Expected a number, but received null") - : StringUtils.format( - "Expected a number, but received [%s] of type [%s]", - selector.getObject(), - selector.getObject().getClass() - ); - throw new IAE(msg); - } - public static boolean matchingAggregatorFactoryExists( final DruidExpression input, final Integer compression, diff --git a/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/GenerateTestData.java b/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/GenerateTestData.java index b6a23923aaf..0d5f66a5fa1 100644 --- a/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/GenerateTestData.java +++ b/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/GenerateTestData.java @@ -57,7 +57,8 @@ public class GenerateTestData buildData.write('\t'); buildData.write(Integer.toString(product)); // product dimension buildData.write('\t'); - buildData.write(Double.toString(value)); + // make 20% of the values null + buildData.write((rand.nextInt(10) % 5 == 0) ? "" : Double.toString(value)); buildData.newLine(); sketch.add(value); sequenceNumber++; diff --git a/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorTest.java b/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorTest.java index d5577b9bcc2..a2220e60c3d 100644 --- a/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorTest.java +++ b/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorTest.java @@ -20,6 +20,7 @@ package org.apache.druid.query.aggregation.tdigestsketch; import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.druid.common.config.NullHandling; import org.apache.druid.jackson.DefaultObjectMapper; import org.apache.druid.java.util.common.granularity.Granularities; import org.apache.druid.java.util.common.guava.Sequence; @@ -136,8 +137,8 @@ public class TDigestSketchAggregatorTest extends InitializedNullHandlingTest Object quantilesObject = row.get(1); // "quantiles" Assert.assertTrue(quantilesObject instanceof double[]); double[] quantiles = (double[]) quantilesObject; - Assert.assertEquals(0, quantiles[0], 0.05); // min value - Assert.assertEquals(0.5, quantiles[1], 0.05); // median value + Assert.assertEquals(0.001, quantiles[0], 0.0006); // min value + Assert.assertEquals(NullHandling.replaceWithDefault() ? 0.47 : 0.5, quantiles[1], 0.05); // median value Assert.assertEquals(1, quantiles[2], 0.05); // max value } @@ -192,8 +193,8 @@ public class TDigestSketchAggregatorTest extends InitializedNullHandlingTest Object quantilesObject = row.get(1); // "quantiles" Assert.assertTrue(quantilesObject instanceof double[]); double[] quantiles = (double[]) quantilesObject; - Assert.assertEquals(0, quantiles[0], 0.05); // min value - Assert.assertEquals(0.5, quantiles[1], 0.05); // median value + Assert.assertEquals(NullHandling.replaceWithDefault() ? 0.0 : 0.001, quantiles[0], 0.0006); // min value + Assert.assertEquals(NullHandling.replaceWithDefault() ? 0.35 : 0.5, quantiles[1], 0.05); // median value Assert.assertEquals(1, quantiles[2], 0.05); // max value } @@ -256,8 +257,8 @@ public class TDigestSketchAggregatorTest extends InitializedNullHandlingTest Object quantilesObject = row.get(1); // "quantiles" Assert.assertTrue(quantilesObject instanceof double[]); double[] quantiles = (double[]) quantilesObject; - Assert.assertEquals(0, quantiles[0], 0.05); // min value - Assert.assertEquals(0.5, quantiles[1], 0.05); // median value + Assert.assertEquals(0.001, quantiles[0], 0.0006); // min value + Assert.assertEquals(NullHandling.replaceWithDefault() ? 0.47 : 0.5, quantiles[1], 0.05); // median value Assert.assertEquals(1, quantiles[2], 0.05); // max value } } diff --git a/extensions-contrib/tdigestsketch/src/test/resources/doubles_build_data.tsv b/extensions-contrib/tdigestsketch/src/test/resources/doubles_build_data.tsv index 56eda050b05..3f370597fdc 100644 --- a/extensions-contrib/tdigestsketch/src/test/resources/doubles_build_data.tsv +++ b/extensions-contrib/tdigestsketch/src/test/resources/doubles_build_data.tsv @@ -1,400 +1,400 @@ -2016010101 0 4 0.18400342240873802 -2016010101 1 4 0.6865245424441776 -2016010101 2 4 0.7739519201819897 -2016010101 3 4 0.5856367722263963 -2016010101 4 4 0.7975517383656839 -2016010101 5 4 0.43358568598862635 -2016010101 6 4 0.12275185396963084 -2016010101 7 4 0.9993974605827314 -2016010101 8 4 0.4874039882191328 -2016010101 9 4 0.5692609022340854 -2016010101 10 4 0.26678754447065534 -2016010101 11 4 0.1989527055444228 -2016010101 12 4 0.9110129077294297 -2016010101 13 4 0.5538363335848467 -2016010101 14 4 0.10562455403723603 -2016010101 15 4 0.6935674808894914 -2016010101 16 4 0.4726911873373467 -2016010101 17 4 0.11900464634546115 -2016010101 18 4 0.4559981547074664 -2016010101 19 4 0.904574218307998 -2016010101 20 4 0.9776521615693896 -2016010101 21 4 0.2539035002418517 -2016010101 22 4 0.20805734530287534 -2016010101 23 4 0.41417993613962933 -2016010101 24 4 0.4952370716312732 -2016010101 25 4 0.07011744863814762 -2016010101 26 4 0.4531974535282244 -2016010101 27 4 0.6424395861589562 -2016010101 28 4 0.7228621538271517 -2016010101 29 4 0.5843296221504063 -2016010101 30 4 0.331742294401003 -2016010101 31 4 0.8294570315308673 -2016010101 32 4 0.9120986646735282 -2016010101 33 4 0.2286300818426008 -2016010101 34 4 0.8624446565970323 -2016010101 35 4 0.5343087459095744 -2016010101 36 4 0.4130981692773146 -2016010101 37 4 0.6713822529812259 -2016010101 38 4 0.6359244178847552 -2016010101 39 4 0.8614097204164315 -2016010101 40 6 0.855433193186756 -2016010101 41 6 0.5494808135474287 -2016010101 42 6 0.2494867642163876 -2016010101 43 6 0.44676257684891874 -2016010101 44 6 0.26941623048140995 -2016010101 45 6 0.24707447705353103 -2016010101 46 6 0.7763084722362548 -2016010101 47 6 0.7197776524998396 -2016010101 48 6 0.8547881573358272 -2016010101 49 6 0.04962070578119382 -2016010101 50 6 0.8577013635322285 -2016010101 51 6 0.3248850193586539 -2016010101 52 6 0.7099486817951516 -2016010101 53 6 0.9086831898801163 -2016010101 54 6 0.25911405409920296 -2016010101 55 6 0.48594375975487214 -2016010101 56 6 0.6328081792059475 -2016010101 57 6 0.2541410518420717 -2016010101 58 6 0.8855225528099031 -2016010101 59 6 0.8947324865996268 -2016010101 60 3 0.4115770024239612 -2016010101 61 3 0.407209253168066 -2016010101 62 3 0.20712349395555596 -2016010101 63 3 0.9019620910065339 -2016010101 64 3 0.9024166734838822 -2016010101 65 3 0.9229600784866859 -2016010101 66 3 0.985147872082527 -2016010101 67 3 0.10673099772511685 -2016010101 68 3 0.5996259775565335 -2016010101 69 3 0.5326920547476084 -2016010101 70 3 0.2908715666501662 -2016010101 71 3 0.9554390881150112 -2016010101 72 3 0.36984132919562984 -2016010101 73 3 0.2817272979933143 -2016010101 74 3 0.739014257182305 -2016010101 75 3 0.4547691759148418 -2016010101 76 3 0.5517497118489398 -2016010101 77 3 0.2277857035162798 -2016010101 78 3 0.8173939363090669 -2016010101 79 3 0.3930423279427335 -2016010101 80 6 0.9919726250736455 -2016010101 81 6 0.7670059532445269 -2016010101 82 6 0.042563956599481534 -2016010101 83 6 0.9637944309418425 -2016010101 84 6 0.7332037660613114 -2016010101 85 6 0.4426495381649056 -2016010101 86 6 0.7166993196134611 -2016010101 87 6 0.24743532603299845 -2016010101 88 6 0.4799158294749326 -2016010101 89 6 0.6653475668391361 -2016010101 90 6 0.775227487806507 -2016010101 91 6 0.6351773012367866 -2016010101 92 6 0.11859244615305142 -2016010101 93 6 0.47937789482404425 -2016010101 94 6 0.9176591572395486 -2016010101 95 6 0.31531929207681375 -2016010101 96 6 0.2620957460429699 -2016010101 97 6 0.48434732612327625 -2016010101 98 6 0.5404432154037893 -2016010101 99 6 0.0756673384583817 -2016010101 100 2 0.03467763042527283 -2016010101 101 2 0.6599322068206671 -2016010101 102 2 0.5851566930666781 -2016010101 103 2 0.9289365437820967 -2016010101 104 2 0.18676909308684186 -2016010101 105 2 0.9879999829181275 -2016010101 106 2 0.5989887945104968 -2016010101 107 2 0.5116753904494058 -2016010101 108 2 0.47180963140539234 -2016010101 109 2 0.3817179664370707 -2016010101 110 2 0.43867514596244317 -2016010101 111 2 0.8682947779291971 -2016010101 112 2 0.4531002982651964 -2016010101 113 2 0.4137446783476031 -2016010101 114 2 0.7828722097979959 -2016010101 115 2 0.7544029243316186 -2016010101 116 2 0.8073610464180303 -2016010101 117 2 0.3988232509895424 -2016010101 118 2 0.7420954813030962 -2016010101 119 2 0.9682767534483183 -2016010101 120 5 0.932266170435191 -2016010101 121 5 0.9442118007962537 -2016010101 122 5 0.3459369305182035 -2016010101 123 5 0.7353091264347587 -2016010101 124 5 0.09173481217567525 -2016010101 125 5 0.4841125699937996 -2016010101 126 5 0.09980357210224322 -2016010101 127 5 0.6310323689510959 -2016010101 128 5 0.5150126421118538 -2016010101 129 5 0.25952271088776446 -2016010101 130 5 0.5831931427843442 -2016010101 131 5 0.4857630294618446 -2016010101 132 5 0.1236953097751542 -2016010101 133 5 0.26865146249505867 -2016010101 134 5 0.758753349838143 -2016010101 135 5 0.4470022609108373 -2016010101 136 5 0.17341364635583423 -2016010101 137 5 0.7912507932298367 -2016010101 138 5 0.5888308222727439 -2016010101 139 5 0.3588616442423166 -2016010101 140 4 0.17634206104241368 -2016010101 141 4 0.5410328570948041 -2016010101 142 4 0.37692978933091825 -2016010101 143 4 0.7141908938615491 -2016010101 144 4 0.07267656582545412 -2016010101 145 4 0.8558523550312013 -2016010101 146 4 0.9813834781771359 -2016010101 147 4 0.8901977712477311 -2016010101 148 4 0.9560822202831745 -2016010101 149 4 0.3835659668522904 -2016010101 150 4 0.24970317775825412 -2016010101 151 4 0.23101157937207617 -2016010101 152 4 0.9962568046377394 -2016010101 153 4 0.8361247330090413 -2016010101 154 4 0.840684054948499 -2016010101 155 4 0.9052044460975798 -2016010101 156 4 0.6463926661125562 -2016010101 157 4 0.04411048858353084 -2016010101 158 4 0.38084927682182457 -2016010101 159 4 0.9341567696712807 -2016010101 160 2 0.6444600998039801 -2016010101 161 2 0.9959038761023891 -2016010101 162 2 0.6277409184324876 -2016010101 163 2 0.15567670882328122 -2016010101 164 2 0.9399539050143508 -2016010101 165 2 0.9427950658336692 -2016010101 166 2 0.32695366924165714 -2016010101 167 2 0.06494423391083837 -2016010101 168 2 0.7350656166921584 -2016010101 169 2 0.6597571880397293 -2016010101 170 2 0.6232896262457435 -2016010101 171 2 0.3991049576034902 -2016010101 172 2 0.030384991176152565 -2016010101 173 2 0.31798195313124733 -2016010101 174 2 0.35924006958852484 -2016010101 175 2 0.6967463287336736 -2016010101 176 2 0.48130500580323377 -2016010101 177 2 0.6307327262923675 -2016010101 178 2 0.8278978150044358 -2016010101 179 2 0.18235069592612707 -2016010101 180 6 0.33506690463108024 -2016010101 181 6 0.7467491419926762 -2016010101 182 6 0.935716427990453 -2016010101 183 6 0.27312535493840295 -2016010101 184 6 0.08411352680155793 -2016010101 185 6 0.7286593203874426 -2016010101 186 6 0.4944768219354745 -2016010101 187 6 0.3657278465928795 -2016010101 188 6 0.9032089768136577 -2016010101 189 6 0.07319490990372934 -2016010101 190 6 0.2711714964325377 -2016010101 191 6 0.43076666049459356 -2016010101 192 6 0.3929942938831871 -2016010101 193 6 0.06702713588446585 -2016010101 194 6 0.2880711799296227 -2016010101 195 6 0.2753747150639939 -2016010101 196 6 0.4504200108910671 -2016010101 197 6 0.785606159065031 -2016010101 198 6 0.6424553371008628 -2016010101 199 6 0.03389914063403954 -2016010101 200 7 0.7231577934981064 -2016010101 201 7 0.8020703973388846 -2016010101 202 7 0.34618571636736384 -2016010101 203 7 0.8870323946331024 -2016010101 204 7 0.22829122357756182 -2016010101 205 7 0.7391887247919631 -2016010101 206 7 0.32667298905806685 -2016010101 207 7 0.28966062987780283 -2016010101 208 7 0.35051206876737706 -2016010101 209 7 0.8028045292717977 -2016010101 210 7 0.8416165660849151 -2016010101 211 7 0.7392329281431951 -2016010101 212 7 0.338124145223625 -2016010101 213 7 0.42239056684731546 -2016010101 214 7 0.8257949422958452 -2016010101 215 7 0.4420414268433974 -2016010101 216 7 0.29256916602260286 -2016010101 217 7 0.6850345466358918 -2016010101 218 7 0.7464113033810255 -2016010101 219 7 0.35843523655425125 -2016010101 220 0 0.5941513813898424 -2016010101 221 0 0.027368543668205403 -2016010101 222 0 0.0646593769174727 -2016010101 223 0 0.9569978913839153 -2016010101 224 0 0.6811984053832584 -2016010101 225 0 0.5606358380083493 -2016010101 226 0 0.26670488547550186 -2016010101 227 0 0.9014400833785653 -2016010101 228 0 0.637566015918935 -2016010101 229 0 0.019791340881956998 -2016010101 230 0 0.4245542806308241 -2016010101 231 0 0.444662141732598 -2016010101 232 0 0.1758335119170732 -2016010101 233 0 0.0159214929875503 -2016010101 234 0 0.1771063482497166 -2016010101 235 0 0.9604671407661743 -2016010101 236 0 0.47384714026832164 -2016010101 237 0 0.18977081242542304 -2016010101 238 0 0.4766476987574778 -2016010101 239 0 0.9294775624405623 -2016010101 240 3 0.12594080257677187 -2016010101 241 3 0.7559152350398667 -2016010101 242 3 0.05745443874940148 -2016010101 243 3 0.6717027081764814 -2016010101 244 3 0.5700849510416076 -2016010101 245 3 0.8261816952276474 -2016010101 246 3 0.7060976979132971 -2016010101 247 3 0.4176561761388906 -2016010101 248 3 0.5256334635141646 -2016010101 249 3 0.49816409290688646 -2016010101 250 3 0.9830449049508984 -2016010101 251 3 0.5777317502988757 -2016010101 252 3 0.69224309816127 -2016010101 253 3 0.640944588547068 -2016010101 254 3 0.17549906190868492 -2016010101 255 3 0.5626366786777154 -2016010101 256 3 0.5489319715869551 -2016010101 257 3 0.5001626533570611 -2016010101 258 3 0.5248247072184595 -2016010101 259 3 0.5157966135463232 -2016010101 260 0 0.043824985443986386 -2016010101 261 0 0.4355867507058666 -2016010101 262 0 0.8517353983128922 -2016010101 263 0 0.050511310614060556 -2016010101 264 0 0.018975576091520008 -2016010101 265 0 0.24288753566173815 -2016010101 266 0 0.42592232986751477 -2016010101 267 0 0.8219313240908653 -2016010101 268 0 0.9200298974447165 -2016010101 269 0 0.9038295212557719 -2016010101 270 0 0.5268384730163258 -2016010101 271 0 0.8370249923326465 -2016010101 272 0 0.20764198291870795 -2016010101 273 0 0.28224686510065466 -2016010101 274 0 0.05114706164317673 -2016010101 275 0 0.6822109116561871 -2016010101 276 0 0.1920487580753658 -2016010101 277 0 0.5374714224193021 -2016010101 278 0 0.1407286063444365 -2016010101 279 0 0.6300903200679441 -2016010101 280 3 0.5761961995211345 -2016010101 281 3 0.48860594440363003 -2016010101 282 3 0.9621962588672488 -2016010101 283 3 0.3795960509843891 -2016010101 284 3 0.157214495528595 -2016010101 285 3 0.8775922187262636 -2016010101 286 3 0.04594168614675043 -2016010101 287 3 0.856217645027161 -2016010101 288 3 0.4401812473830602 -2016010101 289 3 0.45997954611887704 -2016010101 290 3 0.7575967536722598 -2016010101 291 3 0.30081626796169747 -2016010101 292 3 0.5556330504516347 -2016010101 293 3 0.2610662583323312 -2016010101 294 3 0.9456901737901005 -2016010101 295 3 0.7732531252738661 -2016010101 296 3 0.9312784670391524 -2016010101 297 3 0.1700551978587308 -2016010101 298 3 0.09416802177766626 -2016010101 299 3 0.047486020483062275 -2016010101 300 0 0.2368720948888663 -2016010101 301 0 0.1363540247675844 -2016010101 302 0 0.6796632164100268 -2016010101 303 0 0.4847790313081668 -2016010101 304 0 0.8923911191374748 -2016010101 305 0 0.4629209972203546 -2016010101 306 0 0.8770504803374757 -2016010101 307 0 0.16132164307745944 -2016010101 308 0 0.07724195103053844 -2016010101 309 0 0.7818522541007664 -2016010101 310 0 0.12646019668431752 -2016010101 311 0 0.7833272631599443 -2016010101 312 0 0.6456747363593918 -2016010101 313 0 0.007262692215570188 -2016010101 314 0 0.7252559157521992 -2016010101 315 0 0.3561896202462319 -2016010101 316 0 0.4916774723249263 -2016010101 317 0 0.41665575732393756 -2016010101 318 0 0.8873537893988267 -2016010101 319 0 2.671170814837476E-4 -2016010101 320 3 0.38601998905690915 -2016010101 321 3 0.3386538450586696 -2016010101 322 3 0.9029330123077748 -2016010101 323 3 0.7119643269179263 -2016010101 324 3 0.999586987542997 -2016010101 325 3 0.2606007123119771 -2016010101 326 3 0.758173586634067 -2016010101 327 3 0.8745954276793834 -2016010101 328 3 0.6271248733821071 -2016010101 329 3 0.9022512107069566 -2016010101 330 3 0.7581268831412983 -2016010101 331 3 0.5960487672639095 -2016010101 332 3 0.9976334716314451 -2016010101 333 3 0.16634963588078155 -2016010101 334 3 0.845497495310386 -2016010101 335 3 0.29561984090341287 -2016010101 336 3 0.3852437651241116 -2016010101 337 3 0.6298152822162192 -2016010101 338 3 0.22342878011982603 -2016010101 339 3 0.7315688774325575 -2016010101 340 1 0.5184463792301018 -2016010101 341 1 0.8248209481750183 -2016010101 342 1 0.19301501207164873 -2016010101 343 1 0.9789732956413038 -2016010101 344 1 0.0320870306724641 -2016010101 345 1 0.7513122728857949 -2016010101 346 1 0.4256312747004757 -2016010101 347 1 0.8885035744639196 -2016010101 348 1 0.9385374330083497 -2016010101 349 1 0.5124115905623042 -2016010101 350 1 0.1723444960263597 -2016010101 351 1 0.6268182721826895 -2016010101 352 1 0.8325112646795693 -2016010101 353 1 0.8753479069746972 -2016010101 354 1 0.17435564546281812 -2016010101 355 1 0.7733161692529222 -2016010101 356 1 0.09477460168514973 -2016010101 357 1 0.5522517284701014 -2016010101 358 1 0.2309322491262773 -2016010101 359 1 0.4553785462375177 -2016010101 360 3 0.4207538591898 -2016010101 361 3 0.5777884912044923 -2016010101 362 3 0.09598914695635141 -2016010101 363 3 0.8298751445992327 -2016010101 364 3 0.8455400406757709 -2016010101 365 3 0.7082357095169295 -2016010101 366 3 0.3428513232921617 -2016010101 367 3 0.002034459046941328 -2016010101 368 3 0.8041741490355258 -2016010101 369 3 0.5046992061463758 -2016010101 370 3 0.5968379402186867 -2016010101 371 3 0.49251728555072416 -2016010101 372 3 0.499514272967044 -2016010101 373 3 0.3163953106310815 -2016010101 374 3 0.9141264759479766 -2016010101 375 3 0.5654017237196727 -2016010101 376 3 0.870688146748015 -2016010101 377 3 0.8346158948878163 -2016010101 378 3 0.2534223361266069 -2016010101 379 3 0.6615127870881999 -2016010101 380 0 0.9404409994982728 -2016010101 381 0 0.7181624188084241 -2016010101 382 0 0.8688492337400265 -2016010101 383 0 0.7423992107648576 -2016010101 384 0 0.962538954563567 -2016010101 385 0 0.3065544881403711 -2016010101 386 0 0.5581815487224352 -2016010101 387 0 0.057834629796017833 -2016010101 388 0 0.7639391385884952 -2016010101 389 0 0.7851115146196147 -2016010101 390 0 0.5742903447712463 -2016010101 391 0 0.9505151407243474 -2016010101 392 0 0.7991385460697642 -2016010101 393 0 0.42243212914925077 -2016010101 394 0 0.5001511188980361 -2016010101 395 0 0.4162146563124456 -2016010101 396 0 0.053188648211970335 -2016010101 397 0 0.5917396934991566 -2016010101 398 0 0.1840362970791214 -2016010101 399 0 0.24913435524980954 +2016010101 0 3 0.4806453614322793 +2016010101 1 3 0.6419678871373409 +2016010101 2 3 +2016010101 3 3 0.7020558734824461 +2016010101 4 3 0.22613138189319204 +2016010101 5 3 0.06909583208106174 +2016010101 6 3 0.5376346416013744 +2016010101 7 3 +2016010101 8 3 0.8149467521679741 +2016010101 9 3 0.7251559245004248 +2016010101 10 3 0.49855832099546715 +2016010101 11 3 0.5798820881203658 +2016010101 12 3 0.5677866915980911 +2016010101 13 3 +2016010101 14 3 0.8516993764638755 +2016010101 15 3 +2016010101 16 3 0.8109196906946308 +2016010101 17 3 0.7791330245692353 +2016010101 18 3 0.5499336255807227 +2016010101 19 3 0.23268682623354076 +2016010101 20 4 +2016010101 21 4 0.6399367705457312 +2016010101 22 4 0.6484832626361673 +2016010101 23 4 0.1662318456280305 +2016010101 24 4 0.19354936279837376 +2016010101 25 4 0.5802200573751369 +2016010101 26 4 0.4269381252768615 +2016010101 27 4 0.3070593197796049 +2016010101 28 4 0.35382552338561346 +2016010101 29 4 0.7119445442397593 +2016010101 30 4 0.7869733865139936 +2016010101 31 4 0.0805272768355706 +2016010101 32 4 0.03922392755570692 +2016010101 33 4 0.5840598980488145 +2016010101 34 4 0.20511232154618975 +2016010101 35 4 +2016010101 36 4 0.07710156514815447 +2016010101 37 4 0.23290085820099904 +2016010101 38 4 +2016010101 39 4 0.5733869947288424 +2016010101 40 1 0.9858872798659482 +2016010101 41 1 +2016010101 42 1 0.14839505115144447 +2016010101 43 1 0.09840489123150087 +2016010101 44 1 0.5479691071569414 +2016010101 45 1 0.0023559980599913155 +2016010101 46 1 0.7896086868719593 +2016010101 47 1 0.0319014726614526 +2016010101 48 1 0.842015759464531 +2016010101 49 1 0.6604873440176756 +2016010101 50 1 +2016010101 51 1 0.6615216129493895 +2016010101 52 1 0.8367143245438604 +2016010101 53 1 0.9758944303783366 +2016010101 54 1 0.5709096686275406 +2016010101 55 1 0.21653637585091645 +2016010101 56 1 0.3261165064735497 +2016010101 57 1 0.5334133677491381 +2016010101 58 1 0.8620204683908819 +2016010101 59 1 0.5484128559617791 +2016010101 60 4 0.12033006888377096 +2016010101 61 4 +2016010101 62 4 +2016010101 63 4 +2016010101 64 4 0.9858000457292002 +2016010101 65 4 0.19210448139852032 +2016010101 66 4 0.3974718376343238 +2016010101 67 4 0.9732376558043744 +2016010101 68 4 0.11356123536860396 +2016010101 69 4 +2016010101 70 4 0.8076862670275398 +2016010101 71 4 0.09236347669493417 +2016010101 72 4 +2016010101 73 4 0.854189677115464 +2016010101 74 4 0.7396706282809763 +2016010101 75 4 0.31708622509985873 +2016010101 76 4 0.43648603480196757 +2016010101 77 4 0.589213905769546 +2016010101 78 4 0.7415426026749161 +2016010101 79 4 0.7358282894757189 +2016010101 80 9 +2016010101 81 9 0.4255911372929798 +2016010101 82 9 0.9331910249355163 +2016010101 83 9 0.06445900439995578 +2016010101 84 9 0.8115413172888221 +2016010101 85 9 +2016010101 86 9 0.0963857458400349 +2016010101 87 9 0.06153408750057188 +2016010101 88 9 0.44027926988833244 +2016010101 89 9 +2016010101 90 9 0.5233141932162747 +2016010101 91 9 0.32621493954167546 +2016010101 92 9 0.34647299592637026 +2016010101 93 9 0.15192824813669525 +2016010101 94 9 0.644889890933122 +2016010101 95 9 +2016010101 96 9 0.3015940264437008 +2016010101 97 9 0.435933310145303 +2016010101 98 9 0.7965720726264395 +2016010101 99 9 0.6948764513522069 +2016010101 100 8 +2016010101 101 8 0.9541985425546318 +2016010101 102 8 0.4078660397769671 +2016010101 103 8 0.3761817754153792 +2016010101 104 8 0.4630916538268274 +2016010101 105 8 0.17184297531868054 +2016010101 106 8 0.616480413683724 +2016010101 107 8 0.9958850843107127 +2016010101 108 8 0.29264803594577704 +2016010101 109 8 0.9282101022070045 +2016010101 110 8 0.12103623749465953 +2016010101 111 8 0.5756846725738404 +2016010101 112 8 0.4986956805169892 +2016010101 113 8 0.16368254315504893 +2016010101 114 8 0.8246939105217244 +2016010101 115 8 +2016010101 116 8 0.2802464651921067 +2016010101 117 8 0.14533675338382146 +2016010101 118 8 0.1550635453509872 +2016010101 119 8 0.9764250057102191 +2016010101 120 3 0.5639798746175808 +2016010101 121 3 0.5252357184891421 +2016010101 122 3 0.4224461843890118 +2016010101 123 3 0.8623764079415396 +2016010101 124 3 0.23821471344004463 +2016010101 125 3 0.6562988643211294 +2016010101 126 3 0.6045632944796968 +2016010101 127 3 0.9216081547045152 +2016010101 128 3 0.9111787373931876 +2016010101 129 3 +2016010101 130 3 0.22309670266127934 +2016010101 131 3 0.5610286454514603 +2016010101 132 3 0.6449829420830484 +2016010101 133 3 0.47359871694806055 +2016010101 134 3 0.4456546777062259 +2016010101 135 3 0.3233370634627728 +2016010101 136 3 0.535941427413942 +2016010101 137 3 0.1465746735321063 +2016010101 138 3 0.1619540222600243 +2016010101 139 3 +2016010101 140 1 0.017761763118174123 +2016010101 141 1 0.19652899466185436 +2016010101 142 1 0.8918577110251682 +2016010101 143 1 0.5483769339947813 +2016010101 144 1 0.35583586810262346 +2016010101 145 1 0.7872104182932219 +2016010101 146 1 0.4708873523759258 +2016010101 147 1 +2016010101 148 1 0.5782684331898654 +2016010101 149 1 0.9493458125552832 +2016010101 150 1 0.34871248062641946 +2016010101 151 1 0.12964044092772886 +2016010101 152 1 0.7565381339014415 +2016010101 153 1 0.722119729581673 +2016010101 154 1 0.35411310281363473 +2016010101 155 1 0.4485837785057891 +2016010101 156 1 +2016010101 157 1 0.29365186469373317 +2016010101 158 1 0.28026386528276104 +2016010101 159 1 0.04245162399196889 +2016010101 160 3 0.17387064034440958 +2016010101 161 3 0.08578972205632507 +2016010101 162 3 0.14307939514143686 +2016010101 163 3 +2016010101 164 3 0.05790520846514535 +2016010101 165 3 0.5340068761562542 +2016010101 166 3 0.700106038458213 +2016010101 167 3 0.38998802776748753 +2016010101 168 3 0.5050112412495604 +2016010101 169 3 0.4923503731785702 +2016010101 170 3 0.09763476584855624 +2016010101 171 3 0.9181948066342877 +2016010101 172 3 +2016010101 173 3 0.845482260534406 +2016010101 174 3 0.43828851854546647 +2016010101 175 3 0.753761527760726 +2016010101 176 3 0.04212838877462455 +2016010101 177 3 0.691468086019305 +2016010101 178 3 0.5740697793884527 +2016010101 179 3 +2016010101 180 2 +2016010101 181 2 +2016010101 182 2 0.6391276620023679 +2016010101 183 2 0.18995634100597447 +2016010101 184 2 +2016010101 185 2 0.3601348485475453 +2016010101 186 2 0.5898107379081887 +2016010101 187 2 0.7654577155215041 +2016010101 188 2 0.9861893898445978 +2016010101 189 2 +2016010101 190 2 +2016010101 191 2 +2016010101 192 2 0.2502642896132842 +2016010101 193 2 0.007316463522836103 +2016010101 194 2 0.7995874341737429 +2016010101 195 2 0.8767428241522481 +2016010101 196 2 0.20911811774820832 +2016010101 197 2 0.6944454810391126 +2016010101 198 2 0.6138639733419406 +2016010101 199 2 0.5340384213931233 +2016010101 200 4 0.610341783366869 +2016010101 201 4 0.8095356348162531 +2016010101 202 4 0.14576711100717 +2016010101 203 4 0.324791997579967 +2016010101 204 4 0.7012027438404959 +2016010101 205 4 0.6855125265148104 +2016010101 206 4 0.725721465888873 +2016010101 207 4 0.37334253570089415 +2016010101 208 4 0.7033238012522983 +2016010101 209 4 0.6289935861560849 +2016010101 210 4 0.22100961408197517 +2016010101 211 4 0.5361822265452533 +2016010101 212 4 0.23524963349934325 +2016010101 213 4 +2016010101 214 4 0.2151612160248132 +2016010101 215 4 0.27034057325897454 +2016010101 216 4 0.45788942603194727 +2016010101 217 4 0.1900006529735202 +2016010101 218 4 0.21761539728764212 +2016010101 219 4 +2016010101 220 9 0.11191094372411481 +2016010101 221 9 0.7257156210111483 +2016010101 222 9 +2016010101 223 9 0.09767407184252375 +2016010101 224 9 +2016010101 225 9 0.8016522677725126 +2016010101 226 9 0.8944075176139713 +2016010101 227 9 0.7071810476904448 +2016010101 228 9 0.7425380900058187 +2016010101 229 9 +2016010101 230 9 0.1031211607034147 +2016010101 231 9 0.38694779402631885 +2016010101 232 9 0.6121565493162887 +2016010101 233 9 0.08826787524008717 +2016010101 234 9 0.34982652581050666 +2016010101 235 9 0.294468865237702 +2016010101 236 9 +2016010101 237 9 0.5190906777357499 +2016010101 238 9 0.2424354751098784 +2016010101 239 9 0.7584304131139413 +2016010101 240 7 0.35704199266816017 +2016010101 241 7 0.6213205251006355 +2016010101 242 7 0.6794778377157997 +2016010101 243 7 0.9660152207885527 +2016010101 244 7 0.746230867578865 +2016010101 245 7 +2016010101 246 7 0.6637336893540101 +2016010101 247 7 0.527025000973831 +2016010101 248 7 +2016010101 249 7 0.3689478346414077 +2016010101 250 7 0.1046606291981873 +2016010101 251 7 0.42368572552625094 +2016010101 252 7 0.10870686807188557 +2016010101 253 7 0.06569693633418128 +2016010101 254 7 0.29873141724229657 +2016010101 255 7 0.29158560982689863 +2016010101 256 7 0.7678017218931323 +2016010101 257 7 0.8900303350507414 +2016010101 258 7 0.4419580092209411 +2016010101 259 7 0.6381120775261563 +2016010101 260 3 +2016010101 261 3 +2016010101 262 3 0.4227980856443392 +2016010101 263 3 +2016010101 264 3 0.8755401132173695 +2016010101 265 3 0.5275377089199973 +2016010101 266 3 0.12424387758622746 +2016010101 267 3 0.01547071944810885 +2016010101 268 3 0.37451206779305857 +2016010101 269 3 0.1989423043276275 +2016010101 270 3 0.5949853939670747 +2016010101 271 3 +2016010101 272 3 +2016010101 273 3 0.6788434157726136 +2016010101 274 3 0.4138070035489033 +2016010101 275 3 0.3262153201368553 +2016010101 276 3 +2016010101 277 3 0.43177816031851957 +2016010101 278 3 0.551450932204876 +2016010101 279 3 0.7282741792330263 +2016010101 280 3 0.9122069202680759 +2016010101 281 3 0.7413285089462801 +2016010101 282 3 0.03663726371403986 +2016010101 283 3 0.23947998113921076 +2016010101 284 3 0.9362838173143953 +2016010101 285 3 0.28291781154121487 +2016010101 286 3 0.9083170701852669 +2016010101 287 3 0.6955809083495521 +2016010101 288 3 0.9102559703489196 +2016010101 289 3 0.5856005115807994 +2016010101 290 3 +2016010101 291 3 0.7547680618605328 +2016010101 292 3 0.3635413762669889 +2016010101 293 3 0.5060093676499698 +2016010101 294 3 0.748493032129933 +2016010101 295 3 0.36173218418100006 +2016010101 296 3 0.8017631866114252 +2016010101 297 3 0.09251208639535535 +2016010101 298 3 0.3956843833130532 +2016010101 299 3 0.8965031193765175 +2016010101 300 8 0.06138169953397199 +2016010101 301 8 0.22791862853999423 +2016010101 302 8 0.4246825688431949 +2016010101 303 8 0.7695915902917281 +2016010101 304 8 +2016010101 305 8 +2016010101 306 8 0.15549809858942576 +2016010101 307 8 0.3236736994444922 +2016010101 308 8 +2016010101 309 8 0.44112090310236873 +2016010101 310 8 0.28658459361862487 +2016010101 311 8 0.9346348774247973 +2016010101 312 8 +2016010101 313 8 0.32921840037119676 +2016010101 314 8 +2016010101 315 8 0.5619515224721092 +2016010101 316 8 0.5436607404043168 +2016010101 317 8 0.13126793260709302 +2016010101 318 8 +2016010101 319 8 0.08486286173372692 +2016010101 320 2 0.9380754465335691 +2016010101 321 2 0.8698491012104429 +2016010101 322 2 0.2141986220865666 +2016010101 323 2 0.8191428099424286 +2016010101 324 2 0.5374397266436216 +2016010101 325 2 0.8014642292436202 +2016010101 326 2 0.2454633759035828 +2016010101 327 2 0.2659186693999648 +2016010101 328 2 0.12215527116473579 +2016010101 329 2 0.23512672887844477 +2016010101 330 2 0.17317858307470202 +2016010101 331 2 0.014761951009997776 +2016010101 332 2 +2016010101 333 2 +2016010101 334 2 +2016010101 335 2 0.4839228057946262 +2016010101 336 2 0.13113562836707116 +2016010101 337 2 0.5776063788487777 +2016010101 338 2 0.18353702932146465 +2016010101 339 2 0.9550943323447759 +2016010101 340 3 0.010294130457498829 +2016010101 341 3 +2016010101 342 3 +2016010101 343 3 0.043939221631064784 +2016010101 344 3 0.468615649016912 +2016010101 345 3 0.8182318625708176 +2016010101 346 3 +2016010101 347 3 +2016010101 348 3 0.13438311444894857 +2016010101 349 3 0.9612868278105434 +2016010101 350 3 0.8957083777498813 +2016010101 351 3 0.49303068183606236 +2016010101 352 3 0.3907574108316315 +2016010101 353 3 0.7609044660129155 +2016010101 354 3 0.0015306502862820759 +2016010101 355 3 +2016010101 356 3 0.0777103319482042 +2016010101 357 3 0.040512845904230654 +2016010101 358 3 +2016010101 359 3 0.8615439676963182 +2016010101 360 0 0.541631191849709 +2016010101 361 0 0.38839056303777064 +2016010101 362 0 +2016010101 363 0 +2016010101 364 0 0.25282693081575114 +2016010101 365 0 +2016010101 366 0 0.8088940492058253 +2016010101 367 0 0.23287052835067323 +2016010101 368 0 0.2388792692348808 +2016010101 369 0 +2016010101 370 0 0.047812293417679674 +2016010101 371 0 0.5904656835670964 +2016010101 372 0 +2016010101 373 0 0.21010216933405235 +2016010101 374 0 0.6128169315116692 +2016010101 375 0 0.0021979088847082773 +2016010101 376 0 +2016010101 377 0 0.029233195772592535 +2016010101 378 0 +2016010101 379 0 0.13492455955229932 +2016010101 380 7 0.45162411597798047 +2016010101 381 7 0.6017062629482749 +2016010101 382 7 +2016010101 383 7 0.6347243397708097 +2016010101 384 7 +2016010101 385 7 0.3679411384173339 +2016010101 386 7 0.11111298782358625 +2016010101 387 7 0.848348012358186 +2016010101 388 7 0.20181516171015812 +2016010101 389 7 +2016010101 390 7 +2016010101 391 7 0.03477179524923002 +2016010101 392 7 +2016010101 393 7 +2016010101 394 7 +2016010101 395 7 0.4974934049704761 +2016010101 396 7 0.6947690881973858 +2016010101 397 7 0.21185369837139645 +2016010101 398 7 +2016010101 399 7 0.6859065700191138 diff --git a/extensions-contrib/tdigestsketch/src/test/resources/doubles_sketch_data.tsv b/extensions-contrib/tdigestsketch/src/test/resources/doubles_sketch_data.tsv index f1f0bb898ff..b6dbb511f1b 100644 --- a/extensions-contrib/tdigestsketch/src/test/resources/doubles_sketch_data.tsv +++ b/extensions-contrib/tdigestsketch/src/test/resources/doubles_sketch_data.tsv @@ -1,20 +1,20 @@ -2016010101 4 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