[ https://issues.apache.org/jira/browse/HIVE-3276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Namit Jain updated HIVE-3276: ----------------------------- Attachment: hive.3276.11.patch > optimize union sub-queries > -------------------------- > > Key: HIVE-3276 > URL: https://issues.apache.org/jira/browse/HIVE-3276 > Project: Hive > Issue Type: Bug > Reporter: Namit Jain > Assignee: Namit Jain > Attachments: hive.3276.10.patch, hive.3276.11.patch, > HIVE-3276.1.patch, hive.3276.2.patch, hive.3276.3.patch, hive.3276.4.patch, > hive.3276.5.patch, hive.3276.6.patch, hive.3276.7.patch, hive.3276.8.patch, > hive.3276.9.patch > > > It might be a good idea to optimize simple union queries containing > map-reduce jobs in at least one of the sub-qeuries. > For eg: > a query like: > insert overwrite table T1 partition P1 > select * from > ( > subq1 > union all > subq2 > ) u; > today creates 3 map-reduce jobs, one for subq1, another for subq2 and > the final one for the union. > It might be a good idea to optimize this. Instead of creating the union > task, it might be simpler to create a move task (or something like a move > task), where the outputs of the two sub-queries will be moved to the final > directory. This can easily extend to more than 2 sub-queries in the union. > This is very useful if there is a select * followed by filesink after the > union. This can be independently useful, and also be used to optimize the > skewed joins https://cwiki.apache.org/Hive/skewed-join-optimization.html. > If there is a select, filter between the union and the filesink, the select > and the filter can be moved before the union, and the follow-up job can > still be removed. -- 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