Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 使用配置单元更新表_Hadoop_Hive - Fatal编程技术网

Hadoop 使用配置单元更新表

Hadoop 使用配置单元更新表,hadoop,hive,Hadoop,Hive,现在,我运行以下配置单元查询 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='adbemmarvelw

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

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 <> ''
创建表dwo\u analysis.exp\u,如下所示
挑选
最小值(sc日期时间)作为第一次显示的时间,
SUBSTR(sc.post_evar12,1,24)作为guid,
sc.post_evar238作为实验名称,
sc.post_evar239作为变体_名称
从测试
何处report_suite='adbemmarvelweb.prod'
日期>=日期(当前日期,90)和日期<日期(当前日期,2)
post_prop5='实验:标准:验证:显示'
而事后评估238则不像“控制%”
和后评估238“
和后评估139“
表测试很大。我想通过运行一次来优化这个查询,每隔一次通过获取最近2天的数据并将其添加到表中来更新表

因此,基本上运行上述查询一次,每次运行一次,但条件相同

其中,单击日期>=日期子项(当前日期,2),然后单击日期<日期子项(当前日期)


如何使用配置单元更新表以填充上述条件中提到的行?

首先,如果根据日期对配置单元表进行分区,您的查询会更快。CREATETABLE语句没有插入任何分区,因此我怀疑您的表没有分区。如果源数据是拼花地板/ORC,也会更快

在任何情况下,您都可以覆盖这样的日期范围的表

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