[
https://issues.apache.org/jira/browse/KYLIN-696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14502362#comment-14502362
]
Shaofeng SHI commented on KYLIN-696:
------------------------------------
The reason was, Kylin will use lookup table to build dictionary if the column
is a fk; while when the join type not "inner", fact table may have values that
wasn't appeared in lookup table, then it will cause the reported problem. The
fix is, checking whether the join type is "inner", if not, keep using the
distinct values fetched from fact table to build dictionary. The fix has been
pushed to staging branch, waiting for a fulll regression test.
> Dictionary couldn't recognize a value and throw IllegalArgumentException:
> "Not a valid value"
> ---------------------------------------------------------------------------------------------
>
> Key: KYLIN-696
> URL: https://issues.apache.org/jira/browse/KYLIN-696
> Project: Kylin
> Issue Type: Bug
> Components: General
> Affects Versions: v0.6.5, v0.6.6, v0.7.1
> Reporter: Shaofeng SHI
> Assignee: Shaofeng SHI
>
> I have a cube which have several lookups be left joined with the fact table;
> I defined one foreign key as a dimension, then that fk column was added into
> the rowkey, with "dictinoary" = "Y";
> The dictionary was successfully built; while the cube build job was failed,
> the error trace looks like:
> Caused by: java.lang.IllegalArgumentException: Not a valid value:
> 00000000000001020
> at
> org.apache.kylin.dict.TrieDictionary.getIdFromValueBytesImpl(TrieDictionary.java:176)
> at
> org.apache.kylin.dict.NumberDictionary.getIdFromValueBytesImpl(NumberDictionary.java:172)
> at org.apache.kylin.dict.Dictionary.getIdFromValueBytes(Dictionary.java:138)
> at
> org.apache.kylin.dict.TrieDictionary.getIdFromValueImpl(TrieDictionary.java:161)
> at org.apache.kylin.dict.Dictionary.getIdFromValue(Dictionary.java:91)
> Then I dumped the dictionary to local and output all its values; In the mean
> while I run hive SQL to list the distinct values for that column from the
> flat table; Then I found the 1020 is appeared in hive table but not in the
> dictionary;
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)