Humm, you can try this: With Kylin 1705 <https://issues.apache.org/jira/browse/KYLIN-1705> you can use Global dictionary Builder, which support 2 Billons of values (versus previous dic 5 Millons)
In Teorical you can migrate from old dics (Kylin 1775 <https://issues.apache.org/jira/browse/KYLIN-1775> ) 2016-12-08 7:57 GMT+01:00 wang...@snqu.com <wang...@snqu.com>: > I improved the version from 1.5.4.1 to 1.6.0 and modified KYLIN_HOME, > and modied "kylin.dictionary.max.cardinality=5000000" to > "kylin.dictionary.max.cardinality=30000000" in file kylin.properties, > then start kylin 1.6-->create model-->create cube-->build cube > I got the following error message: > > java.lang.RuntimeException: Failed to create dictionary on > DEFAULT.TEST_500W_TBL.ROWKEY > at org.apache.kylin.dict.DictionaryManager.buildDictionary( > DictionaryManager.java:325) > at org.apache.kylin.cube.CubeManager.buildDictionary(CubeManager.java:222) > at org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment( > DictionaryGeneratorCLI.java:50) > at org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment( > DictionaryGeneratorCLI.java:41) > at org.apache.kylin.engine.mr.steps.CreateDictionaryJob.run( > CreateDictionaryJob.java:54) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) > at org.apache.kylin.engine.mr.common.HadoopShellExecutable. > doWork(HadoopShellExecutable.java:63) > at org.apache.kylin.job.execution.AbstractExecutable. > execute(AbstractExecutable.java:113) > at org.apache.kylin.job.execution.DefaultChainedExecutable.doWork( > DefaultChainedExecutable.java:57) > at org.apache.kylin.job.execution.AbstractExecutable. > execute(AbstractExecutable.java:113) > at org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run( > DefaultScheduler.java:136) > at java.util.concurrent.ThreadPoolExecutor.runWorker( > ThreadPoolExecutor.java:1142) > at java.util.concurrent.ThreadPoolExecutor$Worker.run( > ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.lang.IllegalArgumentException: Too high cardinality is > not suitable for dictionary -- cardinality: 5359970 > at org.apache.kylin.dict.DictionaryGenerator.buildDictionary( > DictionaryGenerator.java:96) > > > >