文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么从MySQL数据库中删除Hive元数据

2023-06-02 23:35

关注

这篇文章主要介绍了怎么从MySQL数据库中删除Hive元数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Hive上所有元数据均保存在RDBMS中,所以删除RDBMS中的Hive的元数据,不会影响HDFS上的数据。目前针对MySQL数据库进行分析。

Hive在MySQL数据库中的相关元数据的关系图:

怎么从MySQL数据库中删除Hive元数据

解决办法:先MySQL的库中建个存储过程P_TBL_DATA_DEL后,执行该存储过程就可以了。

存储过程脚本:

DELIMITER $$

DROP PROCEDURE IF EXISTS P_TBL_DATA_DEL$$

CREATE PROCEDURE P_TBL_DATA_DEL(

   i_tbl_id                            int                    -- 表ID

  ,outo_outcode                      integer                -- 输出代码

  ,outo_outmsg                       varchar(500)           -- 输出信息

)

  COMMENT '从MySQL数据库中删除Hive元数据'

label_pro:

BEGIN

    -- =========================== 声明变量 ===========================

    -- 自定义变量

    DECLARE v_sd_id         int ;   -- 存储配置ID       SDS: 该表保存文件存储的基本信息

    DECLARE v_part_id       int ;   -- 分区ID           PARTITIONS:该表存储表分区的基本信息

    DECLARE v_cd_id         int ;   -- 表字段信息ID     COLUMNS_V2:该表存储表对应的字段信息

    DECLARE v_serde_id      int ;   -- 序列化类配置ID   SERDES:该表存储序列化使用的类信息

    DECLARE v_tbl_id        int ;   -- 表ID   用于接收输入参数           

    -- =========================== 声明异常 ===========================

    DECLARE EXIT HANDLER FOR SQLEXCEPTION

    BEGIN

        ROLLBACK;

        -- 发生异常后的返回值

        set o_outcode =-1;

        set o_outmsg ='failure';

    end ;

    -- =========================== 变量初始化 ===========================

    -- 判断输入的表ID是否为NULL,并进行赋值

    IF i_tbl_id IS NOT NULL then

      SET v_tbl_id = i_tbl_id ;

    ELSE  -- 否则默认赋值0

      SET v_tbl_id = 0 ;

    END IF ;

    -- =========================== 业务处理 ===========================

    -- START TRANSACTION;

    -- todo begin

      -- 根据表ID获取 存储配置ID(SDS.SD_ID)

      select 

        SD_ID 

          into 

        v_sd_id 

      from tbls 

      where TBL_ID = v_tbl_id

      ;

      -- 根据表ID获取 分区ID(PARTITIONS.part_id)

      select 

          part_id  

        into 

          v_part_id 

      from partitions 

      where tbl_id = v_tbl_id

      ;

      -- 根据存储配置ID(SDS.SD_ID)获取 表字段信息ID(COLUMNS_V2.cd_id)和序列化类配置ID(SERDES.serde_id)

      select 

           cd_id 

          ,serde_id 

        into 

           v_cd_id

          ,v_serde_id 

      from sds 

      where sd_id = v_sd_id

      ;

    -- 删除表属性信息数据

    delete from table_params where tbl_id = v_tbl_id;

    -- 删除表信息数据

    delete from tbls where tbl_id = v_tbl_id;

    -- 删除文件存储的基本信息数据

    delete from sds where sd_id = v_sd_id;

    -- 删除存储序列化属性信息数据

    delete from serde_params where serde_id = v_serde_id;

    -- 删除存储序列化使用的类信息数据

    delete from serdes where serde_id = v_serde_id;

    -- 删除表的字段信息数据

    delete from columns_v2 where cd_id = v_cd_id;

    -- 判断是否v_part_id值是否为空,如果不为空,表示分区属性表和分区字段值表有值,进行删除.

    if v_part_id is not  null then 

        -- 删除分区属性信息数据

        delete from partition_params where part_id = v_part_id;

        -- 删除分区字段值表数据  

        delete from partition_key_vals where part_id = v_part_id;

    end if;

    -- 删除分区信息数据

    delete from partitions where tbl_id = v_tbl_id;

    -- 删除分区字段信息数据

    delete from partition_keys where tbl_id = v_tbl_id;

    -- todo end

    -- COMMIT;

    -- 处理成功后的返回值

    set o_outcode =0;

    set o_outmsg = 'succe' ;

END

$$

DELIMITER ;

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么从MySQL数据库中删除Hive元数据”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