博主信息
Sky
博文
291
粉丝
0
评论
0
访问量
7263
积分:0
P豆:617

Hive元数据说明与应用

2021年10月17日 23:14:03阅读数:18博客 / Sky

一、Hive数据存储

1、底层数据

底层数据存储在分布式存储(HDFS)中。

2、元数据

元数据信息维护在MetaStore。

Hive默认使用的元数据存储数据库是Derby,Derby不支持多个客户端同时访问,所以需要对Derby进行替换,一般常用MySQL替换Derby。

二、Hive相关元数据表

1、Hive版本表

(1) version表

字段

含义

VER_ID    id主键    

SCHEMA_VERSION    Hive 版本    

VERSION_COMMENT    版本说明    

2、数据库表

(1) DBS表

字段

含义

DB_ID    数据库ID    

DESC    数据库描述    

DB_LOCATION_URI    数据库HDFS路径    

NAME    Hive数据库名    

OWNER_NAME    Hive数据库所有者用户名    

OWNER_TYPE    Hive所有者角色    

3、表和视图表

(1) TBLS表

字段

含义

TBL_ID    表ID    

CREATE_TIME    创建时间    

DB_ID    数据库ID    

LAST_ACCESS_TIME    上次访问时间    

OWNER    所有者    

RETENTION    保留字段    

SD_ID    序列化配置信息    

TBL_NAME    表名    

TBL_TYPE    表类型    

VIEW_EXPANDED_TEXT    视图的详细HQL    

VIEW_ORIGINAL_TEXT    视图的原始HQL    

(2) TTABLE_PARAMS表

字段

含义

TBL_ID    表ID    

PARAM_KEY    表属性名    

PARAM_VALUE    表属性值    

4、文件存储表

(1) SDS表

字段

含义

SD_ID    存储信息ID    

CD_ID    字段信息ID    

INPUT_FORMAT    文件输入格式    

IS_COMPRESSED    是否压缩    

IS_STOREDASSUBDIRECTORIES    手机游戏账号购买平台是否以子目录存储    

LOCATION    HDFS路径    

NUM_BUCKETS    分桶    

OUTPUT_FORMAT    文件输出格式    

SERDE_ID    序列化类ID    

(2) SERDES表

字段

含义

SERDE_ID    序列化类配置ID    

NAME    序列化类别名    

SLIB    序列化类    

(3) SERDE_PARAMS表

字段

含义

SERDE_ID    序列化类配置ID    

PARAM_KEY    属性名    

PARAM_VALUE    属性值    

5、字段表

(1) COLUMNS_V2表

字段

含义

CD_ID    字段信息ID    

COMMENT    字段注释    

COLUMN_NAME    字段名    

TYPE_NAME    字段类型    

INTEGER_IDX    字段顺序    

6、分区表

(1) PARTITIONS表

字段

含义

PART_ID    分区ID    

CREATE_TIME    分区创建时间    

LAST_ACCESS_TIME    最后一次访问时间    

PART_NAME    分区名    

SD_ID    分区存储ID    

TBL_ID    表ID    

(2) PARTITION_KEYS表

字段

含义

TBL_ID    表ID    

PKEY_COMMENT    分区字段名说明    

PKEY_NAME    分区字段名    

PKEY_TYPE    分区字段类型    

INTEGER_IDX    分区字段顺序    

(3) PARTITION_KEY_VALS表

字段

含义

PART_ID    分区ID    

PART_KEY_VAL    分区字段值    

INTEGER_IDX    分区字段顺序    

(4) PARTITION_PARAMS表

字段

含义

PART_ID    分区ID    

PARAM_KEY    分区属性名    

PARAM_VALUE    分区属性值    

三、应用

1、根据传入的tablename删除元数据所有信息

(1) 存储过程:

