一、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//
dropprocedureifexistst1;
createproceduret1(intbinputint)
begin
declarev_sd_idint;
declarev_part_idint;
declarev_cd_idint;
declarev_serde_idint;

selecttbinput;
selectSD_IDintov_sd_idfromtblswhereTBL_ID=tbinput;
selectpart_idintov_part_idfrompartitionswheretbl_id=tbinput;
selectcd_id,serde_idintov_cd_id,v_serde_idfromsdswheresd_id=v_sd_id;
selectv_sd_id,v_part_id,v_cd_id,v_serde_id;

ifv_part_idisnotnullthen
deletefrompartition_paramswherepart_id=v_part_id;
deletefrompartition_key_valswherepart_id=v_part_id;
endif;

deletefromserdeswhereserde_id=v_serde_id;
deletefromserde_paramswhereserde_id=v_serde_id;
deletefromcolumns_v2wherecd_id=v_cd_id;
deletefromsdswheresd_id=v_sd_id;
deletefrompartitionswheretbl_id=tbinput;
deletefrompartition_keyswheretbl_id=tbinput;
deletefromtable_paramswheretbl_id=tbinput;
deletefromtblswheretbl_id=tbinput;
end;
//
delimiter;

mysql>callt1(tbl_id);

(2) shell封装:

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

更多相关文章

  1. html5表单的required属性使用
  2. Python Django模型详解
  3. http请求不带referer的解决方法
  4. PHP mysql 新增时存在则修改,不存在则新增,
  5. VMWARE ESX SERVER虚拟化数据恢复过程总结
  6. Windows还原系统后分区合并为一个分区恢复方法
  7. MySQL DDL命令大全(数据定义语言)
  8. 完成一个用户注册页面,对表单字段进行验证(密码长度、密码一致、验
  9. 完成一个用户注册页面, 用xmind文件中总结的字符串函数库,对表单

随机推荐

  1. Android多屏幕适配之字体大小、行间距和
  2. 关于android中的gif实现
  3. Android:Camera2开发详解(上):实现预览、
  4. android实现百度地图定位
  5. Android 4.0新增WiFiDirect功能
  6. DisplayMetrics简介
  7. android View 概述
  8. android的selector背景选择器
  9. Android 关机解析
  10. Android规范详解