when u join the fact table and lookup table in kylin ,u need to define the join key columns such as ordered,username and date ,right ? in your lookup table (orders table) , it seems that the table has more records when orderedid=5847,username=ufenqi,date=2016-11-11. u need to define an additional column in the join step according to your business meaningness,such as order_seqno.
Keep every record in your lookup table unique . > 在 2016年12月6日,下午4:34,[email protected] 写道: > > Hi, > I use sqoop1.4.6 load data from mysql to hive. The table of orders has > it's own key ,but in kylin seams have something wrong. How to add the key of > the lookup table (my orders table) ? > > Hi, > This error because of some dimension table has more than 1 record when > fact table join on it through the key ‘5847,ufenqi,2016-11-11’, you can > avoid this by add key columns in the join condition. > > >> 在 2016年12月6日,下午3:20,[email protected] <mailto:[email protected]> >> 写道: >> >> Hi, >> I have two tables users and orders, one user can make many orders. >> They're relation is one to many. >> I create the model with inner join users and orders >> Finally i build the cube and raise a Dup key Error, How can i make the >> cube? >> >> java.lang.IllegalStateException: Dup key found, >> key=[5847,ufenqi,2016-11-11], value1=[2615,product,5847,ufenqi,2014-09-09 >> 23:23:31.0,338800,170,10,2016-11-11,2099-12-31], >> value2=[3635,product,5847,ufenqi,2014-09-11 >> 22:51:06.0,336800,170,10,2016-11-11,2099-12-31] >> at org.apache.kylin.dict.lookup.LookupTable.initRow(LookupTable.java:85) >> at org.apache.kylin.dict.lookup.LookupTable.init(LookupTable.java:68) >> at >> org.apache.kylin.dict.lookup.LookupStringTable.init(LookupStringTable.java:79) >> at org.apache.kylin.dict.lookup.LookupTable.<init>(LookupTable.java:56) >> at >> org.apache.kylin.dict.lookup.LookupStringTable.<init>(LookupStringTable.java:65) >> at >> org.apache.kylin.cube.CubeManager.getLookupTable(CubeManager.java:674) >> at >> org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGeneratorCLI.java:60) >> 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) >> result code:2
