HIVE元数据整理
dbs: 存放database信息,包括数据库名称、DB_LOCATION_URI、主键为DB_ID
tbls:存放table信息,包括表名称,表类型(内部、外部)、主键TBL_ID,外键DB_ID关联database表,SD_ID关联表参数信息
sds:存放table参数信息,包括表的INPUT_FORMAT 和OUTPUT_FORMAT、LOCATION位置,桶数量等,主键SD_ID, 外键CD_ID,关联相关列信息。
sd_params:表详细参数信息,建表语句中TBLPROPERTIES 的信息
cds:存放列ID
columns_v2:列信息,包括列名称、注释、类型、和index(desc时按照该顺序显示)主键CD_ID,COLUMN_NAME 作为联合主键
skewed_col_names:skew表对应的倾斜字段,主键SD_ID、INTEGER_IDX作为联合主键,该信息挂在了table上
skewed_string_list_values:倾斜字段对应固定值。
partitions:表分区,外键SD_ID 关联表参数、外键TBL_ID关联表信息名称等
funcs:永久定义的函数信息
table_params
删除指定表所有信息
delete from columns_v2 where cd_id=96
delete from serde_params where serde_id=316
select *
FROM tbls
join table_params on table_params.TBL_ID=tbls.TBL_ID
join sds on tbls.SD_ID=sds.SD_ID
join serdes on serdes.SERDE_ID=sds.SERDE_ID
join cds on sds.CD_ID=cds.CD_ID
where tbls.TBL_ID=96
删除时注意:
把所有有数据的表关联起来 然后delete 如果遇到外键约束就开启外键级联删除,一个设想:如果所有表都设置了外键级联删除,
应该只删除一张表tbls表就可以了其他数据应该会跟着删除,还需要测试一下,因为不这样每次还得看哪张表有数据哪张表没数据很麻烦