存储过程名字为t1,输入为tbl_id

  DELIMITER // 
  drop procedure if exists t1;
  create  procedure t1 ( in tbinput int) 
  begin
      declare v_sd_id int ;
      declare v_part_id int ;
      declare v_cd_id int ;
      declare v_serde_id int ;

      select tbinput;
      select SD_ID into v_sd_id from tbls where TBL_ID = tbinput;
      select part_id  into v_part_id from partitions where tbl_id = tbinput;
      select cd_id , serde_id into v_cd_id,v_serde_id from sds where sd_id = v_sd_id;
      select v_sd_id,v_part_id,v_cd_id,v_serde_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 serdes where serde_id = v_serde_id;
      delete from serde_params where serde_id = v_serde_id;
      delete from columns_v2 where cd_id = v_cd_id;
      delete from sds where sd_id = v_sd_id;
      delete from partitions where tbl_id = tbinput;
      delete from partition_keys where tbl_id = tbinput;
      delete from table_params where tbl_id = tbinput;
      delete from tbls where tbl_id = tbinput;
  end ;
  //
  delimiter ; 

  mysql> call t1(tbl_id);

(2) shell封装:

  hive_mysql_delete.sh 
  #!/bin/bash
  source /usr/local/mysql/.bash_profile
  mysql -uroot -p密码 hive数据库 -e "
  SET FOREIGN_KEY_CHECKS = 0; 
  call t1(tbl_id);  
  SET FOREIGN_KEY_CHECKS = 1;
  quit" >> /tmp/mysql_delete.log

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • java注解也叫,它是一种代码级别的类、接口、枚举在同一个层次。它可以声在包、类、字段、方法、局部变量、方法参等的前面,来对这些素进行、注释。
    2、语法;控制信息的结构格式,以及出现的顺序。3、时序;对事件发生顺序的详细
    网络协议的三要素:1、语义是解释控制信息每个部分的意义;2、语法是控制信息的结构格式,以及出现的顺序;3、时序是对事件发生顺序的详细
    网络协议要素是控制信息的结构或格式。
    链表的特点是一组任意的存储单存储线性表的素,因此为了表示每个其直接后继素之间的逻辑关系,对素来,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息。
    在过去的几年时间里,一提到高并发、海量存储解决方案,我们想到的都是NoSQL库,之相的产品自然也呈现出勃勃生机。
    网络协议的三个要素及其含义:1、语义,解释控制信息每个部分的意义;2、语法,控制信息的结构格式,以及出现的顺序;3、时序,对事件发生顺序的详细
    Php法:组就是一组的集合,把一系列组织起来,形成一个可操作的整体,可以【array()】函组,可以直接为素赋值。
    网络协议的关键要素有:1、语法,即控制信息的结构或格式;2、语义,即需要发出何种控制信息,完成何种动作以及做出何种响;3、时序也表示“规则”,即事件实现顺序的详细
    首先一下,微信小程序支付的主要逻辑集中在后端,前端只需携带支付所需的请求后端接口然后根返回结果做相成功失败处理即可。
    区块链的四大核心技术:1、分布式账本,在区块链中起到了的存储作;2、共识机制,在区块链中起到了统筹节点的行为,处理的作;3、密码学,可以保证安全,验证归属;4、智能合约,在区块链中起到了执行的功能
    vue能让基于网页的前端程序开发起来更加方便,因为Vue.js有声式,响式的绑定,组件化的开发,并且还使了Virtual DOM;React可于创建Web户交互界面,它引入了一种新的方式来处理浏览器
    javascript的作:1、嵌入动态文本HTML页面;2、对浏览器事件做出响;3、读写HTML素;4、在被提交到服务器之前验证;5、检测访客的浏览器信息;6、控制cookies,包括创建和修改等

    2020-07-15

    729

    比如,对库的操作必须要链接库,然后做SQL操作。WEB程序直接操作库的方法,这样会带来很多 人为因素的事故隐患,以及管理上的麻烦,尤其是对大型的网站
    速率限制可以保护和提高基于API的服务的可性。如果你正在一个API对话,并收到HTTP 429 Too Many Requests的响状态码,你已经被速率限制了。
    所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序;浏览器是通过优先级来判断哪些属性值素最相关以决定并到该素上的。
    MXF文件通常被视为一种【容器】文件格式,也就是MXF文件格式内容的格式无关,这得益于MXF底层使了KLV【键-长度-值】三组编码方式,MXF文件通常包含文件头、文件体和文件尾等几个部分。
    程序和软件的区别:软件是为了完成特定的功能,解决特定的问题而计算机语言编写的命令序列集合,可以理解为程序的集合。而程序是软件的一个组成部分,它是软件的必要素。