设置hive表生命周期并自动进行数据清理

2 篇文章 0 订阅
1 篇文章 0 订阅

背景介绍

Hive表生命周期管理对于大数据平台的管理和维护非常重要,有以下一些原因:

  1. 节省存储空间:随着时间的推移,Hive表中的数据会不断增加,历史数据不断积压。但是,并不是所有的数据都是有用的,一些旧的数据可能会变得过时或不再需要。通过生命周期管理,可以定期删除或归档过时的数据,从而节省存储空间。

  2. 提高查询性能:随着表中数据的增加,查询性能可能会下降。通过生命周期管理,可以定期删除或归档不再需要的数据和分析,从而减少查询的数据量,提高查询性能。

  3. 数据保留合规性:根据法律和合规要求,某些数据可能需要保留一段时间。通过生命周期管理,可以根据规定将数据保留一定的时间,并在到期后进行合规性的处理。

  4. 数据管理和维护:通过生命周期管理,可以更好地管理表中的数据。可以定期备份数据,进行数据质量检查和数据修复等操作,确保数据的完整性和可用性。

所以,通过进行Hive表生命周期管理,可以节省存储空间,提高查询性能,保持数据合规性,并进行数据管理和维护,从而更好地管理和维护大数据平台。

方案思路

下面简介下思路

  1. 确认生命周期规则及清理策略
  2. 设置hive表的生命周期信息
  3. 查询表属性信息及更新操作时间
  4. 查询表分区属性及更新操作时间
  5. 根据表或者分区的更新时间进行表清理操作。

简要流程示例

相关命令

以下是利用hive命令行进行生命周期管理的的方式,相关的一些命令和操作。

 

创建表的时候或者对表的生命周期标识的设置,这样方便我们后续进行表的标签和数据清理标识。

-- 设置表生命周期标识
alter table ${table_name} set tblproperties ('TABLE_LIFECYCLE'='365d');

-- 设置分区生命周期标识
alter table ${table_name} set tblproperties ('PARTITION_LIFECYCLE'='365d');

获取表相关信息,例如查看最新更新时间。访问时间一般未开启。

-- 查看所有的表

show tables;

-- 查看建表语句

show create table ${table_name};

--描述表的字段信息
describe ${table_name};

-- 查看所创建表的扩展信息
describe extended ${table_name};

--查看表扩展信息
show table extended like ${table_name};

--最全面的信息查看方式,能够显示出最多的信息
describe formatted  ${table_name};

获取分区表相关信息,例如分区的更新日期。

--显示表的所有分区
show partitions  ${table_name};


--显示表分区的扩展信息
describe formatted ${table_name} partition (${partition_name}=${partition_values});

最后聊聊

除了这块统一管理,通常我们在写数仓设计时候,就对表进行规划,在命名规则上对于一些业务即可做一些标识要求,例如临时表增加"_tmp"的标识,另外在ETL开发过程中,也可以对分区数据做清理的要求,例如数据写入完成后,对临时表进行drop table操作,对历史N天前分区数据进行drop partition 的 操作。

最后实现部分可以用脚本进行处理,也可以写个管理页面进行设置和定时清理的动作。

  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值