• Spark或Hive数仓生命周期管理


       在做数仓开发过程中,遇到一个问题就是随着数据量增大,存储空间增加惊人:hdfs的文件要存3份(可以修改副本份数),ods、dwd、dws、ads等各层都需要存储空间,指标计算过程如果内存不够又会缓冲在硬盘。而更严重的问题是:如果CDH依赖某个目录的存储空间严重不够,就会导致Yarn的任务执行失败。

       所以对数仓的生命周期管理尤为重要。数仓的生命周期管理的核心目的就是用最少的存储成本来满足最大的业务需求,使数据价值最大化。

    对数仓的历史数据可以分为P0、P1、P2、P3这4个不同优先级,其具体定义如下。

    • P0:非常重要的主题域数据和非常重要的应用数据,具有不可恢复性,如交易、基础信息表、集团KPI数据、IPO关联表。

    • P1 :重要的业务数据和重要的应用数据,具有不可恢复性,如重要的业务产品数据。

    • P2:重要的业务数据和重要的应用数据,具有可恢复性,如交易线ETL产生的中间过程数据。

    • P3:不重要的业务数据和不重要的应用数据,具有可恢复性,如某些商品的报表。

    对数据P0、P1、P2、P3这4个级别的数据,生命周期要根据具体情况。例如在有的公司,关系型数据库保存有数仓原始全部数据,又对服务器的成本敏感性,对恢复数据

    层级

    类型

    P0

    P1

    P3

    P4

    ODS

    各类型数据

    永久

    永久

    永久

    永久

    DWD

    事实表(增量表)

    永久

    3年

    365天

    180天

    维表(全量表)

    保留近30天及每月月底数据

    保留近30天及每月月底数据

    保留近30天及每月月底数据

    保留近30天及每月月底数据

    Merge全量表

    保留近30天及每月月底数据

    保留近30天及每月月底数据

    保留近30天及每月月底数据

    保留近30天及每月月底数据

    DWS

    各类型数据

    永久

    3年

    3年

    3年

    DWM层

    各类型数据

    保留近30天及每月月底数据

    保留近30天及每月月底数据

    保留近30天及每月月底数据

    保留近30天及每月月底数据

    APP层

    各类型数据

    永久

    -

    -

    -

    由于数仓通常是带有时间的分区表。要进行数仓表数据进行生命周期管理,首先是清楚目前数仓各张表占的存储空间的情况。

    查看存储空间的命令:

    hadoop fs -du -s -h ${warehouse.dir}/*

    如果hive外部表

    使用drop table来删除表或用drop partition等命令删除表的分区,其实数据还是存在。要彻底删除数据,有2种方法:

    (1)通过删除文件方式

    删除文件命令:

    hdfs dfs -rmdir -f ${warehouse.dir}

    删除目录命令:

    hdfs dfs -rm -r -f ${warehouse.dir}/*

    1. 变为内部表再删除

    alter table  ${table_name) set tblproperties ('EXTERNAL'='False');

    如果是hive内部表

    删除分区

    alter table ${tablename} drop partition(dt<='2023-01-21')

    在CDH的默认配置中,删除的文件是放在垃圾站,通常是需要24小时后删除的文件才释放空间。如果需要立即释放空间,可以用下面清空hdfs垃圾站的命令:

    hdfs dfs -expunge

  • 相关阅读:
    【Git】一文带你入门Git分布式版本控制系统(简介,安装,Linux命令)
    L42.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- groupdel和passwd
    SpringMVC:从入门到精通,7篇系列篇带你全面掌握--三.使用SpringMVC完成增删改查
    【下一代对象专题】小文件管理全线升级,性能提升60%
    【追求卓越01】数据结构--数组
    华泰证券:京东营收增长或短期承压
    leetcode23 合并K个有序列表
    虚拟机配置centos7网络
    无人机航测技术的优势有哪些?
    Linux (五)- mv 命令
  • 原文地址:https://blog.csdn.net/linweidong/article/details/133282151