kylin报错解决方案

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_18730505/article/details/83502822

1、#4 Step Name: Build Dimension Dictionary报错:

java.lang.IllegalStateException: The table: tableName Dup key found, key=[xxx], value1=*], value2=[***]
	at org.apache.kylin.dict.lookup.LookupTable.initRow(LookupTable.java:86)
	at org.apache.kylin.dict.lookup.LookupTable.init(LookupTable.java:69)
	at org.apache.kylin.dict.lookup.LookupStringTable.init(LookupStringTable.java:79)
	at org.apache.kylin.dict.lookup.LookupTable.<init>(LookupTable.java:57)
	at org.apache.kylin.dict.lookup.LookupStringTable.<init>(LookupStringTable.java:65)
	at org.apache.kylin.cube.CubeManager$DictionaryAssist.getLookupTable(CubeManager.java:1077)
	at org.apache.kylin.cube.CubeManager.getLookupTable(CubeManager.java:975)
	at org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGeneratorCLI.java:95)
	at org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGeneratorCLI.java:49)
	at org.apache.kylin.engine.mr.steps.CreateDictionaryJob.run(CreateDictionaryJob.java:71)
	at org.apache.kylin.engine.mr.MRUtil.runMRJob(MRUtil.java:97)
	at org.apache.kylin.engine.mr.common.HadoopShellExecutable.doWork(HadoopShellExecutable.java:63)
	at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:162)
	at org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:67)
	at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:162)
	at org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:300)
	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:748)

result code:2

出现这种情况的原因是因为事实表与维度表使用left_join在做关联时,事实表中的主键出现了一对多的情况,即kylin在检查唯一性报的错,

解决方案:

让表之间保持1对1的关系

猜你喜欢

转载自blog.csdn.net/qq_18730505/article/details/83502822