KYLIN-2400 code review
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/576d2dd3 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/576d2dd3 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/576d2dd3 Branch: refs/heads/KYLIN-2394 Commit: 576d2dd352b11f428db1d6308e35350a2fca122e Parents: e769bfa Author: Li Yang <liy...@apache.org> Authored: Tue Jan 17 11:06:26 2017 +0800 Committer: Li Yang <liy...@apache.org> Committed: Tue Jan 17 11:06:26 2017 +0800 ---------------------------------------------------------------------- .../apache/kylin/common/util/Dictionary.java | 42 +++----------------- .../apache/kylin/dict/AppendTrieDictionary.java | 39 +++++++----------- .../apache/kylin/dict/DictionaryGenerator.java | 2 +- .../kylin/dict/NumberDictionaryBuilder.java | 10 ++--- .../dict/NumberDictionaryForestBuilder.java | 7 +++- .../apache/kylin/dict/TrieDictionaryForest.java | 2 +- .../apache/kylin/dict/NumberDictionaryTest.java | 4 +- .../kylin/dict/TimeStrDictionaryTest.java | 8 ++-- .../kylin/dict/TrieDictionaryForestTest.java | 2 +- .../kylin/measure/raw/RawMeasureType.java | 3 ++ .../storage/gtrecord/DictGridTableTest.java | 3 +- .../mr/steps/NumberDictionaryForestTest.java | 2 +- 12 files changed, 43 insertions(+), 81 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/576d2dd3/core-common/src/main/java/org/apache/kylin/common/util/Dictionary.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/Dictionary.java b/core-common/src/main/java/org/apache/kylin/common/util/Dictionary.java index 9d675f9..4b5c1c4 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/Dictionary.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/Dictionary.java @@ -94,13 +94,12 @@ abstract public class Dictionary<T> implements Serializable { final public int getIdFromValue(T value, int roundingFlag) throws IllegalArgumentException { if (isNullObjectForm(value)) return nullId(); - else { - int id = getIdFromValueImpl(value, roundingFlag); - if(id == -1){ - throw new IllegalArgumentException("Value : " + value + "no exists"); - } - return id; + + int id = getIdFromValueImpl(value, roundingFlag); + if (id == -1) { + throw new IllegalArgumentException("Value : " + value + " not exists"); } + return id; } final public boolean containsValue(T value) throws IllegalArgumentException { @@ -137,37 +136,6 @@ abstract public class Dictionary<T> implements Serializable { abstract protected T getValueFromIdImpl(int id); - /** - * Convenient form of - * <code>getIdFromValueBytes(value, offset, len, 0)</code> - */ - - - /** - * A lower level API, return ID integer from raw value bytes. In case of not found - * <p> - * - if roundingFlag=0, throw IllegalArgumentException; <br> - * - if roundingFlag<0, the closest smaller ID integer if exist; <br> - * - if roundingFlag>0, the closest bigger ID integer if exist. <br> - * <p> - * Bypassing the cache layer, this could be significantly slower than getIdFromValue(T value). - * - * @throws IllegalArgumentException - * if value is not found in dictionary and rounding is off; - * or if rounding cannot find a smaller or bigger ID - */ - - /** - * A lower level API, get byte values from ID, return the number of bytes - * written. Bypassing the cache layer, this could be significantly slower - * than getIdFromValue(T value). - * - * @return size of value bytes, 0 if empty string, -1 if null - * - * @throws IllegalArgumentException - * if ID is not found in dictionary - */ - abstract public void dump(PrintStream out); public int nullId() { http://git-wip-us.apache.org/repos/asf/kylin/blob/576d2dd3/core-dictionary/src/main/java/org/apache/kylin/dict/AppendTrieDictionary.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/AppendTrieDictionary.java b/core-dictionary/src/main/java/org/apache/kylin/dict/AppendTrieDictionary.java index 3aef967..faffcc0 100644 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/AppendTrieDictionary.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/AppendTrieDictionary.java @@ -91,14 +91,11 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { volatile private TreeMap<DictSliceKey, DictSlice> dictSliceMap; - // Constructor both for build and deserialize public AppendTrieDictionary() { enableCache(); } - - public void initParams(String baseDir, int baseId, int maxId, int maxValueLength, int nValues, BytesConverter bytesConverter) throws IOException { this.baseDir = baseDir; this.baseId = baseId; @@ -111,8 +108,7 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { public void initDictSliceMap(CachedTreeMap dictMap) throws IOException { int maxVersions = KylinConfig.getInstanceFromEnv().getAppendDictMaxVersions(); long versionTTL = KylinConfig.getInstanceFromEnv().getAppendDictVersionTTL(); - CachedTreeMap newDictSliceMap = CachedTreeMap.CachedTreeMapBuilder.newBuilder().maxSize(1).baseDir(baseDir) - .immutable(true).maxVersions(maxVersions).versionTTL(versionTTL).keyClazz(DictSliceKey.class).valueClazz(DictSlice.class).build(); + CachedTreeMap newDictSliceMap = CachedTreeMap.CachedTreeMapBuilder.newBuilder().maxSize(1).baseDir(baseDir).immutable(true).maxVersions(maxVersions).versionTTL(versionTTL).keyClazz(DictSliceKey.class).valueClazz(DictSlice.class).build(); newDictSliceMap.loadEntry(dictMap); this.dictSliceMap = newDictSliceMap; } @@ -210,7 +206,7 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { this.sizeChildOffset = headIn.read(); this.sizeOfId = headIn.read(); - this.childOffsetMask = ~(((long)(BIT_IS_LAST_CHILD | BIT_IS_END_OF_VALUE)) << ((sizeChildOffset - 1) * 8)); + this.childOffsetMask = ~(((long) (BIT_IS_LAST_CHILD | BIT_IS_END_OF_VALUE)) << ((sizeChildOffset - 1) * 8)); this.firstByteOffset = sizeChildOffset + 1; // the offset from begin of node to its first value byte } catch (Exception e) { if (e instanceof RuntimeException) @@ -229,7 +225,7 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { if (checkFlag(nodeOffset, BIT_IS_END_OF_VALUE)) { break; } - nodeOffset = headSize + (int)(BytesUtil.readLong(trieBytes, nodeOffset, sizeChildOffset) & childOffsetMask); + nodeOffset = headSize + (int) (BytesUtil.readLong(trieBytes, nodeOffset, sizeChildOffset) & childOffsetMask); if (nodeOffset == headSize) { break; } @@ -271,7 +267,7 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { } // find a child to continue - int c = headSize + (int)(BytesUtil.readLong(trieBytes, n, sizeChildOffset) & childOffsetMask); + int c = headSize + (int) (BytesUtil.readLong(trieBytes, n, sizeChildOffset) & childOffsetMask); if (c == headSize) // has no children return -1; byte inpByte = inp[o]; @@ -310,7 +306,7 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { DictNode root = null; while (true) { int p = n + firstByteOffset; - int childOffset = (int)(BytesUtil.readLong(trieBytes, n, sizeChildOffset) & childOffsetMask); + int childOffset = (int) (BytesUtil.readLong(trieBytes, n, sizeChildOffset) & childOffsetMask); int parLen = BytesUtil.readUnsigned(trieBytes, p - 1, 1); boolean isEndOfValue = checkFlag(n, BIT_IS_END_OF_VALUE); @@ -357,13 +353,13 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { lastChild = false; } int p = offset + firstByteOffset; - int childOffset = (int)(BytesUtil.readLong(trieBytes, offset, sizeChildOffset) & childOffsetMask); + int childOffset = (int) (BytesUtil.readLong(trieBytes, offset, sizeChildOffset) & childOffsetMask); int parLen = BytesUtil.readUnsigned(trieBytes, p - 1, 1); boolean isEndOfValue = checkFlag(offset, BIT_IS_END_OF_VALUE); // Copy value overflow, the data is corrupted if (trieBytes.length < p + parLen) { - return false; + return false; } // Check id is fine @@ -401,7 +397,7 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { throw new IllegalArgumentException("Wrong file type (magic does not match)"); DataInputStream headIn = new DataInputStream(// - new ByteArrayInputStream(headPartial, HEAD_SIZE_I, headPartial.length - HEAD_SIZE_I)); + new ByteArrayInputStream(headPartial, HEAD_SIZE_I, headPartial.length - HEAD_SIZE_I)); int headSize = headIn.readShort(); int bodyLen = headIn.readInt(); headIn.close(); @@ -665,8 +661,7 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { // nValueBytes if (n.part.length > 255) - throw new RuntimeException("Value length is " + n.part.length - + " and larger than 255: " + Bytes.toStringBinary(n.part)); + throw new RuntimeException("Value length is " + n.part.length + " and larger than 255: " + Bytes.toStringBinary(n.part)); BytesUtil.writeUnsigned(n.part.length, trieBytes, o, 1); o++; @@ -785,7 +780,7 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { int t = s.mbpn_sizeValueTotal + s.mbpn_nNodes * (s.mbpn_sizeNoValueBytes + s.mbpn_sizeChildOffset - 1); // *4 because 2 MSB of offset is used for isEndOfValue & isEndChild flag // expand t to long before *4, avoiding exceed Integer.MAX_VALUE - if (BytesUtil.sizeForValue((long)t * 4) <= s.mbpn_sizeChildOffset - 1) { + if (BytesUtil.sizeForValue((long) t * 4) <= s.mbpn_sizeChildOffset - 1) { s.mbpn_sizeChildOffset--; s.mbpn_footprint = t; } else @@ -886,8 +881,7 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { builder = new Builder<>(resourcePath, null, dictDir, 0, 0, 0, new StringBytesConverter(), null); } else { logger.info("GlobalDict {} exist, append value", resourcePath); - builder = new Builder<>(resourcePath, dictToUse, dictToUse.baseDir, dictToUse.maxId, dictToUse.maxValueLength, - dictToUse.nValues, dictToUse.bytesConvert, dictToUse.writeDictMap()); + builder = new Builder<>(resourcePath, dictToUse, dictToUse.baseDir, dictToUse.maxId, dictToUse.maxValueLength, dictToUse.nValues, dictToUse.bytesConvert, dictToUse.writeDictMap()); } return builder; @@ -926,8 +920,7 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { int maxVersions = KylinConfig.getInstanceFromEnv().getAppendDictMaxVersions(); long versionTTL = KylinConfig.getInstanceFromEnv().getAppendDictVersionTTL(); // create a new cached map with baseDir - mutableDictSliceMap = CachedTreeMap.CachedTreeMapBuilder.newBuilder().maxSize(1).baseDir(baseDir) - .maxVersions(maxVersions).versionTTL(versionTTL).keyClazz(DictSliceKey.class).valueClazz(DictNode.class).immutable(false).build(); + mutableDictSliceMap = CachedTreeMap.CachedTreeMapBuilder.newBuilder().maxSize(1).baseDir(baseDir).maxVersions(maxVersions).versionTTL(versionTTL).keyClazz(DictSliceKey.class).valueClazz(DictNode.class).immutable(false).build(); if (dictMapBytes != null) { ((Writable) mutableDictSliceMap).readFields(new DataInputStream(new ByteArrayInputStream(dictMapBytes))); } @@ -1105,7 +1098,7 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { public synchronized AppendTrieDictionary<T> build(int baseId) throws IOException { boolean keepAppend = releaseInstance(resourcePath); - CachedTreeMap dictSliceMap = (CachedTreeMap)mutableDictSliceMap; + CachedTreeMap dictSliceMap = (CachedTreeMap) mutableDictSliceMap; dict.initParams(baseDir, baseId, maxId, maxValueLength, nValues, bytesConverter); dict.flushIndex(dictSliceMap, keepAppend); dict.initDictSliceMap(dictSliceMap); @@ -1155,7 +1148,6 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { return maxValueLength; } - public void flushIndex(CachedTreeMap dictSliceMap, boolean keepAppend) throws IOException { try (FSDataOutputStream indexOut = dictSliceMap.openIndexOutput()) { indexOut.writeInt(baseId); @@ -1220,14 +1212,12 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { initParams(baseDir, baseId, maxId, maxValueLength, nValues, converter); // Create instance for deserialize data, and update to map in dict - CachedTreeMap dictMap = CachedTreeMap.CachedTreeMapBuilder.newBuilder() - .baseDir(baseDir).immutable(true).keyClazz(DictSliceKey.class).valueClazz(DictSlice.class).build(); + CachedTreeMap dictMap = CachedTreeMap.CachedTreeMapBuilder.newBuilder().baseDir(baseDir).immutable(true).keyClazz(DictSliceKey.class).valueClazz(DictSlice.class).build(); dictMap.readFields(input); initDictSliceMap(dictMap); } } - @Override public void dump(PrintStream out) { out.println("Total " + nValues + " values, " + (dictSliceMap == null ? 0 : dictSliceMap.size()) + " slice"); @@ -1261,4 +1251,3 @@ public class AppendTrieDictionary<T> extends CacheDictionary<T> { } } - http://git-wip-us.apache.org/repos/asf/kylin/blob/576d2dd3/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryGenerator.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryGenerator.java b/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryGenerator.java index c23e7b5..61a0664 100644 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryGenerator.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryGenerator.java @@ -227,7 +227,7 @@ public class DictionaryGenerator { @Override public void init(DictionaryInfo info, int baseId) throws IOException { this.baseId = baseId; - this.builder = new NumberDictionaryBuilder(new NumberDictionaryForestBuilder.Number2BytesConverter()); + this.builder = new NumberDictionaryBuilder(); } @Override http://git-wip-us.apache.org/repos/asf/kylin/blob/576d2dd3/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionaryBuilder.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionaryBuilder.java b/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionaryBuilder.java index b9e94414..288e38f 100644 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionaryBuilder.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionaryBuilder.java @@ -25,17 +25,17 @@ package org.apache.kylin.dict; * @author yangli9 */ @Deprecated -public class NumberDictionaryBuilder<T> extends TrieDictionaryBuilder<T> { +public class NumberDictionaryBuilder extends TrieDictionaryBuilder<String> { - public NumberDictionaryBuilder(BytesConverter<T> bytesConverter) { - super(bytesConverter); + public NumberDictionaryBuilder() { + super(new NumberDictionaryForestBuilder.Number2BytesConverter()); } - public NumberDictionary<T> build(int baseId) { + public NumberDictionary build(int baseId) { byte[] trieBytes = buildTrieBytes(baseId); - NumberDictionary2<T> r = new NumberDictionary2<T>(trieBytes); + NumberDictionary2 r = new NumberDictionary2(trieBytes); return r; } http://git-wip-us.apache.org/repos/asf/kylin/blob/576d2dd3/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionaryForestBuilder.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionaryForestBuilder.java b/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionaryForestBuilder.java index 7c750f4..b072599 100644 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionaryForestBuilder.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionaryForestBuilder.java @@ -18,6 +18,8 @@ package org.apache.kylin.dict; +import java.io.Serializable; + import org.apache.kylin.common.util.Bytes; import org.apache.kylin.dict.NumberDictionary.NumberBytesCodec; @@ -26,8 +28,9 @@ import org.apache.kylin.dict.NumberDictionary.NumberBytesCodec; */ public class NumberDictionaryForestBuilder extends TrieDictionaryForestBuilder<String> { - public static class Number2BytesConverter implements BytesConverter<String>, java.io.Serializable { - + public static class Number2BytesConverter implements BytesConverter<String>, Serializable { + private static final long serialVersionUID = 1L; + static final int MAX_DIGITS_BEFORE_DECIMAL_POINT = NumberDictionary.MAX_DIGITS_BEFORE_DECIMAL_POINT; static final transient ThreadLocal<NumberBytesCodec> LOCAL = new ThreadLocal<NumberBytesCodec>(); http://git-wip-us.apache.org/repos/asf/kylin/blob/576d2dd3/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryForest.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryForest.java b/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryForest.java index d1b5a99..04292d2 100755 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryForest.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryForest.java @@ -129,7 +129,7 @@ public class TrieDictionaryForest<T> extends CacheDictionary<T> { } TrieDictionary<T> tree = trees.get(index); int id = tree.getIdFromValueBytesWithoutCache(value, offset, len, roundingFlag); - if(id == -1) + if (id == -1) throw new IllegalArgumentException("Value '" + Bytes.toString(value, offset, len) + "' (" + Bytes.toStringBinary(value, offset, len) + ") not exists!"); id = id + accuOffset.get(index); id += baseId; http://git-wip-us.apache.org/repos/asf/kylin/blob/576d2dd3/core-dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java b/core-dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java index 38f2648..1c04745 100644 --- a/core-dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java +++ b/core-dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java @@ -59,7 +59,7 @@ public class NumberDictionaryTest extends LocalFileMetadataTestCase { @Test public void testMinMax() { - NumberDictionaryBuilder<String> builder = new NumberDictionaryBuilder<String>(new NumberDictionaryForestBuilder.Number2BytesConverter()); + NumberDictionaryBuilder builder = new NumberDictionaryBuilder(); builder.addValue("" + Long.MAX_VALUE); builder.addValue("" + Long.MIN_VALUE); NumberDictionary<String> dict = builder.build(0); @@ -123,7 +123,7 @@ public class NumberDictionaryTest extends LocalFileMetadataTestCase { int n = 100; Set<BigDecimal> set = Sets.newHashSet(); - NumberDictionaryBuilder<String> builder = new NumberDictionaryBuilder<String>(new NumberDictionaryForestBuilder.Number2BytesConverter()); + NumberDictionaryBuilder builder = new NumberDictionaryBuilder(); for (int i = 0; i < n; i++) { String num = randNumber(); if (set.add(new BigDecimal(num))) { http://git-wip-us.apache.org/repos/asf/kylin/blob/576d2dd3/core-dictionary/src/test/java/org/apache/kylin/dict/TimeStrDictionaryTest.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/test/java/org/apache/kylin/dict/TimeStrDictionaryTest.java b/core-dictionary/src/test/java/org/apache/kylin/dict/TimeStrDictionaryTest.java index f981942..e852d26 100644 --- a/core-dictionary/src/test/java/org/apache/kylin/dict/TimeStrDictionaryTest.java +++ b/core-dictionary/src/test/java/org/apache/kylin/dict/TimeStrDictionaryTest.java @@ -18,13 +18,13 @@ package org.apache.kylin.dict; +import static org.junit.Assert.fail; + import org.apache.kylin.common.util.DateFormat; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import static org.junit.Assert.fail; - /** */ public class TimeStrDictionaryTest { @@ -64,10 +64,10 @@ public class TimeStrDictionaryTest { @Test public void testIllegal() { - try{ + try { dict.getIdFromValue("2038-01-19 03:14:07"); fail("should throw exception"); - }catch (IllegalArgumentException e){ + } catch (IllegalArgumentException e) { //correct } } http://git-wip-us.apache.org/repos/asf/kylin/blob/576d2dd3/core-dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryForestTest.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryForestTest.java b/core-dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryForestTest.java index c7fb9c4..dd1f951 100755 --- a/core-dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryForestTest.java +++ b/core-dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryForestTest.java @@ -641,7 +641,7 @@ public class TrieDictionaryForestTest { System.out.println("max memory:" + Runtime.getRuntime().maxMemory()); System.gc(); Thread.currentThread().sleep(1000); - NumberDictionaryBuilder<String> b = new NumberDictionaryBuilder<>(new NumberDictionaryForestBuilder.Number2BytesConverter()); + NumberDictionaryBuilder b = new NumberDictionaryBuilder(); int k = 0; while (true) { b.addValue(k + ""); http://git-wip-us.apache.org/repos/asf/kylin/blob/576d2dd3/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawMeasureType.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawMeasureType.java b/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawMeasureType.java index 3b6e659..31f35e9 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawMeasureType.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawMeasureType.java @@ -46,6 +46,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class RawMeasureType extends MeasureType<List<ByteArray>> { + private static final long serialVersionUID = 1L; private static final Logger logger = LoggerFactory.getLogger(RawMeasureType.class); @@ -103,6 +104,8 @@ public class RawMeasureType extends MeasureType<List<ByteArray>> { @Override public MeasureIngester<List<ByteArray>> newIngester() { return new MeasureIngester<List<ByteArray>>() { + private static final long serialVersionUID = 1L; + //encode measure value to dictionary @Override public List<ByteArray> valueOf(String[] values, MeasureDesc measureDesc, Map<TblColRef, Dictionary<String>> dictionaryMap) { http://git-wip-us.apache.org/repos/asf/kylin/blob/576d2dd3/core-storage/src/test/java/org/apache/kylin/storage/gtrecord/DictGridTableTest.java ---------------------------------------------------------------------- diff --git a/core-storage/src/test/java/org/apache/kylin/storage/gtrecord/DictGridTableTest.java b/core-storage/src/test/java/org/apache/kylin/storage/gtrecord/DictGridTableTest.java index ae186e2..7500b00 100644 --- a/core-storage/src/test/java/org/apache/kylin/storage/gtrecord/DictGridTableTest.java +++ b/core-storage/src/test/java/org/apache/kylin/storage/gtrecord/DictGridTableTest.java @@ -35,7 +35,6 @@ import org.apache.kylin.common.util.LocalFileMetadataTestCase; import org.apache.kylin.common.util.Pair; import org.apache.kylin.cube.gridtable.CubeCodeSystem; import org.apache.kylin.dict.NumberDictionaryBuilder; -import org.apache.kylin.dict.NumberDictionaryForestBuilder; import org.apache.kylin.dict.StringBytesConverter; import org.apache.kylin.dict.TrieDictionaryBuilder; import org.apache.kylin.dimension.DictionaryDimEnc; @@ -602,7 +601,7 @@ public class DictGridTableTest extends LocalFileMetadataTestCase { @SuppressWarnings("rawtypes") private static Dictionary newDictionaryOfInteger() { - NumberDictionaryBuilder<String> builder = new NumberDictionaryBuilder<>(new NumberDictionaryForestBuilder.Number2BytesConverter()); + NumberDictionaryBuilder builder = new NumberDictionaryBuilder(); builder.addValue("10"); builder.addValue("20"); builder.addValue("30"); http://git-wip-us.apache.org/repos/asf/kylin/blob/576d2dd3/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/NumberDictionaryForestTest.java ---------------------------------------------------------------------- diff --git a/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/NumberDictionaryForestTest.java b/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/NumberDictionaryForestTest.java index 72793f5..1908992 100644 --- a/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/NumberDictionaryForestTest.java +++ b/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/NumberDictionaryForestTest.java @@ -120,7 +120,7 @@ public class NumberDictionaryForestTest { TrieDictionaryForest<String> dict = b.build(); dict.dump(System.out); - NumberDictionaryBuilder<String> b2 = new NumberDictionaryBuilder<>(new NumberDictionaryForestBuilder.Number2BytesConverter()); + NumberDictionaryBuilder b2 = new NumberDictionaryBuilder(); for (String str : testData) b2.addValue(str); NumberDictionary<String> dict2 = b2.build(0);