[ https://issues.apache.org/jira/browse/HIVE-3652?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13490446#comment-13490446 ]
Namit Jain commented on HIVE-3652: ---------------------------------- [~amareshwari], do you think it would be possible to get a cheap implementation with a single mapper performing multiple dimension joins one after the other ? I think, we should start with a few assumptions: 1. The user will not give any map-join hints. Let us derive thin info. from the statistics, as Mark suggested. 2. This should be a single map-only job (no reducer). 3. As a first cut, it might be useful to optimize the query: select /*+ MAPJOIN(b,c) */ from FACT a join DIM1 b on a.k1=b.k1 JOIN DIM2 c on a.k2=c.k2 The above query should not have a back-up task in case the map-join fails, and it should be run as a single map-only job. Once that is done, using cost to convert join into map-join can be explored independently. > Join optimization for star schema > --------------------------------- > > Key: HIVE-3652 > URL: https://issues.apache.org/jira/browse/HIVE-3652 > Project: Hive > Issue Type: Improvement > Components: Query Processor > Reporter: Amareshwari Sriramadasu > Assignee: Amareshwari Sriramadasu > > Currently, if we join one fact table with multiple dimension tables, it > results in multiple mapreduce jobs for each join with dimension table, > because join would be on different keys for each dimension. > Usually all the dimension tables will be small and can fit into memory and so > map-side join can used to join with fact table. > In this issue I want to look at optimizing such query to generate single > mapreduce job sothat mapper loads dimension tables into memory and joins with > fact table on different keys as well. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira