http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryBuilder.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryBuilder.java b/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryBuilder.java index af602a0..330d64c 100644 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryBuilder.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryBuilder.java @@ -299,7 +299,7 @@ public class TrieDictionaryBuilder<T> { while (true) { // minimize the offset size to match the footprint int t = s.obpn_nNodes * (s.obpn_sizeValue + s.obpn_sizeNoValuesBeneath + s.obpn_sizeChildCount + s.obpn_sizeChildOffset - 1); if (BytesUtil.sizeForValue(t * 2) <= s.obpn_sizeChildOffset - 1) { // *2 - // because + // because // MSB // of // offset @@ -323,7 +323,7 @@ public class TrieDictionaryBuilder<T> { while (true) { // minimize the offset size to match the footprint int t = s.mbpn_sizeValueTotal + s.mbpn_nNodes * (s.mbpn_sizeNoValueBytes + s.mbpn_sizeNoValueBeneath + s.mbpn_sizeChildOffset - 1); if (BytesUtil.sizeForValue(t * 4) <= s.mbpn_sizeChildOffset - 1) { // *4 - // because + // because // 2 // MSB // of
http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java index fd88fb0..f13275c 100644 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java @@ -32,7 +32,7 @@ import org.apache.kylin.source.ReadableTable; * */ public class LookupStringTable extends LookupTable<String> { - + private static final Comparator<String> dateStrComparator = new Comparator<String>() { @Override public int compare(String o1, String o2) { @@ -50,21 +50,21 @@ public class LookupStringTable extends LookupTable<String> { return Double.compare(d1, d2); } }; - + private static final Comparator<String> defaultStrComparator = new Comparator<String>() { @Override public int compare(String o1, String o2) { return o1.compareTo(o2); } }; - + boolean[] colIsDateTime; boolean[] colIsNumber; - + public LookupStringTable(TableDesc tableDesc, String[] keyColumns, ReadableTable table) throws IOException { super(tableDesc, keyColumns, table); } - + @Override protected void init() throws IOException { ColumnDesc[] cols = tableDesc.getColumns(); @@ -75,7 +75,7 @@ public class LookupStringTable extends LookupTable<String> { colIsDateTime[i] = t.isDateTimeFamily(); colIsNumber[i] = t.isNumberFamily(); } - + super.init(); } @@ -98,14 +98,14 @@ public class LookupStringTable extends LookupTable<String> { else return defaultStrComparator; } - + @Override protected String toString(String cell) { return cell; } - public Class<?> getType() { - return String.class; + public Class<?> getType() { + return String.class; } } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java index 5a96df6..c0983d8 100644 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java @@ -37,7 +37,7 @@ import com.google.common.collect.Sets; /** * An in-memory lookup table, in which each cell is an object of type T. The * table is indexed by specified PK for fast lookup. - * + * * @author yangli9 */ abstract public class LookupTable<T> { @@ -74,7 +74,7 @@ abstract public class LookupTable<T> { @SuppressWarnings("unchecked") private void initRow(String[] cols, int[] keyIndex) { T[] value = convertRow(cols); - T[] keyCols = (T[]) java.lang.reflect.Array.newInstance(getType(), keyIndex.length); + T[] keyCols = (T[]) java.lang.reflect.Array.newInstance(getType(), keyIndex.length); for (int i = 0; i < keyCols.length; i++) keyCols[i] = value[keyIndex[i]]; @@ -112,7 +112,7 @@ abstract public class LookupTable<T> { int returnIdx = tableDesc.findColumnByName(returnCol).getZeroBasedIndex(); Comparator<T> colComp = getComparator(colIdx); Comparator<T> returnComp = getComparator(returnIdx); - + T returnBegin = null; T returnEnd = null; for (T[] row : data.values()) { @@ -149,7 +149,7 @@ abstract public class LookupTable<T> { } abstract protected Comparator<T> getComparator(int colIdx); - + public String toString() { return "LookupTable [path=" + table + "]"; } @@ -168,8 +168,8 @@ abstract public class LookupTable<T> { abstract protected String toString(T cell); - abstract public Class<?> getType(); - + abstract public Class<?> getType(); + public void dump() { for (Array<T> key : data.keySet()) { System.out.println(toString(key.data) + " => " + toString(data.get(key))); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java index b4b8011..6e93ae4 100644 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java @@ -19,7 +19,6 @@ package org.apache.kylin.dict.lookup; import java.io.IOException; -import java.util.ArrayList; import java.util.NavigableSet; import java.util.concurrent.ConcurrentHashMap; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-dictionary/src/test/java/org/apache/kylin/dict/AppendTrieDictionaryTest.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/test/java/org/apache/kylin/dict/AppendTrieDictionaryTest.java b/core-dictionary/src/test/java/org/apache/kylin/dict/AppendTrieDictionaryTest.java index e7603ec..0ea5ebe 100644 --- a/core-dictionary/src/test/java/org/apache/kylin/dict/AppendTrieDictionaryTest.java +++ b/core-dictionary/src/test/java/org/apache/kylin/dict/AppendTrieDictionaryTest.java @@ -18,6 +18,23 @@ package org.apache.kylin.dict; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; + +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Random; +import java.util.TreeMap; + import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; @@ -27,12 +44,6 @@ import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; -import java.io.*; -import java.util.*; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; - /** * Created by sunyerui on 16/4/28. */ @@ -53,16 +64,13 @@ public class AppendTrieDictionaryTest { String workingDir = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory(); try { FileSystem.get(new Path(workingDir).toUri(), new Configuration()).delete(new Path(workingDir), true); - } catch (IOException e) {} + } catch (IOException e) { + } } - public static final String[] words = new String[]{ - "paint", "par", "part", "parts", "partition", "partitions", - "party", "partie", "parties", "patient", - "taste", "tar", "trie", "try", "tries", - "åå ¸", "åå ¸æ ", "åæ¯", // non-ascii characters - "", // empty - "paint", "tar", "try", // some dup + public static final String[] words = new String[] { "paint", "par", "part", "parts", "partition", "partitions", "party", "partie", "parties", "patient", "taste", "tar", "trie", "try", "tries", "åå ¸", "åå ¸æ ", "åæ¯", // non-ascii characters + "", // empty + "paint", "tar", "try", // some dup }; @Test @@ -123,8 +131,9 @@ public class AppendTrieDictionaryTest { String word; while ((word = reader.readLine()) != null) { word = word.trim(); - if (!word.isEmpty()); - b.addValue(word); + if (!word.isEmpty()) + ; + b.addValue(word); } } finally { reader.close(); @@ -146,8 +155,8 @@ public class AppendTrieDictionaryTest { AppendTrieDictionary.Builder<String> b = AppendTrieDictionary.Builder.create("/tmp"); AppendTrieDictionary<String> dict = null; TreeMap<Integer, String> checkMap = new TreeMap<>(); - int firstAppend = rnd.nextInt(strList.size()/2); - int secondAppend = firstAppend + rnd.nextInt((strList.size()-firstAppend)/2); + int firstAppend = rnd.nextInt(strList.size() / 2); + int secondAppend = firstAppend + rnd.nextInt((strList.size() - firstAppend) / 2); int appendIndex = 0; int checkIndex = 0; @@ -156,12 +165,11 @@ public class AppendTrieDictionaryTest { } dict = b.build(0); dict.dump(System.out); - for (;checkIndex < firstAppend; checkIndex++) { + for (; checkIndex < firstAppend; checkIndex++) { String str = strList.get(checkIndex); byte[] bytes = converter.convertToBytes(str); int id = dict.getIdFromValueBytesImpl(bytes, 0, bytes.length, 0); - assertFalse(String.format("Id %d for %s should be empty, but is %s", id, str, checkMap.get(id)), - checkMap.containsKey(id) && !str.equals(checkMap.get(id))); + assertFalse(String.format("Id %d for %s should be empty, but is %s", id, str, checkMap.get(id)), checkMap.containsKey(id) && !str.equals(checkMap.get(id))); checkMap.put(id, str); } @@ -175,7 +183,7 @@ public class AppendTrieDictionaryTest { dict = newDict; dict.dump(System.out); checkIndex = 0; - for (;checkIndex < secondAppend; checkIndex++) { + for (; checkIndex < secondAppend; checkIndex++) { String str = strList.get(checkIndex); byte[] bytes = converter.convertToBytes(str); int id = dict.getIdFromValueBytesImpl(bytes, 0, bytes.length, 0); @@ -183,8 +191,7 @@ public class AppendTrieDictionaryTest { assertEquals("Except id " + id + " for " + str + " but " + checkMap.get(id), str, checkMap.get(id)); } else { // check second append str, should be new id - assertFalse(String.format("Id %d for %s should be empty, but is %s", id, str, checkMap.get(id)), - checkMap.containsKey(id) && !str.equals(checkMap.get(id))); + assertFalse(String.format("Id %d for %s should be empty, but is %s", id, str, checkMap.get(id)), checkMap.containsKey(id) && !str.equals(checkMap.get(id))); checkMap.put(id, str); } } @@ -207,8 +214,7 @@ public class AppendTrieDictionaryTest { assertEquals("Except id " + id + " for " + str + " but " + checkMap.get(id), str, checkMap.get(id)); } else { // check third append str, should be new id - assertFalse(String.format("Id %d for %s should be empty, but is %s", id, str, checkMap.get(id)), - checkMap.containsKey(id) && !str.equals(checkMap.get(id))); + assertFalse(String.format("Id %d for %s should be empty, but is %s", id, str, checkMap.get(id)), checkMap.containsKey(id) && !str.equals(checkMap.get(id))); checkMap.put(id, str); } } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/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 b359170..6efd713 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 @@ -18,7 +18,8 @@ package org.apache.kylin.dict; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; import java.io.IOException; import java.math.BigDecimal; @@ -51,7 +52,7 @@ public class NumberDictionaryTest { builder.addValue("" + Long.MAX_VALUE); builder.addValue("" + Long.MIN_VALUE); NumberDictionary<String> dict = builder.build(0); - + int minId = dict.getIdFromValue("" + Long.MIN_VALUE); int maxId = dict.getIdFromValue("" + Long.MAX_VALUE); assertEquals(0, minId); @@ -60,15 +61,15 @@ public class NumberDictionaryTest { @SuppressWarnings("unchecked") @Test - public void testEmptyInput() throws IOException{ + public void testEmptyInput() throws IOException { String[] ints = new String[] { "", "0", "5", "100", "13" }; - Collection<byte[]> intBytes = Lists.newArrayListWithCapacity(ints.length); + Collection<byte[]> intBytes = Lists.newArrayListWithCapacity(ints.length); for (String s : ints) { intBytes.add((s == null) ? null : Bytes.toBytes(s)); } // check "" is treated as NULL, not a code of dictionary - Dictionary<?> dict = DictionaryGenerator.buildDictionary(DataType.getType("integer"), new IterableDictionaryValueEnumerator(intBytes)); + Dictionary<?> dict = DictionaryGenerator.buildDictionary(DataType.getType("integer"), new IterableDictionaryValueEnumerator(intBytes)); assertEquals(4, dict.getSize()); final int id = ((NumberDictionary<String>) dict).getIdFromValue(""); @@ -187,7 +188,7 @@ public class NumberDictionaryTest { buf.append("."); for (int i = 0; i < digits2; i++) buf.append("" + rand.nextInt(9) + 1); // BigDecimal thinks 4.5 - // != 4.50, my god! + // != 4.50, my god! } return buf.toString(); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java b/core-dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java index 3f67dcd..e4b32db 100644 --- a/core-dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java +++ b/core-dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java @@ -87,11 +87,11 @@ public class LookupTableTest extends LocalFileMetadataTestCase { System.out.println(DateFormat.formatToDateStr(Long.parseLong(results.getFirst()))); System.out.println(DateFormat.formatToDateStr(Long.parseLong(results.getSecond()))); - + Assert.assertEquals(millis("2013-05-05"), results.getFirst()); Assert.assertEquals(millis("2013-08-03"), results.getSecond()); } - + @Test public void testMapValues() throws Exception { Set<String> values = new HashSet<String>(); @@ -106,7 +106,7 @@ public class LookupTableTest extends LocalFileMetadataTestCase { Assert.assertEquals(millis("2012-01-01"), i); } } - + private String millis(String dateStr) { return String.valueOf(DateFormat.stringToMillis(dateStr)); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-job/src/main/java/org/apache/kylin/job/JobInstance.java ---------------------------------------------------------------------- diff --git a/core-job/src/main/java/org/apache/kylin/job/JobInstance.java b/core-job/src/main/java/org/apache/kylin/job/JobInstance.java index e5a4540..50b30ab 100644 --- a/core-job/src/main/java/org/apache/kylin/job/JobInstance.java +++ b/core-job/src/main/java/org/apache/kylin/job/JobInstance.java @@ -35,6 +35,7 @@ import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.common.collect.Lists; @SuppressWarnings("serial") http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java ---------------------------------------------------------------------- diff --git a/core-job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java b/core-job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java index d064cb1..41c301a 100644 --- a/core-job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java +++ b/core-job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java @@ -19,7 +19,6 @@ package org.apache.kylin.job; import java.io.File; -import java.io.IOException; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -27,7 +26,6 @@ import java.util.Set; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; import org.apache.kylin.cube.CubeSegment; import org.apache.kylin.cube.model.CubeDesc; @@ -42,7 +40,6 @@ import org.apache.kylin.metadata.model.PartitionDesc; import org.apache.kylin.metadata.model.TblColRef; import org.w3c.dom.Document; import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; /** * @author George Song (ysong1) http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-job/src/main/java/org/apache/kylin/job/SchedulerFactory.java ---------------------------------------------------------------------- diff --git a/core-job/src/main/java/org/apache/kylin/job/SchedulerFactory.java b/core-job/src/main/java/org/apache/kylin/job/SchedulerFactory.java index 0e8207f..9504681 100644 --- a/core-job/src/main/java/org/apache/kylin/job/SchedulerFactory.java +++ b/core-job/src/main/java/org/apache/kylin/job/SchedulerFactory.java @@ -1,12 +1,12 @@ package org.apache.kylin.job; +import java.util.Map; + import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.util.ImplementationSwitch; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Map; - /** */ public class SchedulerFactory { http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java ---------------------------------------------------------------------- diff --git a/core-job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java b/core-job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java index 209d14e..111c1ba 100644 --- a/core-job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java +++ b/core-job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java @@ -30,9 +30,9 @@ import org.apache.kylin.job.exception.ExecuteException; import org.apache.kylin.job.execution.AbstractExecutable; import org.apache.kylin.job.execution.ExecutableContext; import org.apache.kylin.job.execution.ExecuteResult; +import org.slf4j.LoggerFactory; import com.google.common.collect.Maps; -import org.slf4j.LoggerFactory; /** */ @@ -40,7 +40,6 @@ public class ShellExecutable extends AbstractExecutable { private static final org.slf4j.Logger logger = LoggerFactory.getLogger(ShellExecutable.class); - private static final String CMD = "cmd"; public ShellExecutable() { http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java ---------------------------------------------------------------------- diff --git a/core-job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java b/core-job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java index 1e34f39..ad84a54 100644 --- a/core-job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java +++ b/core-job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java @@ -24,6 +24,7 @@ import org.apache.kylin.common.persistence.RootPersistentEntity; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.common.collect.Maps; /** http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java ---------------------------------------------------------------------- diff --git a/core-job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java b/core-job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java index 75717e0..a565335 100644 --- a/core-job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java +++ b/core-job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java @@ -25,6 +25,7 @@ import org.apache.kylin.common.persistence.RootPersistentEntity; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.common.collect.Maps; /** http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java ---------------------------------------------------------------------- diff --git a/core-job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java b/core-job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java index 64e801e..8ba1730 100644 --- a/core-job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java +++ b/core-job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java @@ -24,7 +24,6 @@ import java.io.IOException; import org.apache.commons.lang.StringUtils; import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.util.OptionsHelper; -import org.apache.kylin.metadata.model.DataModelDesc.RealizationCapacity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -79,7 +78,7 @@ public class JobEngineConfig { */ public String getHadoopJobConfFilePath(String jobType) throws IOException { String suffix = null; - if(!StringUtils.isEmpty(jobType)) { + if (!StringUtils.isEmpty(jobType)) { suffix = jobType; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java ---------------------------------------------------------------------- diff --git a/core-job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java b/core-job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java index aee71f7..ab70007 100644 --- a/core-job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java +++ b/core-job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java @@ -76,7 +76,6 @@ public abstract class AbstractExecutable implements Executable, Idempotent { } else { executableManager.updateJobOutput(getId(), ExecutableState.ERROR, null, result.output()); } - } else { } } @@ -90,7 +89,6 @@ public abstract class AbstractExecutable implements Executable, Idempotent { output = out.toString(); } executableManager.updateJobOutput(getId(), ExecutableState.ERROR, null, output); - } else { } } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java ---------------------------------------------------------------------- diff --git a/core-job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java b/core-job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java index dd22234..816db01 100644 --- a/core-job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java +++ b/core-job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java @@ -171,11 +171,10 @@ public class DefaultScheduler implements Scheduler<AbstractExecutable>, Connecti } } - @Override public synchronized void init(JobEngineConfig jobEngineConfig, final JobLock jobLock) throws SchedulerException { String serverMode = jobEngineConfig.getConfig().getServerMode(); - if (! ("job".equals(serverMode.toLowerCase()) || "all".equals(serverMode.toLowerCase()))) { + if (!("job".equals(serverMode.toLowerCase()) || "all".equals(serverMode.toLowerCase()))) { logger.info("server mode: " + serverMode + ", no need to run job scheduler"); return; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/dimension/AbstractDateDimEnc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/dimension/AbstractDateDimEnc.java b/core-metadata/src/main/java/org/apache/kylin/dimension/AbstractDateDimEnc.java index 41460ed..e6d4be5 100644 --- a/core-metadata/src/main/java/org/apache/kylin/dimension/AbstractDateDimEnc.java +++ b/core-metadata/src/main/java/org/apache/kylin/dimension/AbstractDateDimEnc.java @@ -88,7 +88,7 @@ public class AbstractDateDimEnc extends DimensionEncoding { long code = BytesUtil.readLong(bytes, offset, fixedLen); if (code < 0) throw new IllegalArgumentException(); - + long millis = codec.codeToMillis(code); return String.valueOf(millis); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncoding.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncoding.java b/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncoding.java index 994982b..c6ec607 100644 --- a/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncoding.java +++ b/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncoding.java @@ -37,7 +37,7 @@ public abstract class DimensionEncoding implements Externalizable { // it's convention that all 0xff means NULL public static final byte NULL = (byte) 0xff; - + public static boolean isNull(byte[] bytes, int offset, int length) { // all 0xFF is NULL if (length == 0) { @@ -60,19 +60,19 @@ public abstract class DimensionEncoding implements Externalizable { final String[] encodingArgs = parts[parts.length - 1].isEmpty() // ? StringUtil.subArray(parts, 1, parts.length - 1) : StringUtil.subArray(parts, 1, parts.length); - return new Object[] {encodingName, encodingArgs}; + return new Object[] { encodingName, encodingArgs }; } /** return the fixed length of encoded bytes */ abstract public int getLengthOfEncoding(); - + /** encode given value (a string in byte form) to bytes, note the NULL convention */ abstract public void encode(byte[] value, int valueLen, byte[] output, int outputOffset); - + /** decode given bytes to value string, note the NULL convention */ abstract public String decode(byte[] bytes, int offset, int len); - + /** return a DataTypeSerializer that does the same encoding/decoding on ByteBuffer */ abstract public DataTypeSerializer<Object> asDataTypeSerializer(); - + } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java b/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java index 9b0aa7c..4f70be8 100644 --- a/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java +++ b/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java @@ -53,13 +53,13 @@ public abstract class DimensionEncodingFactory { public static Set<String> getValidEncodings() { if (factoryMap == null) initFactoryMap(); - + TreeSet<String> result = Sets.newTreeSet(); result.addAll(factoryMap.keySet()); result.add(DictionaryDimEnc.ENCODING_NAME); return result; } - + public static boolean isVaildEncoding(String encodingName) { if (factoryMap == null) initFactoryMap(); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/dimension/FixedLenDimEnc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/dimension/FixedLenDimEnc.java b/core-metadata/src/main/java/org/apache/kylin/dimension/FixedLenDimEnc.java index 7805fcc..bc47364 100644 --- a/core-metadata/src/main/java/org/apache/kylin/dimension/FixedLenDimEnc.java +++ b/core-metadata/src/main/java/org/apache/kylin/dimension/FixedLenDimEnc.java @@ -60,15 +60,17 @@ public class FixedLenDimEnc extends DimensionEncoding { //no-arg constructor is required for Externalizable public FixedLenDimEnc() { } - + public FixedLenDimEnc(int len) { this.fixedLen = len; } @Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; FixedLenDimEnc that = (FixedLenDimEnc) o; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/dimension/IDimensionEncodingMap.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/dimension/IDimensionEncodingMap.java b/core-metadata/src/main/java/org/apache/kylin/dimension/IDimensionEncodingMap.java index b53376b..4df4701 100644 --- a/core-metadata/src/main/java/org/apache/kylin/dimension/IDimensionEncodingMap.java +++ b/core-metadata/src/main/java/org/apache/kylin/dimension/IDimensionEncodingMap.java @@ -34,8 +34,8 @@ public interface IDimensionEncodingMap { /** Get dimension encoding of a column */ DimensionEncoding get(TblColRef col); - + /** Get dictionary of a column if its encoding is dictionary based */ Dictionary<String> getDictionary(TblColRef col); - + } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/dimension/IntegerDimEnc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/dimension/IntegerDimEnc.java b/core-metadata/src/main/java/org/apache/kylin/dimension/IntegerDimEnc.java index 3f01948..89b14fc 100644 --- a/core-metadata/src/main/java/org/apache/kylin/dimension/IntegerDimEnc.java +++ b/core-metadata/src/main/java/org/apache/kylin/dimension/IntegerDimEnc.java @@ -35,7 +35,7 @@ public class IntegerDimEnc extends DimensionEncoding { private static Logger logger = LoggerFactory.getLogger(IntegerDimEnc.class); - private static final long CAP[] = { 0, 0xffL, 0xffffL, 0xffffffL, 0xffffffffL, 0xffffffffffL, 0xffffffffffffL, 0xffffffffffffffL, Long.MAX_VALUE }; + private static final long[] CAP = { 0, 0xffL, 0xffffL, 0xffffffL, 0xffffffffL, 0xffffffffffL, 0xffffffffffffL, 0xffffffffffffffL, Long.MAX_VALUE }; public static final String ENCODING_NAME = "int"; @@ -173,11 +173,12 @@ public class IntegerDimEnc extends DimensionEncoding { fixedLen = in.readShort(); } - @Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; IntegerDimEnc that = (IntegerDimEnc) o; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/BufferedMeasureEncoder.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/BufferedMeasureEncoder.java b/core-metadata/src/main/java/org/apache/kylin/measure/BufferedMeasureEncoder.java index b9e9790..2b14715 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/BufferedMeasureEncoder.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/BufferedMeasureEncoder.java @@ -44,7 +44,7 @@ public class BufferedMeasureEncoder { this.codec = new MeasureDecoder(measureDescs); this.measureSizes = new int[codec.nMeasures]; } - + public BufferedMeasureEncoder(MeasureDesc... measureDescs) { this.codec = new MeasureDecoder(measureDescs); this.measureSizes = new int[codec.nMeasures]; @@ -54,7 +54,7 @@ public class BufferedMeasureEncoder { this.codec = new MeasureDecoder(dataTypes); this.measureSizes = new int[codec.nMeasures]; } - + public BufferedMeasureEncoder(String... dataTypes) { this.codec = new MeasureDecoder(dataTypes); this.measureSizes = new int[codec.nMeasures]; @@ -95,7 +95,7 @@ public class BufferedMeasureEncoder { pos = buf.position(); } return buf; - + } catch (BufferOverflowException boe) { if (buf.capacity() >= MAX_BUFFER_SIZE) throw boe; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/MeasureAggregator.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/MeasureAggregator.java b/core-metadata/src/main/java/org/apache/kylin/measure/MeasureAggregator.java index 4c031c7..7b74225 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/MeasureAggregator.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/MeasureAggregator.java @@ -34,9 +34,9 @@ abstract public class MeasureAggregator<V> implements Serializable { public static int guessBigDecimalMemBytes() { // 116 returned by AggregationCacheMemSizeTest return 8 // aggregator obj shell - + 8 // ref to BigDecimal - + 8 // BigDecimal obj shell - + 100; // guess of BigDecimal internal + + 8 // ref to BigDecimal + + 8 // BigDecimal obj shell + + 100; // guess of BigDecimal internal } public static int guessDoubleMemBytes() { http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/MeasureAggregators.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/MeasureAggregators.java b/core-metadata/src/main/java/org/apache/kylin/measure/MeasureAggregators.java index ede690b..2b28302 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/MeasureAggregators.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/MeasureAggregators.java @@ -68,7 +68,7 @@ public class MeasureAggregators implements Serializable { aggs[i].reset(); } } - + public void aggregate(Object[] values) { assert values.length == descLength; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/MeasureIngester.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/MeasureIngester.java b/core-metadata/src/main/java/org/apache/kylin/measure/MeasureIngester.java index bc387fe..0076252 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/MeasureIngester.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/MeasureIngester.java @@ -26,11 +26,11 @@ import org.apache.kylin.metadata.model.MeasureDesc; import org.apache.kylin.metadata.model.TblColRef; abstract public class MeasureIngester<V> { - + public static MeasureIngester<?> create(MeasureDesc measure) { return measure.getFunction().getMeasureType().newIngester(); } - + public static MeasureIngester<?>[] create(Collection<MeasureDesc> measures) { MeasureIngester<?>[] result = new MeasureIngester<?>[measures.size()]; int i = 0; @@ -41,7 +41,7 @@ abstract public class MeasureIngester<V> { } abstract public V valueOf(String[] values, MeasureDesc measureDesc, Map<TblColRef, Dictionary<String>> dictionaryMap); - + public V reEncodeDictionary(V value, MeasureDesc measureDesc, Map<TblColRef, Dictionary<String>> oldDicts, Map<TblColRef, Dictionary<String>> newDicts) { throw new UnsupportedOperationException(); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/MeasureType.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/MeasureType.java b/core-metadata/src/main/java/org/apache/kylin/measure/MeasureType.java index 9cccbde..6786f4b 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/MeasureType.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/MeasureType.java @@ -39,16 +39,16 @@ import org.apache.kylin.metadata.tuple.TupleInfo; * @param <T> the Java type of aggregation data object, e.g. HyperLogLogPlusCounter */ abstract public class MeasureType<T> { - + /* ============================================================================ * Define * ---------------------------------------------------------------------------- */ - + /** Validates a user defined FunctionDesc has expected parameter etc. Throw IllegalArgumentException if anything wrong. */ public void validate(FunctionDesc functionDesc) throws IllegalArgumentException { return; } - + /** Although most aggregated object takes only 8 bytes like long or double, * some advanced aggregation like HyperLogLog or TopN can consume more than 10 KB for * each object, which requires special care on memory allocation. */ @@ -60,17 +60,17 @@ abstract public class MeasureType<T> { public boolean onlyAggrInBaseCuboid() { return false; } - + /* ============================================================================ * Build * ---------------------------------------------------------------------------- */ /** Return a MeasureIngester which knows how to init aggregation object from raw records. */ abstract public MeasureIngester<T> newIngester(); - + /** Return a MeasureAggregator which does aggregation. */ abstract public MeasureAggregator<T> newAggregator(); - + /** Some special measures need dictionary to encode column values for optimal storage. TopN is an example. */ public List<TblColRef> getColumnsNeedDictionary(FunctionDesc functionDesc) { return Collections.emptyList(); @@ -79,7 +79,7 @@ abstract public class MeasureType<T> { /* ============================================================================ * Cube Selection * ---------------------------------------------------------------------------- */ - + /** * Some special measures hold columns which are usually treated as dimensions (or vice-versa). * This is where they override to influence cube capability check. @@ -97,13 +97,13 @@ abstract public class MeasureType<T> { public CapabilityInfluence influenceCapabilityCheck(Collection<TblColRef> unmatchedDimensions, Collection<FunctionDesc> unmatchedAggregations, SQLDigest digest, MeasureDesc measureDesc) { return null; } - + /* ============================================================================ * Query Rewrite * ---------------------------------------------------------------------------- */ - + // TODO support user defined Calcite aggr function - + /** Whether or not Calcite rel-tree needs rewrite to do last around of aggregation */ abstract public boolean needRewrite(); @@ -114,11 +114,11 @@ abstract public class MeasureType<T> { /** Returns a Calcite aggregation function implementation class */ abstract public Class<?> getRewriteCalciteAggrFunctionClass(); - + /* ============================================================================ * Storage * ---------------------------------------------------------------------------- */ - + /** * Some special measures hold columns which are usually treated as dimensions (or vice-versa). * They need to adjust dimensions and measures in <code>sqlDigest</code> before scanning, @@ -126,7 +126,7 @@ abstract public class MeasureType<T> { */ public void adjustSqlDigest(MeasureDesc measureDesc, SQLDigest sqlDigest) { } - + /** Return true if one storage record maps to multiple tuples, or false otherwise. */ public boolean needAdvancedTupleFilling() { return false; @@ -136,20 +136,20 @@ abstract public class MeasureType<T> { public void fillTupleSimply(Tuple tuple, int indexInTuple, Object measureValue) { tuple.setMeasureValue(indexInTuple, measureValue); } - + /** The advanced filling mode, multiple tuples per storage record. */ public IAdvMeasureFiller getAdvancedTupleFiller(FunctionDesc function, TupleInfo returnTupleInfo, Map<TblColRef, Dictionary<String>> dictionaryMap) { throw new UnsupportedOperationException(); } - + public static interface IAdvMeasureFiller { - + /** Reload a value from storage and get ready to fill multiple tuples with it. */ void reload(Object measureValue); - + /** Returns how many rows contained in last loaded value. */ int getNumOfRows(); - + /** Fill in specified row into tuple. */ void fillTuple(Tuple tuple, int row); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/basic/BasicMeasureType.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/basic/BasicMeasureType.java b/core-metadata/src/main/java/org/apache/kylin/measure/basic/BasicMeasureType.java index b8d201e..4ab4584 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/basic/BasicMeasureType.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/basic/BasicMeasureType.java @@ -28,7 +28,7 @@ import org.apache.kylin.metadata.model.FunctionDesc; @SuppressWarnings("rawtypes") public class BasicMeasureType extends MeasureType { - + public static class Factory extends MeasureTypeFactory { @Override @@ -64,7 +64,7 @@ public class BasicMeasureType extends MeasureType { @Override public void validate(FunctionDesc functionDesc) throws IllegalArgumentException { DataType rtype = dataType; - + if (funcName.equals(FunctionDesc.FUNC_SUM)) { if (rtype.isNumberFamily() == false) { throw new IllegalArgumentException("Return type for function " + funcName + " must be one of " + DataType.NUMBER_FAMILY); @@ -83,7 +83,7 @@ public class BasicMeasureType extends MeasureType { throw new IllegalArgumentException("Unrecognized function: [" + funcName + "]"); } } - + @Override public MeasureIngester<?> newIngester() { if (dataType.isIntegerFamily()) http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/basic/BigDecimalIngester.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/basic/BigDecimalIngester.java b/core-metadata/src/main/java/org/apache/kylin/measure/basic/BigDecimalIngester.java index 721ba00..b51917c 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/basic/BigDecimalIngester.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/basic/BigDecimalIngester.java @@ -32,7 +32,7 @@ public class BigDecimalIngester extends MeasureIngester<BigDecimal> { public BigDecimal valueOf(String[] values, MeasureDesc measureDesc, Map<TblColRef, Dictionary<String>> dictionaryMap) { if (values.length > 1) throw new IllegalArgumentException(); - + if (values[0] == null) return new BigDecimal(0); else http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/basic/DoubleIngester.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/basic/DoubleIngester.java b/core-metadata/src/main/java/org/apache/kylin/measure/basic/DoubleIngester.java index 70ca727..8356faa 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/basic/DoubleIngester.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/basic/DoubleIngester.java @@ -27,7 +27,7 @@ import org.apache.kylin.metadata.model.MeasureDesc; import org.apache.kylin.metadata.model.TblColRef; public class DoubleIngester extends MeasureIngester<DoubleMutable> { - + // avoid repeated object creation private DoubleMutable current = new DoubleMutable(); @@ -35,7 +35,7 @@ public class DoubleIngester extends MeasureIngester<DoubleMutable> { public DoubleMutable valueOf(String[] values, MeasureDesc measureDesc, Map<TblColRef, Dictionary<String>> dictionaryMap) { if (values.length > 1) throw new IllegalArgumentException(); - + DoubleMutable l = current; if (values[0] == null) l.set(0L); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/basic/LongIngester.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/basic/LongIngester.java b/core-metadata/src/main/java/org/apache/kylin/measure/basic/LongIngester.java index 2547162..bfe6fe8 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/basic/LongIngester.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/basic/LongIngester.java @@ -27,7 +27,7 @@ import org.apache.kylin.metadata.model.MeasureDesc; import org.apache.kylin.metadata.model.TblColRef; public class LongIngester extends MeasureIngester<LongMutable> { - + // avoid repeated object creation private LongMutable current = new LongMutable(); @@ -35,7 +35,7 @@ public class LongIngester extends MeasureIngester<LongMutable> { public LongMutable valueOf(String[] values, MeasureDesc measureDesc, Map<TblColRef, Dictionary<String>> dictionaryMap) { if (values.length > 1) throw new IllegalArgumentException(); - + LongMutable l = current; if (values[0] == null) l.set(0L); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapCounter.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapCounter.java b/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapCounter.java index bbf812a..b52adde 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapCounter.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapCounter.java @@ -18,12 +18,16 @@ package org.apache.kylin.measure.bitmap; -import org.roaringbitmap.buffer.MutableRoaringBitmap; - -import java.io.*; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.InputStream; import java.nio.ByteBuffer; import java.util.Iterator; +import org.roaringbitmap.buffer.MutableRoaringBitmap; + /** * Created by sunyerui on 15/12/1. */ @@ -46,14 +50,15 @@ public class BitmapCounter implements Comparable<BitmapCounter> { bitmap.add(value); } - public void add(byte[] value) {add(value, 0, value.length); + public void add(byte[] value) { + add(value, 0, value.length); } public void add(byte[] value, int offset, int length) { if (value == null || length == 0) { return; } - + add(new String(value, offset, length)); } @@ -92,7 +97,7 @@ public class BitmapCounter implements Comparable<BitmapCounter> { public void readRegisters(ByteBuffer in) throws IOException { DataInputByteBuffer input = new DataInputByteBuffer(); - input.reset(new ByteBuffer[]{in}); + input.reset(new ByteBuffer[] { in }); bitmap.deserialize(input); } @@ -137,11 +142,12 @@ public class BitmapCounter implements Comparable<BitmapCounter> { int len; DataInputByteBuffer input = new DataInputByteBuffer(); - input.reset(new ByteBuffer[]{in}); + input.reset(new ByteBuffer[] { in }); MutableRoaringBitmap bitmap = new MutableRoaringBitmap(); try { bitmap.deserialize(input); } catch (IOException e) { + throw new IllegalStateException(e); } len = in.position() - mark; @@ -190,11 +196,11 @@ public class BitmapCounter implements Comparable<BitmapCounter> { } public int read() { - return -1 == this.read(this.scratch, 0, 1)?-1:this.scratch[0] & 255; + return -1 == this.read(this.scratch, 0, 1) ? -1 : this.scratch[0] & 255; } public int read(byte[] b, int off, int len) { - if(this.bidx >= this.buffers.length) { + if (this.bidx >= this.buffers.length) { return -1; } else { int cur = 0; @@ -205,7 +211,7 @@ public class BitmapCounter implements Comparable<BitmapCounter> { cur += rem; off += rem; len -= rem; - } while(len > 0 && ++this.bidx < this.buffers.length); + } while (len > 0 && ++this.bidx < this.buffers.length); this.pos += cur; return cur; @@ -218,7 +224,7 @@ public class BitmapCounter implements Comparable<BitmapCounter> { ByteBuffer[] arr$ = buffers; int len$ = buffers.length; - for(int i$ = 0; i$ < len$; ++i$) { + for (int i$ = 0; i$ < len$; ++i$) { ByteBuffer b = arr$[i$]; this.length += b.remaining(); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapDistinctCountAggFunc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapDistinctCountAggFunc.java b/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapDistinctCountAggFunc.java index be6d28a..d039b6d 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapDistinctCountAggFunc.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapDistinctCountAggFunc.java @@ -26,27 +26,27 @@ import org.slf4j.LoggerFactory; */ public class BitmapDistinctCountAggFunc { - private static final Logger logger = LoggerFactory.getLogger(BitmapDistinctCountAggFunc.class); - - public static BitmapCounter init() { - return null; - } - - public static BitmapCounter add(BitmapCounter counter, Object v) { - BitmapCounter c = (BitmapCounter) v; - if (counter == null) { - return new BitmapCounter(c); - } else { - counter.merge(c); - return counter; - } - } - - public static BitmapCounter merge(BitmapCounter counter0, Object counter1) { - return add(counter0, counter1); - } - - public static long result(BitmapCounter counter) { - return counter == null ? 0L : counter.getCount(); - } + private static final Logger logger = LoggerFactory.getLogger(BitmapDistinctCountAggFunc.class); + + public static BitmapCounter init() { + return null; + } + + public static BitmapCounter add(BitmapCounter counter, Object v) { + BitmapCounter c = (BitmapCounter) v; + if (counter == null) { + return new BitmapCounter(c); + } else { + counter.merge(c); + return counter; + } + } + + public static BitmapCounter merge(BitmapCounter counter0, Object counter1) { + return add(counter0, counter1); + } + + public static long result(BitmapCounter counter) { + return counter == null ? 0L : counter.getCount(); + } } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapMeasureType.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapMeasureType.java b/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapMeasureType.java index 3b0fe29..be96eb5 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapMeasureType.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapMeasureType.java @@ -18,8 +18,11 @@ package org.apache.kylin.measure.bitmap; -import org.apache.kylin.common.util.ByteArray; -import org.apache.kylin.common.util.BytesUtil; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + import org.apache.kylin.common.util.Dictionary; import org.apache.kylin.measure.MeasureAggregator; import org.apache.kylin.measure.MeasureIngester; @@ -31,11 +34,6 @@ import org.apache.kylin.metadata.model.FunctionDesc; import org.apache.kylin.metadata.model.MeasureDesc; import org.apache.kylin.metadata.model.TblColRef; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - /** * Created by sunyerui on 15/12/10. */ http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapSerializer.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapSerializer.java b/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapSerializer.java index e3ce852..089d18c 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapSerializer.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapSerializer.java @@ -18,12 +18,12 @@ package org.apache.kylin.measure.bitmap; -import org.apache.kylin.metadata.datatype.DataType; -import org.apache.kylin.metadata.datatype.DataTypeSerializer; - import java.io.IOException; import java.nio.ByteBuffer; +import org.apache.kylin.metadata.datatype.DataType; +import org.apache.kylin.metadata.datatype.DataTypeSerializer; + /** * Created by sunyerui on 15/12/1. */ http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/dim/DimCountDistinctMeasureType.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/dim/DimCountDistinctMeasureType.java b/core-metadata/src/main/java/org/apache/kylin/measure/dim/DimCountDistinctMeasureType.java index 9cd5357..7e4e529 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/dim/DimCountDistinctMeasureType.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/dim/DimCountDistinctMeasureType.java @@ -23,7 +23,6 @@ import org.apache.kylin.measure.MeasureIngester; import org.apache.kylin.measure.MeasureType; import org.apache.kylin.measure.MeasureTypeFactory; import org.apache.kylin.metadata.datatype.DataType; -import org.apache.kylin.metadata.datatype.DataTypeSerializer; import org.apache.kylin.metadata.model.MeasureDesc; import org.apache.kylin.metadata.realization.SQLDigest; @@ -54,6 +53,7 @@ public class DimCountDistinctMeasureType extends MeasureType<Object> { } } + @Override public MeasureIngester newIngester() { throw new UnsupportedOperationException("No ingester for this measure type."); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/extendedcolumn/ExtendedColumnMeasureType.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/extendedcolumn/ExtendedColumnMeasureType.java b/core-metadata/src/main/java/org/apache/kylin/measure/extendedcolumn/ExtendedColumnMeasureType.java index f0b4371..d566331 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/extendedcolumn/ExtendedColumnMeasureType.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/extendedcolumn/ExtendedColumnMeasureType.java @@ -22,7 +22,6 @@ import java.util.Collection; import java.util.List; import java.util.Map; -import org.apache.commons.io.Charsets; import org.apache.kylin.common.util.ByteArray; import org.apache.kylin.common.util.Bytes; import org.apache.kylin.common.util.Dictionary; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusCounter.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusCounter.java b/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusCounter.java index 823a08f..11fda52 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusCounter.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusCounter.java @@ -71,7 +71,7 @@ public class HyperLogLogPlusCounter implements Serializable, Comparable<HyperLog public void clear() { byte zero = (byte) 0; if (singleBucket == -1) { - ; + //nothing } else if (singleBucket >= 0) { registers[singleBucket] = 0; } else { @@ -223,7 +223,7 @@ public class HyperLogLogPlusCounter implements Serializable, Comparable<HyperLog if (scheme == 0) { // map scheme BytesUtil.writeVInt(size, out); if (singleBucket == -1) { - ; // no non-zero register + // no non-zero register } else if (singleBucket >= 0) { writeUnsigned(singleBucket, indexLen, out); out.put(registers[singleBucket]); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusTable.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusTable.java b/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusTable.java index d5dc863..9d8de07 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusTable.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusTable.java @@ -57,8 +57,8 @@ public class HyperLogLogPlusTable { 4704.6222, 4731.9862, 4755.4174, 4781.2628, 4804.332, 4832.3048, 4862.8752, 4883.4148, 4906.9544, 4935.3516, 4954.3532, 4984.0248, 5011.217, 5035.3258, 5057.3672, 5084.1828, }, // precision 11 { 1477, 1501.6014, 1526.5802, 1551.7942, 1577.3042, 1603.2062, 1629.8402, 1656.2292, 1682.9462, 1709.9926, 1737.3026, 1765.4252, 1793.0578, 1821.6092, 1849.626, 1878.5568, 1908.527, 1937.5154, 1967.1874, 1997.3878, 2027.37, 2058.1972, 2089.5728, 2120.1012, 2151.9668, 2183.292, 2216.0772, 2247.8578, 2280.6562, 2313.041, 2345.714, 2380.3112, 2414.1806, 2447.9854, 2481.656, 2516.346, 2551.5154, 2586.8378, 2621.7448, 2656.6722, 2693.5722, 2729.1462, 2765.4124, 2802.8728, 2838.898, 2876.408, 2913.4926, 2951.4938, 2989.6776, 3026.282, 3065.7704, 3104.1012, 3143.7388, 3181.6876, 3221.1872, 3261.5048, 3300.0214, 3339.806, 3381.409, 3421.4144, 3461.4294, 3502.2286, 3544.651, 3586.6156, 3627.337, 3670.083, 3711.1538, 3753.5094, 3797.01, 3838.6686, 3882.1678, 3922.8116, 3967.9978, 4009.9204, 4054.3286, 4097.5706, 4140.6014, 4185.544, 4229.5976, 4274.583, 4316.9438, 4361.672, 4406.2786, 4451.8628, 4496.1834, 4543.505, 4589.1816, 4632.5188, 4678.2294, 4724.8908, 4769.0194, 4817.052, - 4861.4588, 4910.1596, 4956.4344, 5002.5238, 5048.13, 5093.6374, 5142.8162, 5187.7894, 5237.3984, 5285.6078, 5331.0858, 5379.1036, 5428.6258, 5474.6018, 5522.7618, 5571.5822, 5618.59, 5667.9992, 5714.88, 5763.454, 5808.6982, 5860.3644, 5910.2914, 5953.571, 6005.9232, 6055.1914, 6104.5882, 6154.5702, 6199.7036, 6251.1764, 6298.7596, 6350.0302, 6398.061, 6448.4694, 6495.933, 6548.0474, 6597.7166, 6646.9416, 6695.9208, 6742.6328, 6793.5276, 6842.1934, 6894.2372, 6945.3864, 6996.9228, 7044.2372, 7094.1374, 7142.2272, 7192.2942, 7238.8338, 7288.9006, 7344.0908, 7394.8544, 7443.5176, 7490.4148, 7542.9314, 7595.6738, 7641.9878, 7694.3688, 7743.0448, 7797.522, 7845.53, 7899.594, 7950.3132, 7996.455, 8050.9442, 8092.9114, 8153.1374, 8197.4472, 8252.8278, 8301.8728, 8348.6776, 8401.4698, 8453.551, 8504.6598, 8553.8944, 8604.1276, 8657.6514, 8710.3062, 8758.908, 8807.8706, 8862.1702, 8910.4668, 8960.77, 9007.2766, 9063.164, 9121.0534, 9164.1354, 9218.1594, 9267.767, - 9319.0594, 9372.155, 9419.7126, 9474.3722, 9520.1338, 9572.368, 9622.7702, 9675.8448, 9726.5396, 9778.7378, 9827.6554, 9878.1922, 9928.7782, 9978.3984, 10026.578, 10076.5626, 10137.1618, 10177.5244, 10229.9176, }, + 4861.4588, 4910.1596, 4956.4344, 5002.5238, 5048.13, 5093.6374, 5142.8162, 5187.7894, 5237.3984, 5285.6078, 5331.0858, 5379.1036, 5428.6258, 5474.6018, 5522.7618, 5571.5822, 5618.59, 5667.9992, 5714.88, 5763.454, 5808.6982, 5860.3644, 5910.2914, 5953.571, 6005.9232, 6055.1914, 6104.5882, 6154.5702, 6199.7036, 6251.1764, 6298.7596, 6350.0302, 6398.061, 6448.4694, 6495.933, 6548.0474, 6597.7166, 6646.9416, 6695.9208, 6742.6328, 6793.5276, 6842.1934, 6894.2372, 6945.3864, 6996.9228, 7044.2372, 7094.1374, 7142.2272, 7192.2942, 7238.8338, 7288.9006, 7344.0908, 7394.8544, 7443.5176, 7490.4148, 7542.9314, 7595.6738, 7641.9878, 7694.3688, 7743.0448, 7797.522, 7845.53, 7899.594, 7950.3132, 7996.455, 8050.9442, 8092.9114, 8153.1374, 8197.4472, 8252.8278, 8301.8728, 8348.6776, 8401.4698, 8453.551, 8504.6598, 8553.8944, 8604.1276, 8657.6514, 8710.3062, 8758.908, 8807.8706, 8862.1702, 8910.4668, 8960.77, 9007.2766, 9063.164, 9121.0534, 9164.1354, 9218.1594, 9267.767, 9319.059 4, + 9372.155, 9419.7126, 9474.3722, 9520.1338, 9572.368, 9622.7702, 9675.8448, 9726.5396, 9778.7378, 9827.6554, 9878.1922, 9928.7782, 9978.3984, 10026.578, 10076.5626, 10137.1618, 10177.5244, 10229.9176, }, // precision 12 { 2954, 3003.4782, 3053.3568, 3104.3666, 3155.324, 3206.9598, 3259.648, 3312.539, 3366.1474, 3420.2576, 3474.8376, 3530.6076, 3586.451, 3643.38, 3700.4104, 3757.5638, 3815.9676, 3875.193, 3934.838, 3994.8548, 4055.018, 4117.1742, 4178.4482, 4241.1294, 4304.4776, 4367.4044, 4431.8724, 4496.3732, 4561.4304, 4627.5326, 4693.949, 4761.5532, 4828.7256, 4897.6182, 4965.5186, 5034.4528, 5104.865, 5174.7164, 5244.6828, 5316.6708, 5387.8312, 5459.9036, 5532.476, 5604.8652, 5679.6718, 5753.757, 5830.2072, 5905.2828, 5980.0434, 6056.6264, 6134.3192, 6211.5746, 6290.0816, 6367.1176, 6447.9796, 6526.5576, 6606.1858, 6686.9144, 6766.1142, 6847.0818, 6927.9664, 7010.9096, 7091.0816, 7175.3962, 7260.3454, 7344.018, 7426.4214, 7511.3106, 7596.0686, 7679.8094, 7765.818, 7852.4248, 7936.834, 8022.363, 8109.5066, 8200.4554, 8288.5832, 8373.366, 8463.4808, 8549.7682, 8642.0522, 8728.3288, 8820.9528, 8907.727, 9001.0794, 9091.2522, 9179.988, 9269.852, 9362.6394, 9453.642, 9546.9024, 9640.6616 , 9732.6622, 9824.3254, 9917.7484, 10007.9392, 10106.7508, 10196.2152, 10289.8114, 10383.5494, 10482.3064, 10576.8734, 10668.7872, 10764.7156, 10862.0196, 10952.793, 11049.9748, 11146.0702, 11241.4492, 11339.2772, 11434.2336, 11530.741, 11627.6136, 11726.311, 11821.5964, 11918.837, 12015.3724, 12113.0162, 12213.0424, 12306.9804, 12408.4518, 12504.8968, 12604.586, 12700.9332, 12798.705, 12898.5142, 12997.0488, 13094.788, 13198.475, 13292.7764, 13392.9698, 13486.8574, 13590.1616, 13686.5838, 13783.6264, 13887.2638, 13992.0978, 14081.0844, 14189.9956, 14280.0912, 14382.4956, 14486.4384, 14588.1082, 14686.2392, 14782.276, 14888.0284, 14985.1864, 15088.8596, 15187.0998, 15285.027, 15383.6694, 15495.8266, 15591.3736, 15694.2008, 15790.3246, 15898.4116, 15997.4522, 16095.5014, 16198.8514, 16291.7492, 16402.6424, 16499.1266, 16606.2436, 16697.7186, 16796.3946, 16902.3376, 17005.7672, 17100.814, 17206.8282, 17305.8262, 17416.0744, 17508.4092, 17617.0178, 17715.4554, @@ -113,17 +113,17 @@ public class HyperLogLogPlusTable { 36.2146, 36.6684, 35.9946, 33.123, 33.4338, 31.7378000000001, 29.076, 28.9692, 27.4964, 27.0998, 25.9864, 26.7754, 24.3208, 23.4838, 22.7388000000001, 24.0758000000001, 21.9097999999999, 20.9728, 19.9228000000001, 19.9292, 16.617, 17.05, 18.2996000000001, 15.6128000000001, 15.7392, 14.5174, 13.6322, 12.2583999999999, 13.3766000000001, 11.423, 13.1232, 9.51639999999998, 10.5938000000001, 9.59719999999993, 8.12220000000002, 9.76739999999995, 7.50440000000003, 7.56999999999994, 6.70440000000008, 6.41419999999994, 6.71019999999999, 5.60940000000005, 4.65219999999999, 6.84099999999989, 3.4072000000001, 3.97859999999991, 3.32760000000007, 5.52160000000003, 3.31860000000006, 2.06940000000009, 4.35400000000004, 1.57500000000005, 0.280799999999999, 2.12879999999996, -0.214799999999968, -0.0378000000000611, -0.658200000000079, 0.654800000000023, -0.0697999999999865, 0.858400000000074, -2.52700000000004, -2.1751999999999, -3.35539999999992, -1.04019999999991, -0.651000000000067, -2.14439999999991, -1.96659999999997, -3.97939999999994, -0.604400000000169, -3.08260000000018, -3.39159999999993, -5.29640000000018, -5.38920000000007, -5.08759999999984, -4.69900000000007, -5.23720000000003, -3.15779999999995, -4.97879999999986, -4.89899999999989, -7.48880000000008, -5.94799999999987, -5.68060000000014, -6.67180000000008, -4.70499999999993, -7.27779999999984, -4.6579999999999, -4.4362000000001, -4.32139999999981, -5.18859999999995, -6.66879999999992, -6.48399999999992, -5.1260000000002, -4.4032000000002, -6.13500000000022, -5.80819999999994, -4.16719999999987, -4.15039999999999, -7.45600000000013, -7.24080000000004, -9.83179999999993, -5.80420000000004, -8.6561999999999, -6.99940000000015, -10.5473999999999, -7.34139999999979, -6.80999999999995, -6.29719999999998, -6.23199999999997, }, // precision 10 - { 737.1256, 724.4234, 711.1064, 698.4732, 685.4636, 673.0644, 660.488, 647.9654, 636.0832, 623.7864, 612.1992, 600.2176, 588.5228, 577.1716, 565.7752, 554.899, 543.6126, 532.6492, 521.9474, 511.5214, 501.1064, 490.6364, 480.2468, 470.4588, 460.3832, 451.0584, 440.8606, 431.3868, 422.5062, 413.1862, 404.463, 395.339, 386.1936, 378.1292, 369.1854, 361.2908, 353.3324, 344.8518, 337.5204, 329.4854, 321.9318, 314.552, 306.4658, 299.4256, 292.849, 286.152, 278.8956, 271.8792, 265.118, 258.62, 252.5132, 245.9322, 239.7726, 233.6086, 227.5332, 222.5918, 216.4294, 210.7662, 205.4106, 199.7338, 194.9012, 188.4486, 183.1556, 178.6338, 173.7312, 169.6264, 163.9526, 159.8742, 155.8326, 151.1966, 147.5594, 143.07, 140.037, 134.1804, 131.071, 127.4884, 124.0848, 120.2944, 117.333, 112.9626, 110.2902, 107.0814, 103.0334, 99.4832000000001, 96.3899999999999, 93.7202000000002, 90.1714000000002, 87.2357999999999, 85.9346, 82.8910000000001, 80.0264000000002, 78.3834000000002, - 75.1543999999999, 73.8683999999998, 70.9895999999999, 69.4367999999999, 64.8701999999998, 65.0408000000002, 61.6738, 59.5207999999998, 57.0158000000001, 54.2302, 53.0962, 50.4985999999999, 52.2588000000001, 47.3914, 45.6244000000002, 42.8377999999998, 43.0072, 40.6516000000001, 40.2453999999998, 35.2136, 36.4546, 33.7849999999999, 33.2294000000002, 32.4679999999998, 30.8670000000002, 28.6507999999999, 28.9099999999999, 27.5983999999999, 26.1619999999998, 24.5563999999999, 23.2328000000002, 21.9484000000002, 21.5902000000001, 21.3346000000001, 17.7031999999999, 20.6111999999998, 19.5545999999999, 15.7375999999999, 17.0720000000001, 16.9517999999998, 15.326, 13.1817999999998, 14.6925999999999, 13.0859999999998, 13.2754, 10.8697999999999, 11.248, 7.3768, 4.72339999999986, 7.97899999999981, 8.7503999999999, 7.68119999999999, 9.7199999999998, 7.73919999999998, 5.6224000000002, 7.44560000000001, 6.6601999999998, 5.9058, 4.00199999999995, 4.51699999999983, - 4.68240000000014, 3.86220000000003, 5.13639999999987, 5.98500000000013, 2.47719999999981, 2.61999999999989, 1.62800000000016, 4.65000000000009, 0.225599999999758, 0.831000000000131, -0.359400000000278, 1.27599999999984, -2.92559999999958, -0.0303999999996449, 2.37079999999969, -2.0033999999996, 0.804600000000391, 0.30199999999968, 1.1247999999996, -2.6880000000001, 0.0321999999996478, -1.18099999999959, -3.9402, -1.47940000000017, -0.188400000000001, -2.10720000000038, -2.04159999999956, -3.12880000000041, -4.16160000000036, -0.612799999999879, -3.48719999999958, -8.17900000000009, -5.37780000000021, -4.01379999999972, -5.58259999999973, -5.73719999999958, -7.66799999999967, -5.69520000000011, -1.1247999999996, -5.58520000000044, -8.04560000000038, -4.64840000000004, -11.6468000000004, -7.97519999999986, -5.78300000000036, -7.67420000000038, -10.6328000000003, -9.81720000000041, }, + { 737.1256, 724.4234, 711.1064, 698.4732, 685.4636, 673.0644, 660.488, 647.9654, 636.0832, 623.7864, 612.1992, 600.2176, 588.5228, 577.1716, 565.7752, 554.899, 543.6126, 532.6492, 521.9474, 511.5214, 501.1064, 490.6364, 480.2468, 470.4588, 460.3832, 451.0584, 440.8606, 431.3868, 422.5062, 413.1862, 404.463, 395.339, 386.1936, 378.1292, 369.1854, 361.2908, 353.3324, 344.8518, 337.5204, 329.4854, 321.9318, 314.552, 306.4658, 299.4256, 292.849, 286.152, 278.8956, 271.8792, 265.118, 258.62, 252.5132, 245.9322, 239.7726, 233.6086, 227.5332, 222.5918, 216.4294, 210.7662, 205.4106, 199.7338, 194.9012, 188.4486, 183.1556, 178.6338, 173.7312, 169.6264, 163.9526, 159.8742, 155.8326, 151.1966, 147.5594, 143.07, 140.037, 134.1804, 131.071, 127.4884, 124.0848, 120.2944, 117.333, 112.9626, 110.2902, 107.0814, 103.0334, 99.4832000000001, 96.3899999999999, 93.7202000000002, 90.1714000000002, 87.2357999999999, 85.9346, 82.8910000000001, 80.0264000000002, 78.3834000000002, 75.154399999999 9, + 73.8683999999998, 70.9895999999999, 69.4367999999999, 64.8701999999998, 65.0408000000002, 61.6738, 59.5207999999998, 57.0158000000001, 54.2302, 53.0962, 50.4985999999999, 52.2588000000001, 47.3914, 45.6244000000002, 42.8377999999998, 43.0072, 40.6516000000001, 40.2453999999998, 35.2136, 36.4546, 33.7849999999999, 33.2294000000002, 32.4679999999998, 30.8670000000002, 28.6507999999999, 28.9099999999999, 27.5983999999999, 26.1619999999998, 24.5563999999999, 23.2328000000002, 21.9484000000002, 21.5902000000001, 21.3346000000001, 17.7031999999999, 20.6111999999998, 19.5545999999999, 15.7375999999999, 17.0720000000001, 16.9517999999998, 15.326, 13.1817999999998, 14.6925999999999, 13.0859999999998, 13.2754, 10.8697999999999, 11.248, 7.3768, 4.72339999999986, 7.97899999999981, 8.7503999999999, 7.68119999999999, 9.7199999999998, 7.73919999999998, 5.6224000000002, 7.44560000000001, 6.6601999999998, 5.9058, 4.00199999999995, 4.51699999999983, 4.68240000000014, + 3.86220000000003, 5.13639999999987, 5.98500000000013, 2.47719999999981, 2.61999999999989, 1.62800000000016, 4.65000000000009, 0.225599999999758, 0.831000000000131, -0.359400000000278, 1.27599999999984, -2.92559999999958, -0.0303999999996449, 2.37079999999969, -2.0033999999996, 0.804600000000391, 0.30199999999968, 1.1247999999996, -2.6880000000001, 0.0321999999996478, -1.18099999999959, -3.9402, -1.47940000000017, -0.188400000000001, -2.10720000000038, -2.04159999999956, -3.12880000000041, -4.16160000000036, -0.612799999999879, -3.48719999999958, -8.17900000000009, -5.37780000000021, -4.01379999999972, -5.58259999999973, -5.73719999999958, -7.66799999999967, -5.69520000000011, -1.1247999999996, -5.58520000000044, -8.04560000000038, -4.64840000000004, -11.6468000000004, -7.97519999999986, -5.78300000000036, -7.67420000000038, -10.6328000000003, -9.81720000000041, }, // precision 11 { 1476, 1449.6014, 1423.5802, 1397.7942, 1372.3042, 1347.2062, 1321.8402, 1297.2292, 1272.9462, 1248.9926, 1225.3026, 1201.4252, 1178.0578, 1155.6092, 1132.626, 1110.5568, 1088.527, 1066.5154, 1045.1874, 1024.3878, 1003.37, 982.1972, 962.5728, 942.1012, 922.9668, 903.292, 884.0772, 864.8578, 846.6562, 828.041, 809.714, 792.3112, 775.1806, 757.9854, 740.656, 724.346, 707.5154, 691.8378, 675.7448, 659.6722, 645.5722, 630.1462, 614.4124, 600.8728, 585.898, 572.408, 558.4926, 544.4938, 531.6776, 517.282, 505.7704, 493.1012, 480.7388, 467.6876, 456.1872, 445.5048, 433.0214, 420.806, 411.409, 400.4144, 389.4294, 379.2286, 369.651, 360.6156, 350.337, 342.083, 332.1538, 322.5094, 315.01, 305.6686, 298.1678, 287.8116, 280.9978, 271.9204, 265.3286, 257.5706, 249.6014, 242.544, 235.5976, 229.583, 220.9438, 214.672, 208.2786, 201.8628, 195.1834, 191.505, 186.1816, 178.5188, 172.2294, 167.8908, 161.0194, 158.052, 151.4588, 148.1596, 143.4344, 138.5238, 133.13, 127.6374, 124.8162, 118.7894, 117.3984, 114.6078, 109.0858, 105.1036, 103.6258, 98.6018000000004, 95.7618000000002, 93.5821999999998, 88.5900000000001, 86.9992000000002, 82.8800000000001, 80.4539999999997, 74.6981999999998, 74.3644000000004, 73.2914000000001, 65.5709999999999, 66.9232000000002, 65.1913999999997, 62.5882000000001, 61.5702000000001, 55.7035999999998, 56.1764000000003, 52.7596000000003, 53.0302000000001, 49.0609999999997, 48.4694, 44.933, 46.0474000000004, 44.7165999999997, 41.9416000000001, 39.9207999999999, 35.6328000000003, 35.5276000000003, 33.1934000000001, 33.2371999999996, 33.3864000000003, 33.9228000000003, 30.2371999999996, 29.1373999999996, 25.2272000000003, 24.2942000000003, 19.8338000000003, 18.9005999999999, 23.0907999999999, 21.8544000000002, 19.5176000000001, 15.4147999999996, 16.9314000000004, 18.6737999999996, 12.9877999999999, 14.3688000000002, 12.0447999999997, 15.5219999999999, 12.5299999999997, 14.5940000000001, 14.3131999999996, 9.45499999999993, 12.9441999999999, 3.91139999999996, 13.1373999999996, 5.44720000000052, 9.82779999999912, 7.87279999999919, 3.67760000000089, 5.46980000000076, 5.55099999999948, 5.65979999999945, 3.89439999999922, 3.1275999999998, 5.65140000000065, 6.3062000000009, 3.90799999999945, 1.87060000000019, 5.17020000000048, 2.46680000000015, 0.770000000000437, -3.72340000000077, 1.16400000000067, 8.05340000000069, 0.135399999999208, 2.15940000000046, 0.766999999999825, 1.0594000000001, 3.15500000000065, -0.287399999999252, 2.37219999999979, -2.86620000000039, -1.63199999999961, -2.22979999999916, -0.15519999999924, -1.46039999999994, -0.262199999999211, -2.34460000000036, -2.8078000000005, -3.22179999999935, -5.60159999999996, -8.42200000000048, -9.43740000000071, 0.161799999999857, -10.4755999999998, -10.0823999999993, }, // precision 12 { 2953, 2900.4782, 2848.3568, 2796.3666, 2745.324, 2694.9598, 2644.648, 2595.539, 2546.1474, 2498.2576, 2450.8376, 2403.6076, 2357.451, 2311.38, 2266.4104, 2221.5638, 2176.9676, 2134.193, 2090.838, 2048.8548, 2007.018, 1966.1742, 1925.4482, 1885.1294, 1846.4776, 1807.4044, 1768.8724, 1731.3732, 1693.4304, 1657.5326, 1621.949, 1586.5532, 1551.7256, 1517.6182, 1483.5186, 1450.4528, 1417.865, 1385.7164, 1352.6828, 1322.6708, 1291.8312, 1260.9036, 1231.476, 1201.8652, 1173.6718, 1145.757, 1119.2072, 1092.2828, 1065.0434, 1038.6264, 1014.3192, 988.5746, 965.0816, 940.1176, 917.9796, 894.5576, 871.1858, 849.9144, 827.1142, 805.0818, 783.9664, 763.9096, 742.0816, 724.3962, 706.3454, 688.018, 667.4214, 650.3106, 633.0686, 613.8094, 597.818, 581.4248, 563.834, 547.363, 531.5066, 520.455400000001, 505.583199999999, 488.366, 476.480799999999, 459.7682, 450.0522, 434.328799999999, 423.952799999999, 408.727000000001, 399.079400000001, 387.252200000001, 373.987999999999, - 360.852000000001, 351.6394, 339.642, 330.902400000001, 322.661599999999, 311.662200000001, 301.3254, 291.7484, 279.939200000001, 276.7508, 263.215200000001, 254.811400000001, 245.5494, 242.306399999999, 234.8734, 223.787200000001, 217.7156, 212.0196, 200.793, 195.9748, 189.0702, 182.449199999999, 177.2772, 170.2336, 164.741, 158.613600000001, 155.311, 147.5964, 142.837, 137.3724, 132.0162, 130.0424, 121.9804, 120.451800000001, 114.8968, 111.585999999999, 105.933199999999, 101.705, 98.5141999999996, 95.0488000000005, 89.7880000000005, 91.4750000000004, 83.7764000000006, 80.9698000000008, 72.8574000000008, 73.1615999999995, 67.5838000000003, 62.6263999999992, 63.2638000000006, 66.0977999999996, 52.0843999999997, 58.9956000000002, 47.0912000000008, 46.4956000000002, 48.4383999999991, 47.1082000000006, 43.2392, 37.2759999999998, 40.0283999999992, 35.1864000000005, 35.8595999999998, 32.0998, 28.027, 23.6694000000007, 33.8266000000003, 26.3736000000008, - 27.2008000000005, 21.3245999999999, 26.4115999999995, 23.4521999999997, 19.5013999999992, 19.8513999999996, 10.7492000000002, 18.6424000000006, 13.1265999999996, 18.2436000000016, 6.71860000000015, 3.39459999999963, 6.33759999999893, 7.76719999999841, 0.813999999998487, 3.82819999999992, 0.826199999999517, 8.07440000000133, -1.59080000000176, 5.01780000000144, 0.455399999998917, -0.24199999999837, 0.174800000000687, -9.07640000000174, -4.20160000000033, -3.77520000000004, -4.75179999999818, -5.3724000000002, -8.90680000000066, -6.10239999999976, -5.74120000000039, -9.95339999999851, -3.86339999999836, -13.7304000000004, -16.2710000000006, -7.51359999999841, -3.30679999999847, -13.1339999999982, -10.0551999999989, -6.72019999999975, -8.59660000000076, -10.9307999999983, -1.8775999999998, -4.82259999999951, -13.7788, -21.6470000000008, -10.6735999999983, -15.7799999999988, }, + 360.852000000001, 351.6394, 339.642, 330.902400000001, 322.661599999999, 311.662200000001, 301.3254, 291.7484, 279.939200000001, 276.7508, 263.215200000001, 254.811400000001, 245.5494, 242.306399999999, 234.8734, 223.787200000001, 217.7156, 212.0196, 200.793, 195.9748, 189.0702, 182.449199999999, 177.2772, 170.2336, 164.741, 158.613600000001, 155.311, 147.5964, 142.837, 137.3724, 132.0162, 130.0424, 121.9804, 120.451800000001, 114.8968, 111.585999999999, 105.933199999999, 101.705, 98.5141999999996, 95.0488000000005, 89.7880000000005, 91.4750000000004, 83.7764000000006, 80.9698000000008, 72.8574000000008, 73.1615999999995, 67.5838000000003, 62.6263999999992, 63.2638000000006, 66.0977999999996, 52.0843999999997, 58.9956000000002, 47.0912000000008, 46.4956000000002, 48.4383999999991, 47.1082000000006, 43.2392, 37.2759999999998, 40.0283999999992, 35.1864000000005, 35.8595999999998, 32.0998, 28.027, 23.6694000000007, 33.8266000000003, 26.3736000000008, 27.200800000000 5, + 21.3245999999999, 26.4115999999995, 23.4521999999997, 19.5013999999992, 19.8513999999996, 10.7492000000002, 18.6424000000006, 13.1265999999996, 18.2436000000016, 6.71860000000015, 3.39459999999963, 6.33759999999893, 7.76719999999841, 0.813999999998487, 3.82819999999992, 0.826199999999517, 8.07440000000133, -1.59080000000176, 5.01780000000144, 0.455399999998917, -0.24199999999837, 0.174800000000687, -9.07640000000174, -4.20160000000033, -3.77520000000004, -4.75179999999818, -5.3724000000002, -8.90680000000066, -6.10239999999976, -5.74120000000039, -9.95339999999851, -3.86339999999836, -13.7304000000004, -16.2710000000006, -7.51359999999841, -3.30679999999847, -13.1339999999982, -10.0551999999989, -6.72019999999975, -8.59660000000076, -10.9307999999983, -1.8775999999998, -4.82259999999951, -13.7788, -21.6470000000008, -10.6735999999983, -15.7799999999988, }, // precision 13 { 5907.5052, 5802.2672, 5697.347, 5593.5794, 5491.2622, 5390.5514, 5290.3376, 5191.6952, 5093.5988, 4997.3552, 4902.5972, 4808.3082, 4715.5646, 4624.109, 4533.8216, 4444.4344, 4356.3802, 4269.2962, 4183.3784, 4098.292, 4014.79, 3932.4574, 3850.6036, 3771.2712, 3691.7708, 3615.099, 3538.1858, 3463.4746, 3388.8496, 3315.6794, 3244.5448, 3173.7516, 3103.3106, 3033.6094, 2966.5642, 2900.794, 2833.7256, 2769.81, 2707.3196, 2644.0778, 2583.9916, 2523.4662, 2464.124, 2406.073, 2347.0362, 2292.1006, 2238.1716, 2182.7514, 2128.4884, 2077.1314, 2025.037, 1975.3756, 1928.933, 1879.311, 1831.0006, 1783.2144, 1738.3096, 1694.5144, 1649.024, 1606.847, 1564.7528, 1525.3168, 1482.5372, 1443.9668, 1406.5074, 1365.867, 1329.2186, 1295.4186, 1257.9716, 1225.339, 1193.2972, 1156.3578, 1125.8686, 1091.187, 1061.4094, 1029.4188, 1000.9126, 972.3272, 944.004199999999, 915.7592, 889.965, 862.834200000001, 840.4254, 812.598399999999, 785.924200000001, 763.050999999999, 741.793799999999, 721.466, 699.040799999999, 677.997200000002, 649.866999999998, 634.911800000002, 609.8694, 591.981599999999, 570.2922, 557.129199999999, 538.3858, 521.872599999999, 502.951400000002, 495.776399999999, 475.171399999999, 459.751, 439.995200000001, 426.708999999999, 413.7016, 402.3868, 387.262599999998, 372.0524, 357.050999999999, 342.5098, 334.849200000001, 322.529399999999, 311.613799999999, 295.848000000002, 289.273000000001, 274.093000000001, 263.329600000001, 251.389599999999, 245.7392, 231.9614, 229.7952, 217.155200000001, 208.9588, 199.016599999999, 190.839199999999, 180.6976, 176.272799999999, 166.976999999999, 162.5252, 151.196400000001, 149.386999999999, 133.981199999998, 130.0586, 130.164000000001, 122.053400000001, 110.7428, 108.1276, 106.232400000001, 100.381600000001, 98.7668000000012, 86.6440000000002, 79.9768000000004, 82.4722000000002, 68.7026000000005, 70.1186000000016, 71.9948000000004, 58.998599999999, 59.0492000000013, 56.9818000000014, 47.5338000000011, http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawAggregator.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawAggregator.java b/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawAggregator.java index 42b41ed..6f66269 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawAggregator.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawAggregator.java @@ -18,12 +18,12 @@ package org.apache.kylin.measure.raw; -import org.apache.kylin.common.util.ByteArray; -import org.apache.kylin.measure.MeasureAggregator; - import java.util.ArrayList; import java.util.List; +import org.apache.kylin.common.util.ByteArray; +import org.apache.kylin.measure.MeasureAggregator; + /** * RAW data Aggregator */ @@ -38,7 +38,7 @@ public class RawAggregator extends MeasureAggregator<List<ByteArray>> { @Override public void aggregate(List<ByteArray> value) { - if(value != null) { + if (value != null) { if (list == null) { list = new ArrayList<>(value.size()); } @@ -54,7 +54,7 @@ public class RawAggregator extends MeasureAggregator<List<ByteArray>> { @Override public int getMemBytesEstimate() { int bytes = 0; - if(list != null) { + if (list != null) { for (ByteArray array : list) { bytes += array.length() + 1; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/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 93fbce3..aa46149 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 @@ -18,6 +18,13 @@ package org.apache.kylin.measure.raw; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + import org.apache.kylin.common.util.ByteArray; import org.apache.kylin.common.util.BytesUtil; import org.apache.kylin.common.util.Dictionary; @@ -38,8 +45,6 @@ import org.apache.kylin.metadata.tuple.TupleInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.*; - public class RawMeasureType extends MeasureType<List<ByteArray>> { private static final Logger logger = LoggerFactory.getLogger(RawMeasureType.class); @@ -172,7 +177,7 @@ public class RawMeasureType extends MeasureType<List<ByteArray>> { unmatchedAggregations.remove(measureDesc.getFunction()); //contain one raw measure : cost * 0.9 - return new CapabilityResult.CapabilityInfluence(){ + return new CapabilityResult.CapabilityInfluence() { @Override public double suggestCostMultiplier() { return 0.9;