You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by fj...@apache.org on 2019/05/24 21:47:59 UTC

[incubator-druid] branch 0.15.0-incubating updated: add support for multi-value string dimensions for HllSketch build aggregator (#7730) (#7757)

This is an automated email from the ASF dual-hosted git repository.

fjy pushed a commit to branch 0.15.0-incubating
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git


The following commit(s) were added to refs/heads/0.15.0-incubating by this push:
     new a9f9e55  add support for multi-value string dimensions for HllSketch build aggregator (#7730) (#7757)
a9f9e55 is described below

commit a9f9e55886a160ee3a12e56dfa1215bcfdb1375b
Author: Clint Wylie <cj...@gmail.com>
AuthorDate: Fri May 24 14:47:54 2019 -0700

    add support for multi-value string dimensions for HllSketch build aggregator (#7730) (#7757)
---
 .../datasketches/hll/HllSketchBuildAggregator.java |   8 +
 .../datasketches/hll/GenerateTestData.java         |  16 +
 .../datasketches/hll/HllSketchAggregatorTest.java  |  53 ++-
 .../src/test/resources/hll/hll_raw.tsv             | 400 ++++++++++-----------
 .../src/test/resources/hll/hll_sketches.tsv        | 200 +++++------
 5 files changed, 372 insertions(+), 305 deletions(-)

diff --git a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildAggregator.java b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildAggregator.java
index f4a4e1e..8f4a96f 100644
--- a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildAggregator.java
+++ b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildAggregator.java
@@ -25,6 +25,8 @@ import org.apache.druid.java.util.common.IAE;
 import org.apache.druid.query.aggregation.Aggregator;
 import org.apache.druid.segment.ColumnValueSelector;
 
+import java.util.List;
+
 /**
  * This aggregator builds sketches from raw data.
  * The input column can contain identifiers of type string, char[], byte[] or any numeric type.
@@ -100,6 +102,12 @@ public class HllSketchBuildAggregator implements Aggregator
       sketch.update(((Number) value).doubleValue());
     } else if (value instanceof String) {
       sketch.update(((String) value).toCharArray());
+    } else if (value instanceof List) {
+      // noinspection unchecked
+      List<String> list = (List<String>) value;
+      for (String v : list) {
+        sketch.update(v.toCharArray());
+      }
     } else if (value instanceof char[]) {
       sketch.update((char[]) value);
     } else if (value instanceof byte[]) {
diff --git a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/GenerateTestData.java b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/GenerateTestData.java
index f877cef..3a40aee 100644
--- a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/GenerateTestData.java
+++ b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/GenerateTestData.java
@@ -70,6 +70,14 @@ class GenerateTestData
     out.write("\t");
     out.write(dimension);
     out.write("\t");
+    int parsed = Integer.parseInt(dimension);
+    for (int i = parsed; i < parsed + 5; i++) {
+      out.write(Integer.toString(i));
+      if (i + 1 < parsed + 5) {
+        out.write(",");
+      }
+    }
+    out.write("\t");
     out.write(Integer.toString(id));
     out.newLine();
   }
@@ -80,6 +88,14 @@ class GenerateTestData
     out.write("\t");
     out.write(dimension);
     out.write("\t");
+    int parsed = Integer.parseInt(dimension);
+    for (int i = parsed; i < parsed + 5; i++) {
+      out.write(Integer.toString(i));
+      if (i + 1 < parsed + 5) {
+        out.write(",");
+      }
+    }
+    out.write("\t");
     out.write(StringUtils.encodeBase64String(sketch.toCompactByteArray()));
     out.newLine();
   }
diff --git a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchAggregatorTest.java b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchAggregatorTest.java
index f0b995e..0490b34 100644
--- a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchAggregatorTest.java
+++ b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchAggregatorTest.java
@@ -74,11 +74,12 @@ public class HllSketchAggregatorTest
             "    \"format\": \"tsv\",",
             "    \"timestampSpec\": {\"column\": \"timestamp\", \"format\": \"yyyyMMdd\"},",
             "    \"dimensionsSpec\": {",
-            "      \"dimensions\": [\"dim\"],",
+            "      \"dimensions\": [\"dim\", \"multiDim\"],",
             "      \"dimensionExclusions\": [],",
             "      \"spatialDimensions\": []",
             "    },",
-            "    \"columns\": [\"timestamp\", \"dim\", \"sketch\"]",
+            "    \"columns\": [\"timestamp\", \"dim\", \"multiDim\", \"sketch\"],",
+            "    \"listDelimiter\": \",\"",
             "  }",
             "}"),
         String.join("\n",
@@ -121,7 +122,8 @@ public class HllSketchAggregatorTest
             "      \"dimensionExclusions\": [],",
             "      \"spatialDimensions\": []",
             "    },",
-            "    \"columns\": [\"timestamp\", \"dim\", \"id\"]",
+            "    \"columns\": [\"timestamp\", \"dim\", \"multiDim\", \"id\"],",
+                    "    \"listDelimiter\": \",\"",
             "  }",
             "}"),
         String.join("\n",
@@ -160,11 +162,12 @@ public class HllSketchAggregatorTest
             "    \"format\": \"tsv\",",
             "    \"timestampSpec\": {\"column\": \"timestamp\", \"format\": \"yyyyMMdd\"},",
             "    \"dimensionsSpec\": {",
-            "      \"dimensions\": [\"dim\", \"id\"],",
+            "      \"dimensions\": [\"dim\", \"multiDim\", \"id\"],",
             "      \"dimensionExclusions\": [],",
             "      \"spatialDimensions\": []",
             "    },",
-            "    \"columns\": [\"timestamp\", \"dim\", \"id\"]",
+            "    \"columns\": [\"timestamp\", \"dim\", \"multiDim\", \"id\"],",
+            "    \"listDelimiter\": \",\"",
             "  }",
             "}"),
         "[]",
@@ -188,4 +191,44 @@ public class HllSketchAggregatorTest
     Assert.assertEquals(200, (double) row.getMetric("sketch"), 0.1);
   }
 
+  @Test
+  public void buildSketchesAtQueryTimeMultiValue() throws Exception
+  {
+    Sequence<Row> seq = helper.createIndexAndRunQueryOnSegment(
+        new File(this.getClass().getClassLoader().getResource("hll/hll_raw.tsv").getFile()),
+        String.join("\n",
+                    "{",
+                    "  \"type\": \"string\",",
+                    "  \"parseSpec\": {",
+                    "    \"format\": \"tsv\",",
+                    "    \"timestampSpec\": {\"column\": \"timestamp\", \"format\": \"yyyyMMdd\"},",
+                    "    \"dimensionsSpec\": {",
+                    "      \"dimensions\": [\"dim\", \"multiDim\", \"id\"],",
+                    "      \"dimensionExclusions\": [],",
+                    "      \"spatialDimensions\": []",
+                    "    },",
+                    "    \"columns\": [\"timestamp\", \"dim\", \"multiDim\", \"id\"],",
+                    "    \"listDelimiter\": \",\"",
+                    "  }",
+                    "}"),
+        "[]",
+        0, // minTimestamp
+        Granularities.NONE,
+        200, // maxRowCount
+        String.join("\n",
+                    "{",
+                    "  \"queryType\": \"groupBy\",",
+                    "  \"dataSource\": \"test_datasource\",",
+                    "  \"granularity\": \"ALL\",",
+                    "  \"dimensions\": [],",
+                    "  \"aggregations\": [",
+                    "    {\"type\": \"HLLSketchBuild\", \"name\": \"sketch\", \"fieldName\": \"multiDim\"}",
+                    "  ],",
+                    "  \"intervals\": [\"2017-01-01T00:00:00.000Z/2017-01-31T00:00:00.000Z\"]",
+                    "}"));
+    List<Row> results = seq.toList();
+    Assert.assertEquals(1, results.size());
+    Row row = results.get(0);
+    Assert.assertEquals(14, (double) row.getMetric("sketch"), 0.1);
+  }
 }
diff --git a/extensions-core/datasketches/src/test/resources/hll/hll_raw.tsv b/extensions-core/datasketches/src/test/resources/hll/hll_raw.tsv
index 476c857..42c01cf 100644
--- a/extensions-core/datasketches/src/test/resources/hll/hll_raw.tsv
+++ b/extensions-core/datasketches/src/test/resources/hll/hll_raw.tsv
@@ -1,200 +1,200 @@
-20170101	7	0
-20170101	7	1
-20170101	9	2
-20170101	9	3
-20170101	4	4
-20170101	4	5
-20170101	1	6
-20170101	1	7
-20170101	1	8
-20170101	1	9
-20170101	10	10
-20170101	10	11
-20170101	9	12
-20170101	9	13
-20170101	5	14
-20170101	5	15
-20170101	3	16
-20170101	3	17
-20170101	4	18
-20170101	4	19
-20170101	9	20
-20170101	9	21
-20170101	1	22
-20170101	1	23
-20170101	9	24
-20170101	9	25
-20170101	10	26
-20170101	10	27
-20170101	3	28
-20170101	3	29
-20170101	10	30
-20170101	10	31
-20170101	10	32
-20170101	10	33
-20170101	2	34
-20170101	2	35
-20170101	10	36
-20170101	10	37
-20170101	9	38
-20170101	9	39
-20170101	1	40
-20170101	1	41
-20170101	5	42
-20170101	5	43
-20170101	7	44
-20170101	7	45
-20170101	7	46
-20170101	7	47
-20170101	7	48
-20170101	7	49
-20170101	9	50
-20170101	9	51
-20170101	5	52
-20170101	5	53
-20170101	6	54
-20170101	6	55
-20170101	6	56
-20170101	6	57
-20170101	5	58
-20170101	5	59
-20170101	3	60
-20170101	3	61
-20170101	3	62
-20170101	3	63
-20170101	2	64
-20170101	2	65
-20170101	6	66
-20170101	6	67
-20170101	3	68
-20170101	3	69
-20170101	2	70
-20170101	2	71
-20170101	3	72
-20170101	3	73
-20170101	8	74
-20170101	8	75
-20170101	4	76
-20170101	4	77
-20170101	6	78
-20170101	6	79
-20170101	10	80
-20170101	10	81
-20170101	5	82
-20170101	5	83
-20170101	1	84
-20170101	1	85
-20170101	3	86
-20170101	3	87
-20170101	9	88
-20170101	9	89
-20170101	2	90
-20170101	2	91
-20170101	9	92
-20170101	9	93
-20170101	4	94
-20170101	4	95
-20170101	2	96
-20170101	2	97
-20170101	5	98
-20170101	5	99
-20170101	8	100
-20170101	8	101
-20170101	8	102
-20170101	8	103
-20170101	7	104
-20170101	7	105
-20170101	6	106
-20170101	6	107
-20170101	1	108
-20170101	1	109
-20170101	5	110
-20170101	5	111
-20170101	5	112
-20170101	5	113
-20170101	2	114
-20170101	2	115
-20170101	1	116
-20170101	1	117
-20170101	5	118
-20170101	5	119
-20170101	10	120
-20170101	10	121
-20170101	8	122
-20170101	8	123
-20170101	10	124
-20170101	10	125
-20170101	4	126
-20170101	4	127
-20170101	8	128
-20170101	8	129
-20170101	2	130
-20170101	2	131
-20170101	9	132
-20170101	9	133
-20170101	2	134
-20170101	2	135
-20170101	8	136
-20170101	8	137
-20170101	1	138
-20170101	1	139
-20170101	2	140
-20170101	2	141
-20170101	3	142
-20170101	3	143
-20170101	8	144
-20170101	8	145
-20170101	6	146
-20170101	6	147
-20170101	3	148
-20170101	3	149
-20170101	1	150
-20170101	1	151
-20170101	4	152
-20170101	4	153
-20170101	7	154
-20170101	7	155
-20170101	6	156
-20170101	6	157
-20170101	6	158
-20170101	6	159
-20170101	10	160
-20170101	10	161
-20170101	7	162
-20170101	7	163
-20170101	8	164
-20170101	8	165
-20170101	2	166
-20170101	2	167
-20170101	6	168
-20170101	6	169
-20170101	2	170
-20170101	2	171
-20170101	7	172
-20170101	7	173
-20170101	8	174
-20170101	8	175
-20170101	3	176
-20170101	3	177
-20170101	1	178
-20170101	1	179
-20170101	10	180
-20170101	10	181
-20170101	3	182
-20170101	3	183
-20170101	6	184
-20170101	6	185
-20170101	5	186
-20170101	5	187
-20170101	3	188
-20170101	3	189
-20170101	9	190
-20170101	9	191
-20170101	6	192
-20170101	6	193
-20170101	9	194
-20170101	9	195
-20170101	5	196
-20170101	5	197
-20170101	2	198
-20170101	2	199
+20170101	2	2,3,4,5,6	0
+20170101	2	2,3,4,5,6	1
+20170101	4	4,5,6,7,8	2
+20170101	4	4,5,6,7,8	3
+20170101	8	8,9,10,11,12	4
+20170101	8	8,9,10,11,12	5
+20170101	8	8,9,10,11,12	6
+20170101	8	8,9,10,11,12	7
+20170101	6	6,7,8,9,10	8
+20170101	6	6,7,8,9,10	9
+20170101	5	5,6,7,8,9	10
+20170101	5	5,6,7,8,9	11
+20170101	10	10,11,12,13,14	12
+20170101	10	10,11,12,13,14	13
+20170101	3	3,4,5,6,7	14
+20170101	3	3,4,5,6,7	15
+20170101	4	4,5,6,7,8	16
+20170101	4	4,5,6,7,8	17
+20170101	3	3,4,5,6,7	18
+20170101	3	3,4,5,6,7	19
+20170101	10	10,11,12,13,14	20
+20170101	10	10,11,12,13,14	21
+20170101	4	4,5,6,7,8	22
+20170101	4	4,5,6,7,8	23
+20170101	4	4,5,6,7,8	24
+20170101	4	4,5,6,7,8	25
+20170101	8	8,9,10,11,12	26
+20170101	8	8,9,10,11,12	27
+20170101	6	6,7,8,9,10	28
+20170101	6	6,7,8,9,10	29
+20170101	4	4,5,6,7,8	30
+20170101	4	4,5,6,7,8	31
+20170101	6	6,7,8,9,10	32
+20170101	6	6,7,8,9,10	33
+20170101	6	6,7,8,9,10	34
+20170101	6	6,7,8,9,10	35
+20170101	10	10,11,12,13,14	36
+20170101	10	10,11,12,13,14	37
+20170101	4	4,5,6,7,8	38
+20170101	4	4,5,6,7,8	39
+20170101	8	8,9,10,11,12	40
+20170101	8	8,9,10,11,12	41
+20170101	10	10,11,12,13,14	42
+20170101	10	10,11,12,13,14	43
+20170101	1	1,2,3,4,5	44
+20170101	1	1,2,3,4,5	45
+20170101	3	3,4,5,6,7	46
+20170101	3	3,4,5,6,7	47
+20170101	3	3,4,5,6,7	48
+20170101	3	3,4,5,6,7	49
+20170101	4	4,5,6,7,8	50
+20170101	4	4,5,6,7,8	51
+20170101	4	4,5,6,7,8	52
+20170101	4	4,5,6,7,8	53
+20170101	7	7,8,9,10,11	54
+20170101	7	7,8,9,10,11	55
+20170101	7	7,8,9,10,11	56
+20170101	7	7,8,9,10,11	57
+20170101	3	3,4,5,6,7	58
+20170101	3	3,4,5,6,7	59
+20170101	9	9,10,11,12,13	60
+20170101	9	9,10,11,12,13	61
+20170101	6	6,7,8,9,10	62
+20170101	6	6,7,8,9,10	63
+20170101	7	7,8,9,10,11	64
+20170101	7	7,8,9,10,11	65
+20170101	5	5,6,7,8,9	66
+20170101	5	5,6,7,8,9	67
+20170101	7	7,8,9,10,11	68
+20170101	7	7,8,9,10,11	69
+20170101	3	3,4,5,6,7	70
+20170101	3	3,4,5,6,7	71
+20170101	7	7,8,9,10,11	72
+20170101	7	7,8,9,10,11	73
+20170101	9	9,10,11,12,13	74
+20170101	9	9,10,11,12,13	75
+20170101	5	5,6,7,8,9	76
+20170101	5	5,6,7,8,9	77
+20170101	7	7,8,9,10,11	78
+20170101	7	7,8,9,10,11	79
+20170101	2	2,3,4,5,6	80
+20170101	2	2,3,4,5,6	81
+20170101	6	6,7,8,9,10	82
+20170101	6	6,7,8,9,10	83
+20170101	10	10,11,12,13,14	84
+20170101	10	10,11,12,13,14	85
+20170101	6	6,7,8,9,10	86
+20170101	6	6,7,8,9,10	87
+20170101	6	6,7,8,9,10	88
+20170101	6	6,7,8,9,10	89
+20170101	8	8,9,10,11,12	90
+20170101	8	8,9,10,11,12	91
+20170101	4	4,5,6,7,8	92
+20170101	4	4,5,6,7,8	93
+20170101	4	4,5,6,7,8	94
+20170101	4	4,5,6,7,8	95
+20170101	9	9,10,11,12,13	96
+20170101	9	9,10,11,12,13	97
+20170101	1	1,2,3,4,5	98
+20170101	1	1,2,3,4,5	99
+20170101	1	1,2,3,4,5	100
+20170101	1	1,2,3,4,5	101
+20170101	6	6,7,8,9,10	102
+20170101	6	6,7,8,9,10	103
+20170101	6	6,7,8,9,10	104
+20170101	6	6,7,8,9,10	105
+20170101	2	2,3,4,5,6	106
+20170101	2	2,3,4,5,6	107
+20170101	5	5,6,7,8,9	108
+20170101	5	5,6,7,8,9	109
+20170101	5	5,6,7,8,9	110
+20170101	5	5,6,7,8,9	111
+20170101	3	3,4,5,6,7	112
+20170101	3	3,4,5,6,7	113
+20170101	3	3,4,5,6,7	114
+20170101	3	3,4,5,6,7	115
+20170101	1	1,2,3,4,5	116
+20170101	1	1,2,3,4,5	117
+20170101	6	6,7,8,9,10	118
+20170101	6	6,7,8,9,10	119
+20170101	5	5,6,7,8,9	120
+20170101	5	5,6,7,8,9	121
+20170101	10	10,11,12,13,14	122
+20170101	10	10,11,12,13,14	123
+20170101	4	4,5,6,7,8	124
+20170101	4	4,5,6,7,8	125
+20170101	4	4,5,6,7,8	126
+20170101	4	4,5,6,7,8	127
+20170101	8	8,9,10,11,12	128
+20170101	8	8,9,10,11,12	129
+20170101	6	6,7,8,9,10	130
+20170101	6	6,7,8,9,10	131
+20170101	7	7,8,9,10,11	132
+20170101	7	7,8,9,10,11	133
+20170101	7	7,8,9,10,11	134
+20170101	7	7,8,9,10,11	135
+20170101	8	8,9,10,11,12	136
+20170101	8	8,9,10,11,12	137
+20170101	7	7,8,9,10,11	138
+20170101	7	7,8,9,10,11	139
+20170101	4	4,5,6,7,8	140
+20170101	4	4,5,6,7,8	141
+20170101	7	7,8,9,10,11	142
+20170101	7	7,8,9,10,11	143
+20170101	3	3,4,5,6,7	144
+20170101	3	3,4,5,6,7	145
+20170101	7	7,8,9,10,11	146
+20170101	7	7,8,9,10,11	147
+20170101	5	5,6,7,8,9	148
+20170101	5	5,6,7,8,9	149
+20170101	9	9,10,11,12,13	150
+20170101	9	9,10,11,12,13	151
+20170101	1	1,2,3,4,5	152
+20170101	1	1,2,3,4,5	153
+20170101	8	8,9,10,11,12	154
+20170101	8	8,9,10,11,12	155
+20170101	4	4,5,6,7,8	156
+20170101	4	4,5,6,7,8	157
+20170101	2	2,3,4,5,6	158
+20170101	2	2,3,4,5,6	159
+20170101	3	3,4,5,6,7	160
+20170101	3	3,4,5,6,7	161
+20170101	5	5,6,7,8,9	162
+20170101	5	5,6,7,8,9	163
+20170101	1	1,2,3,4,5	164
+20170101	1	1,2,3,4,5	165
+20170101	6	6,7,8,9,10	166
+20170101	6	6,7,8,9,10	167
+20170101	5	5,6,7,8,9	168
+20170101	5	5,6,7,8,9	169
+20170101	5	5,6,7,8,9	170
+20170101	5	5,6,7,8,9	171
+20170101	5	5,6,7,8,9	172
+20170101	5	5,6,7,8,9	173
+20170101	9	9,10,11,12,13	174
+20170101	9	9,10,11,12,13	175
+20170101	5	5,6,7,8,9	176
+20170101	5	5,6,7,8,9	177
+20170101	7	7,8,9,10,11	178
+20170101	7	7,8,9,10,11	179
+20170101	9	9,10,11,12,13	180
+20170101	9	9,10,11,12,13	181
+20170101	9	9,10,11,12,13	182
+20170101	9	9,10,11,12,13	183
+20170101	2	2,3,4,5,6	184
+20170101	2	2,3,4,5,6	185
+20170101	5	5,6,7,8,9	186
+20170101	5	5,6,7,8,9	187
+20170101	10	10,11,12,13,14	188
+20170101	10	10,11,12,13,14	189
+20170101	5	5,6,7,8,9	190
+20170101	5	5,6,7,8,9	191
+20170101	2	2,3,4,5,6	192
+20170101	2	2,3,4,5,6	193
+20170101	8	8,9,10,11,12	194
+20170101	8	8,9,10,11,12	195
+20170101	4	4,5,6,7,8	196
+20170101	4	4,5,6,7,8	197
+20170101	4	4,5,6,7,8	198
+20170101	4	4,5,6,7,8	199
diff --git a/extensions-core/datasketches/src/test/resources/hll/hll_sketches.tsv b/extensions-core/datasketches/src/test/resources/hll/hll_sketches.tsv
index bae1df5..cc213e0 100644
--- a/extensions-core/datasketches/src/test/resources/hll/hll_sketches.tsv
+++ b/extensions-core/datasketches/src/test/resources/hll/hll_sketches.tsv
@@ -1,100 +1,100 @@
-20170101	7	AgEHDAMIAgDL18IEK/L7Bg==
-20170101	9	AgEHDAMIAgCGL/kNdYFmBw==
-20170101	4	AgEHDAMIAgCBvF0Ge2XmCA==
-20170101	1	AgEHDAMIAgD8LUIKwekXBQ==
-20170101	1	AgEHDAMIAgDSFnMHNKJhDg==
-20170101	10	AgEHDAMIAgCwW0YS9nHyBg==
-20170101	9	AgEHDAMIAgBGSrcErjyIEQ==
-20170101	5	AgEHDAMIAgB8dLkH21ItBA==
-20170101	3	AgEHDAMIAgBuxTQGzvBbHw==
-20170101	4	AgEHDAMIAgC4P/kHw91RBA==
-20170101	9	AgEHDAMIAgDIeiQExLWfBw==
-20170101	1	AgEHDAMIAgA2RwkHnuSbGA==
-20170101	9	AgEHDAMIAgC4VqkM7y33Bw==
-20170101	10	AgEHDAMIAgAiO+sFxhlqBA==
-20170101	3	AgEHDAMIAgA1qTEEWX/UDQ==
-20170101	10	AgEHDAMIAgCXu2AajcSJCQ==
-20170101	10	AgEHDAMIAgCeLWoHzqDvBQ==
-20170101	2	AgEHDAMIAgCqc4cWhGnMBQ==
-20170101	10	AgEHDAMIAgBt5R0Hti8JBg==
-20170101	9	AgEHDAMIAgCUB8IEMiViBQ==
-20170101	1	AgEHDAMIAgCTVDEFAiK0BA==
-20170101	5	AgEHDAMIAgAavNAFj8OwBg==
-20170101	7	AgEHDAMIAgDXeDQGMENfDg==
-20170101	7	AgEHDAMIAgCheuQJP5BIBA==
-20170101	7	AgEHDAMIAgAsRgUGxmI0Bw==
-20170101	9	AgEHDAMIAgDDnJofYZmnBw==
-20170101	5	AgEHDAMIAgCFiqsL1VKVCQ==
-20170101	6	AgEHDAMIAgDnUe4E2xeaCg==
-20170101	6	AgEHDAMIAgCwPp0H0U97BQ==
-20170101	5	AgEHDAMIAgCyqLgGqj5jBw==
-20170101	3	AgEHDAMIAgBkPRYFjUmsBQ==
-20170101	3	AgEHDAMIAgDnz5UX753zEA==
-20170101	2	AgEHDAMIAgCj85wK1ZcUBw==
-20170101	6	AgEHDAMIAgBkE7cG3Z96Cw==
-20170101	3	AgEHDAMIAgD8kLYF7eg9BQ==
-20170101	2	AgEHDAMIAgDVIhcT4DFZEA==
-20170101	3	AgEHDAMIAgAvGhMHFUS2Bw==
-20170101	8	AgEHDAMIAgDyeFwMqTu1Bw==
-20170101	4	AgEHDAMIAgDe2xkLtUytDw==
-20170101	6	AgEHDAMIAgDppI4TO2muBA==
-20170101	10	AgEHDAMIAgCdCmwPh7aqBA==
-20170101	5	AgEHDAMIAgBqQDsN4K6sCA==
-20170101	1	AgEHDAMIAgCUwyEEmog3Bw==
-20170101	3	AgEHDAMIAgAgZuMSvhmBBQ==
-20170101	9	AgEHDAMIAgCkeLMHu8kBBQ==
-20170101	2	AgEHDAMIAgDUi4wEmUlCBA==
-20170101	9	AgEHDAMIAgBl34oQH7oiCA==
-20170101	4	AgEHDAMIAgBvy0oHqRolBw==
-20170101	2	AgEHDAMIAgDfVngR3FoBBg==
-20170101	5	AgEHDAMIAgANX3oJBnNlBA==
-20170101	8	AgEHDAMIAgCJXbIMSe1qBg==
-20170101	8	AgEHDAMIAgDmC6MLGbKkCQ==
-20170101	7	AgEHDAMIAgDaXBIHJM/ODQ==
-20170101	6	AgEHDAMIAgDytqcL4O1JBw==
-20170101	1	AgEHDAMIAgA5iygH14ydDw==
-20170101	5	AgEHDAMIAgC+9PgGrbfMCA==
-20170101	5	AgEHDAMIAgBTYroEz+FIBA==
-20170101	2	AgEHDAMIAgD8mjERJV6mCQ==
-20170101	1	AgEHDAMIAgCXvygMqE7tBA==
-20170101	5	AgEHDAMIAgB7iqkJe8v2Bw==
-20170101	10	AgEHDAMIAgDhpXQGvSBSDg==
-20170101	8	AgEHDAMIAgCKYmgWw7A4BA==
-20170101	10	AgEHDAMIAgB9IzwK+a6eDw==
-20170101	4	AgEHDAMIAgDCcc8FL1N2Ew==
-20170101	8	AgEHDAMIAgAgqRkO6dIoBQ==
-20170101	2	AgEHDAMIAgBTg9oHmrtjBA==
-20170101	9	AgEHDAMIAgA3rOcHqVgzCQ==
-20170101	2	AgEHDAMIAgAUx4gPY+ISCA==
-20170101	8	AgEHDAMIAgDZG0oIywPsBg==
-20170101	1	AgEHDAMIAgD7acMG1DsKBw==
-20170101	2	AgEHDAMIAgCwEtsGuX8+BQ==
-20170101	3	AgEHDAMIAgD0Pd8PzklzBQ==
-20170101	8	AgEHDAMIAgAbIqkIFwV7BA==
-20170101	6	AgEHDAMIAgCkb6sG1s/xBg==
-20170101	3	AgEHDAMIAgDTE2cFR9azDQ==
-20170101	1	AgEHDAMIAgAqOfEG8nwcBg==
-20170101	4	AgEHDAMIAgD00/IL3fbbBg==
-20170101	7	AgEHDAMIAgA2KrIECxROBA==
-20170101	6	AgEHDAMIAgD16WYNk+yiCQ==
-20170101	6	AgEHDAMIAgBxQ8gJXnq7DA==
-20170101	10	AgEHDAMIAgDFsaYRga8yBA==
-20170101	7	AgEHDAMIAgC4AfwSdF5pCg==
-20170101	8	AgEHDAMIAgDSfIwRH3iCBw==
-20170101	2	AgEHDAMIAgCIJ6AETvjiBQ==
-20170101	6	AgEHDAMIAgAwRVkLPtleBg==
-20170101	2	AgEHDAMIAgBwyXYHn6ugDA==
-20170101	7	AgEHDAMIAgCUfqEUQPsNDg==
-20170101	8	AgEHDAMIAgC/zjYUuOxvCQ==
-20170101	3	AgEHDAMIAgAFiFMPBkJKCA==
-20170101	1	AgEHDAMIAgAu5AsOgZ6FBw==
-20170101	10	AgEHDAMIAgB532UEFy4gBg==
-20170101	3	AgEHDAMIAgDKjF4FQdfXCA==
-20170101	6	AgEHDAMIAgCTxHYFDF8FBQ==
-20170101	5	AgEHDAMIAgARy64GgMHzCQ==
-20170101	3	AgEHDAMIAgBrzP4EBn3vEQ==
-20170101	9	AgEHDAMIAgCmEVEEdwL+Bw==
-20170101	6	AgEHDAMIAgBUe0cPtxnPBw==
-20170101	9	AgEHDAMIAgDNWtkMSizzBA==
-20170101	5	AgEHDAMIAgDzofoJO729DA==
-20170101	2	AgEHDAMIAgDeUy0E+fjxBA==
+20170101	2	2,3,4,5,6	AgEHDAMIAgDL18IEK/L7Bg==
+20170101	4	4,5,6,7,8	AgEHDAMIAgCGL/kNdYFmBw==
+20170101	8	8,9,10,11,12	AgEHDAMIAgCBvF0Ge2XmCA==
+20170101	8	8,9,10,11,12	AgEHDAMIAgD8LUIKwekXBQ==
+20170101	6	6,7,8,9,10	AgEHDAMIAgDSFnMHNKJhDg==
+20170101	5	5,6,7,8,9	AgEHDAMIAgCwW0YS9nHyBg==
+20170101	10	10,11,12,13,14	AgEHDAMIAgBGSrcErjyIEQ==
+20170101	3	3,4,5,6,7	AgEHDAMIAgB8dLkH21ItBA==
+20170101	4	4,5,6,7,8	AgEHDAMIAgBuxTQGzvBbHw==
+20170101	3	3,4,5,6,7	AgEHDAMIAgC4P/kHw91RBA==
+20170101	10	10,11,12,13,14	AgEHDAMIAgDIeiQExLWfBw==
+20170101	4	4,5,6,7,8	AgEHDAMIAgA2RwkHnuSbGA==
+20170101	4	4,5,6,7,8	AgEHDAMIAgC4VqkM7y33Bw==
+20170101	8	8,9,10,11,12	AgEHDAMIAgAiO+sFxhlqBA==
+20170101	6	6,7,8,9,10	AgEHDAMIAgA1qTEEWX/UDQ==
+20170101	4	4,5,6,7,8	AgEHDAMIAgCXu2AajcSJCQ==
+20170101	6	6,7,8,9,10	AgEHDAMIAgCeLWoHzqDvBQ==
+20170101	6	6,7,8,9,10	AgEHDAMIAgCqc4cWhGnMBQ==
+20170101	10	10,11,12,13,14	AgEHDAMIAgBt5R0Hti8JBg==
+20170101	4	4,5,6,7,8	AgEHDAMIAgCUB8IEMiViBQ==
+20170101	8	8,9,10,11,12	AgEHDAMIAgCTVDEFAiK0BA==
+20170101	10	10,11,12,13,14	AgEHDAMIAgAavNAFj8OwBg==
+20170101	1	1,2,3,4,5	AgEHDAMIAgDXeDQGMENfDg==
+20170101	3	3,4,5,6,7	AgEHDAMIAgCheuQJP5BIBA==
+20170101	3	3,4,5,6,7	AgEHDAMIAgAsRgUGxmI0Bw==
+20170101	4	4,5,6,7,8	AgEHDAMIAgDDnJofYZmnBw==
+20170101	4	4,5,6,7,8	AgEHDAMIAgCFiqsL1VKVCQ==
+20170101	7	7,8,9,10,11	AgEHDAMIAgDnUe4E2xeaCg==
+20170101	7	7,8,9,10,11	AgEHDAMIAgCwPp0H0U97BQ==
+20170101	3	3,4,5,6,7	AgEHDAMIAgCyqLgGqj5jBw==
+20170101	9	9,10,11,12,13	AgEHDAMIAgBkPRYFjUmsBQ==
+20170101	6	6,7,8,9,10	AgEHDAMIAgDnz5UX753zEA==
+20170101	7	7,8,9,10,11	AgEHDAMIAgCj85wK1ZcUBw==
+20170101	5	5,6,7,8,9	AgEHDAMIAgBkE7cG3Z96Cw==
+20170101	7	7,8,9,10,11	AgEHDAMIAgD8kLYF7eg9BQ==
+20170101	3	3,4,5,6,7	AgEHDAMIAgDVIhcT4DFZEA==
+20170101	7	7,8,9,10,11	AgEHDAMIAgAvGhMHFUS2Bw==
+20170101	9	9,10,11,12,13	AgEHDAMIAgDyeFwMqTu1Bw==
+20170101	5	5,6,7,8,9	AgEHDAMIAgDe2xkLtUytDw==
+20170101	7	7,8,9,10,11	AgEHDAMIAgDppI4TO2muBA==
+20170101	2	2,3,4,5,6	AgEHDAMIAgCdCmwPh7aqBA==
+20170101	6	6,7,8,9,10	AgEHDAMIAgBqQDsN4K6sCA==
+20170101	10	10,11,12,13,14	AgEHDAMIAgCUwyEEmog3Bw==
+20170101	6	6,7,8,9,10	AgEHDAMIAgAgZuMSvhmBBQ==
+20170101	6	6,7,8,9,10	AgEHDAMIAgCkeLMHu8kBBQ==
+20170101	8	8,9,10,11,12	AgEHDAMIAgDUi4wEmUlCBA==
+20170101	4	4,5,6,7,8	AgEHDAMIAgBl34oQH7oiCA==
+20170101	4	4,5,6,7,8	AgEHDAMIAgBvy0oHqRolBw==
+20170101	9	9,10,11,12,13	AgEHDAMIAgDfVngR3FoBBg==
+20170101	1	1,2,3,4,5	AgEHDAMIAgANX3oJBnNlBA==
+20170101	1	1,2,3,4,5	AgEHDAMIAgCJXbIMSe1qBg==
+20170101	6	6,7,8,9,10	AgEHDAMIAgDmC6MLGbKkCQ==
+20170101	6	6,7,8,9,10	AgEHDAMIAgDaXBIHJM/ODQ==
+20170101	2	2,3,4,5,6	AgEHDAMIAgDytqcL4O1JBw==
+20170101	5	5,6,7,8,9	AgEHDAMIAgA5iygH14ydDw==
+20170101	5	5,6,7,8,9	AgEHDAMIAgC+9PgGrbfMCA==
+20170101	3	3,4,5,6,7	AgEHDAMIAgBTYroEz+FIBA==
+20170101	3	3,4,5,6,7	AgEHDAMIAgD8mjERJV6mCQ==
+20170101	1	1,2,3,4,5	AgEHDAMIAgCXvygMqE7tBA==
+20170101	6	6,7,8,9,10	AgEHDAMIAgB7iqkJe8v2Bw==
+20170101	5	5,6,7,8,9	AgEHDAMIAgDhpXQGvSBSDg==
+20170101	10	10,11,12,13,14	AgEHDAMIAgCKYmgWw7A4BA==
+20170101	4	4,5,6,7,8	AgEHDAMIAgB9IzwK+a6eDw==
+20170101	4	4,5,6,7,8	AgEHDAMIAgDCcc8FL1N2Ew==
+20170101	8	8,9,10,11,12	AgEHDAMIAgAgqRkO6dIoBQ==
+20170101	6	6,7,8,9,10	AgEHDAMIAgBTg9oHmrtjBA==
+20170101	7	7,8,9,10,11	AgEHDAMIAgA3rOcHqVgzCQ==
+20170101	7	7,8,9,10,11	AgEHDAMIAgAUx4gPY+ISCA==
+20170101	8	8,9,10,11,12	AgEHDAMIAgDZG0oIywPsBg==
+20170101	7	7,8,9,10,11	AgEHDAMIAgD7acMG1DsKBw==
+20170101	4	4,5,6,7,8	AgEHDAMIAgCwEtsGuX8+BQ==
+20170101	7	7,8,9,10,11	AgEHDAMIAgD0Pd8PzklzBQ==
+20170101	3	3,4,5,6,7	AgEHDAMIAgAbIqkIFwV7BA==
+20170101	7	7,8,9,10,11	AgEHDAMIAgCkb6sG1s/xBg==
+20170101	5	5,6,7,8,9	AgEHDAMIAgDTE2cFR9azDQ==
+20170101	9	9,10,11,12,13	AgEHDAMIAgAqOfEG8nwcBg==
+20170101	1	1,2,3,4,5	AgEHDAMIAgD00/IL3fbbBg==
+20170101	8	8,9,10,11,12	AgEHDAMIAgA2KrIECxROBA==
+20170101	4	4,5,6,7,8	AgEHDAMIAgD16WYNk+yiCQ==
+20170101	2	2,3,4,5,6	AgEHDAMIAgBxQ8gJXnq7DA==
+20170101	3	3,4,5,6,7	AgEHDAMIAgDFsaYRga8yBA==
+20170101	5	5,6,7,8,9	AgEHDAMIAgC4AfwSdF5pCg==
+20170101	1	1,2,3,4,5	AgEHDAMIAgDSfIwRH3iCBw==
+20170101	6	6,7,8,9,10	AgEHDAMIAgCIJ6AETvjiBQ==
+20170101	5	5,6,7,8,9	AgEHDAMIAgAwRVkLPtleBg==
+20170101	5	5,6,7,8,9	AgEHDAMIAgBwyXYHn6ugDA==
+20170101	5	5,6,7,8,9	AgEHDAMIAgCUfqEUQPsNDg==
+20170101	9	9,10,11,12,13	AgEHDAMIAgC/zjYUuOxvCQ==
+20170101	5	5,6,7,8,9	AgEHDAMIAgAFiFMPBkJKCA==
+20170101	7	7,8,9,10,11	AgEHDAMIAgAu5AsOgZ6FBw==
+20170101	9	9,10,11,12,13	AgEHDAMIAgB532UEFy4gBg==
+20170101	9	9,10,11,12,13	AgEHDAMIAgDKjF4FQdfXCA==
+20170101	2	2,3,4,5,6	AgEHDAMIAgCTxHYFDF8FBQ==
+20170101	5	5,6,7,8,9	AgEHDAMIAgARy64GgMHzCQ==
+20170101	10	10,11,12,13,14	AgEHDAMIAgBrzP4EBn3vEQ==
+20170101	5	5,6,7,8,9	AgEHDAMIAgCmEVEEdwL+Bw==
+20170101	2	2,3,4,5,6	AgEHDAMIAgBUe0cPtxnPBw==
+20170101	8	8,9,10,11,12	AgEHDAMIAgDNWtkMSizzBA==
+20170101	4	4,5,6,7,8	AgEHDAMIAgDzofoJO729DA==
+20170101	4	4,5,6,7,8	AgEHDAMIAgDeUy0E+fjxBA==


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org