我使用配置单元在大范围分区中选择数据时遇到了一些问题
这是我想要执行的HQL:
INSERT OVERWRITE TABLE summary_T partition(DateRange='20131222-20131228')
select col1, col2, col3 From RAW_TABLE
where cdate between '20131222' and '20131228'
and (trim(col1) IS NULL or trim(col1)='')
and length(col2)=12;
“cdate”是表RAW_TABLE
的分区但在给我工作ID
之后却停滞不前我将其更改为:
INSERT OVERWRITE TABLE summary_T partition(DateRange='20131222-20131228')
select col1, col2, col3 From RAW_TABLE
where cdate between '20131222' and '20131225'
and (trim(col1) IS NULL or trim(col1)='')
and length(col2)=12;
然后它开始工作
有没有可以帮助我执行第一个HQL的解决方案?
感谢您的帮助!
答案 0 :(得分:0)
我遇到了类似的问题,并尝试在SELECT语句的末尾使用CLUSTER BY 'partition_column'
。使用它之后,我可以执行我的INSERT以获得更大的日期范围。
因此,如果您将查询更改为:
INSERT OVERWRITE TABLE summary_T partition(DateRange='20131222-20131228')
select col1, col2, col3 From RAW_TABLE
where cdate between '20131222' and '20131228'
and (trim(col1) IS NULL or trim(col1)='')
and length(col2)=12
CLUSTER BY DateRange;
表现将得到改善。
有关CLUSTER BY如何帮助查询的说明,您可以浏览本手册页,详细说明:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy