如何在Hive中加快此查询的运行速度

时间:2019-11-11 18:58:11

标签: sql hive

我现在正尝试从Hive表中提取一些数据,并将它们放到一个新表中。步骤是:将带有其他信息的transactionid拉到一张表中;使用transactionid与另一个表联接以获得完整的url信息。

我构建了可以满足我的需求的查询,但是它的运行速度非常慢。它运行了30分钟以上,没有显示任何结果。 (我需要在15分钟内完成)Vertica中的相同查询应该能够在5分钟内完成。需要找到一些方法来加快查询速度。

-将相关的搜索网址分隔为行

DROP TABLE IF EXISTS bi_etl.tblrelatedsearch;
CREATE TABLE bi_etl.tblrelatedsearch AS
select      eventdate
            ,coalesce(referringtransactionid, transactionid) as transactionid
            ,deviceguid
            ,platform
            ,storeid
            ,relatedurl
FROM        scribe.tblscriberelatedsearchresults LATERAL view explode (anchorurls) adTable as relatedurl
where       eventdate >= '2019-10-15'
and         storeid in (49,446,368,321,81,422,450,457)
;



-- with pagetype version
DROP TABLE IF EXISTS bi_etl.tblrelatedsearchpg;
CREATE TABLE bi_etl.tblrelatedsearchpg as
select      a.eventdate
            ,a.transactionid
            ,a.platform
            ,a.storeid
            ,b.requesturl
            ,b.pagetype 
            ,a.relatedurl
            ,case when 
                a.url ilike '%keywork%' then 'Keyword'
                when
                a.url ilike '%sb0%' then 'SB'
                when
                a.url ilike '%sb1%' then 'SB'
                when
                a.url ilike '%sb2%' then 'SB'
                when
                a.url ilike '%sb3%' then 'SB'
                when
                a.url ilike '%ideas-and-advice%' then 'IDEAS & ADVICE'
                when
                a.url ilike '%top-rated%' then 'Top Rated'
                else   'ELSE' end
                as  relatedpagetype
from        bi_etl.tblrelatedsearchs a
left join   scribe.tblscribepagerequest b 
on          a.eventdate = b.eventdate
and         a.transactionid = b.transactionid
and         a.deviceguid = b.deviceguid
where       b.eventdate >= '2019-10-15'
and         b.storeid in (49,446,368,321,81,422,450,457)
;

优化查询,使其在Hive中更快。

0 个答案:

没有答案