部分情况下,我们在删除hive表的时候,遇到报错,hive里的数据已经删掉了,但hive_meta中的元信息却没有同步删除。hive里show tables 可以看到这张表,却无法查询。此时需要通过一系列操作去元信息库里删除掉这张表。
1.select DB_ID from DBS where NAME='your-database-name';
2.select tbl_id from TBLS where TBL_NAME='your-table-name' and DB_ID=<id from step 1>;
3.delete from PARTITION_KEY_VALS WHERE PART_ID in (select PART_ID from PARTITIONS where TBL_ID=<id from step 2>);
4.delete from PARTITION_PARAMS WHERE PART_ID in (select PART_ID from PARTITIONS where TBL_ID=<id from step 2>);
5.delete from PARTITIONS where TBL_ID=<id from step 2>;
6.delete from TBL_COL_PRIVS where TBL_ID=<id from step 2>;
7.delete from TBL_PRIVS where TBL_ID=<id from step 2>;
8.delete from TBLS where TBL_ID=<id from step 2>;