Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
Hive 配置单元删除所有分区保留最近4天的分区_Hive_Hiveql_Hive Partitions_Hiveddl - Fatal编程技术网

Hive 配置单元删除所有分区保留最近4天的分区

Hive 配置单元删除所有分区保留最近4天的分区,hive,hiveql,hive-partitions,hiveddl,Hive,Hiveql,Hive Partitions,Hiveddl,我有一个带有如下分区的表: 表日志分区(年=2019,月=06,日=18) 分区“年”、“月”和“日”采用字符串格式 我需要删除保留最后七天分区的分区。 并且需要每周运行作业,以便日志表在每周开始时有7天的日志。您可以使用我正在使用的:beeline-u“jdbc_连接字符串”-n hive-hivevar var_year=“$(date-d”days ago“+“%Y”)--hivevar var_month=“$(date-d”7天前“+“%m”)--hivevar_day=“$(date

我有一个带有如下分区的表:
表日志分区(年=2019,月=06,日=18)

分区“年”、“月”和“日”采用字符串格式

我需要删除保留最后七天分区的分区。
并且需要每周运行作业,以便日志表在每周开始时有7天的日志。

您可以使用我正在使用的:beeline-u“jdbc_连接字符串”-n hive-hivevar var_year=“$(date-d”days ago“+“%Y”)--hivevar var_month=“$(date-d”7天前“+“%m”)--hivevar_day=“$(date d”7天前“+“%d”)”-e“ALTER TABLE tablename DROP(如果存在分区)(part_yearwhat i want like..只保留当月最后7天的分区,并删除剩余的每个分区partition@Thilak是的,这是逻辑上的一个错误。需要添加更多的删除语句来删除当前年份中的“旧年”和“旧月”。已修复。非常感谢。还有一种情况。如果我们在月初实施此操作,如6月4日正在实施。运行后,我只想要6月1日、2日、3日、4日和5月31日、30日、29日。剩余的所有需要删除。@Thilak测试它。var_month=“$(date-d”7天前“+“%m”)”将设置为may,所有在may之前的内容将被前两句删除。最后一次删除将删除部分_month
use mydb;
drop table test_partition_drop;
CREATE TABLE test_partition_drop
(col1 STRING)
PARTITIONED BY (part_year string, part_month string, part_day string);
INSERT INTO TABLE  test_partition_drop PARTITION (part_year='2019', part_month='06', part_day='09') VALUES ('01');
INSERT INTO TABLE  test_partition_drop PARTITION (part_year='2019', part_month='06', part_day='10') VALUES ('01');
INSERT INTO TABLE  test_partition_drop PARTITION (part_year='2019', part_month='06', part_day=11) VALUES ('02');
INSERT INTO TABLE  test_partition_drop PARTITION (part_year='2019', part_month='06', part_day=12) VALUES ('03');
INSERT INTO TABLE  test_partition_drop PARTITION (part_year='2019', part_month='06', part_day=13) VALUES ('05');
INSERT INTO TABLE  test_partition_drop PARTITION (part_year='2019', part_month='06', part_day=14) VALUES ('06');
INSERT INTO TABLE  test_partition_drop PARTITION (part_year='2019', part_month='06', part_day=15) VALUES ('06');
INSERT INTO TABLE  test_partition_drop PARTITION (part_year='2018', part_month='06', part_day=14) VALUES ('01');
INSERT INTO TABLE  test_partition_drop PARTITION (part_year='2018', part_month='06', part_day=15) VALUES ('02');
INSERT INTO TABLE  test_partition_drop PARTITION (part_year='2019', part_month='05', part_day=14) VALUES ('03');
INSERT INTO TABLE  test_partition_drop PARTITION (part_year='2019', part_month='04', part_day=15) VALUES ('04');
var_year="$(date -d "7 days ago" +"%Y")"
var_month="$(date -d "7 days ago" +"%m")"
var_day="$(date -d "7 days ago" +"%d")"

hive -e "
use mydb;
ALTER TABLE test_partition_drop DROP IF EXISTS PARTITION (part_year<'${var_year}');
ALTER TABLE test_partition_drop DROP IF EXISTS PARTITION (part_year='${var_year}', part_month<'${var_month}'); 
ALTER TABLE test_partition_drop DROP IF EXISTS PARTITION (part_year='${var_year}', part_month<='${var_month}', part_day<='${var_day}');
"
OK
Time taken: 0.762 seconds
Dropped the partition part_year=2018/part_month=06/part_day=14
Dropped the partition part_year=2018/part_month=06/part_day=15
OK
Time taken: 1.643 seconds
Dropped the partition part_year=2019/part_month=04/part_day=15
Dropped the partition part_year=2019/part_month=05/part_day=14
OK
Time taken: 1.0 seconds
Dropped the partition part_year=2019/part_month=06/part_day=09
Dropped the partition part_year=2019/part_month=06/part_day=10
Dropped the partition part_year=2019/part_month=06/part_day=11
Dropped the partition part_year=2019/part_month=06/part_day=12
Dropped the partition part_year=2019/part_month=06/part_day=13
Dropped the partition part_year=2019/part_month=06/part_day=14
OK
Time taken: 2.097 seconds