使用配置单元更新表

2vuwiymt  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(429)

现在我运行以下配置单元查询

CREATE TABLE dwo_analysis.exp_shown AS
SELECT

MIN(sc.date_time) as first_shown_time,
SUBSTR(sc.post_evar12,1,24) as guid,
sc.post_evar238 as experiment_name,
sc.post_evar239 as variant_name

FROM test

WHERE report_suite='adbemmarvelweb.prod'
AND date >= DATE_SUB(CURRENT_DATE,90) AND date < DATE_SUB(CURRENT_DATE, 2)
AND post_prop5 = 'experiment:standard:authenticated:shown'
AND post_evar238 NOT LIKE 'control%'
AND post_evar238 <> ''
AND post_evar239 <> ''

表测试很大。我想通过运行一次来优化这个查询,每隔一次通过获取最近2天的数据并将其添加到表中来更新表。
所以基本上每次运行一次以上的查询,然后再运行一次,但要符合条件
其中,单击日期>=日期(当前日期,2),然后单击日期<日期(当前日期)
如何使用配置单元更新表以填充上述条件中提到的行?

wribegjk

wribegjk1#

首先,如果根据日期对配置单元表进行分区,那么查询会更快。create table语句没有插入任何分区,因此我怀疑您的表没有分区。如果源数据是parquet/orc,也会更快
在任何情况下,您都可以覆盖如下日期范围的表

INSERT OVERWRITE TABLE dwo_analysis.exp_shown
    SELECT * FROM test 
WHERE click_date 
  BETWEEN DATE_SUB(CURRENT_DATE, 2) AND CURRENT_DATE;

相关问题