当前位置:   article > 正文

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

hive表生命周期

背景介绍

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

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

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

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

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

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

方案思路

下面简介下思路

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

简要流程示例

相关命令

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

 

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

  1. -- 设置表生命周期标识
  2. alter table ${table_name} set tblproperties ('TABLE_LIFECYCLE'='365d');
  3. -- 设置分区生命周期标识
  4. alter table ${table_name} set tblproperties ('PARTITION_LIFECYCLE'='365d');

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

  1. -- 查看所有的表
  2. show tables;
  3. -- 查看建表语句
  4. show create table ${table_name};
  5. --描述表的字段信息
  6. describe ${table_name};
  7. -- 查看所创建表的扩展信息
  8. describe extended ${table_name};
  9. --查看表扩展信息
  10. show table extended like ${table_name};
  11. --最全面的信息查看方式,能够显示出最多的信息
  12. describe formatted ${table_name};

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

  1. --显示表的所有分区
  2. show partitions  ${table_name};
  3. --显示表分区的扩展信息
  4. describe formatted ${table_name} partition (${partition_name}=${partition_values});

最后聊聊

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/801883
推荐阅读
相关标签
  

闽ICP备14008679号