Hi ,
hive> desc uc_users;
OK
user_id int
user_modify string
create_time string
start_dt string
end_dt string
hive> desc oc_orders;
OK
order_id int
order_modify string
user_id int
user_modify string
create_time string
order_money int
status int
pay_status int
start_dt string
end_dt string
they are the struct. In RDBMS the user_id and user_modify is FK
,underlined is primary key and the red is my join condition. but now i can find
additional coumnm in the join step.and the key(5847,ufenqi,2016-11-11) in table
orders have multi-result, it's right in logic. now i don't know how to Keep
every record in my lookup table unique with key(5847,ufenqi,2016-11-11)
From: Mars Xu
Date: 2016-12-06 17:04
To: user
Subject: Re: Cube Dup key found
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] 写道:
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