hive修改MySQL里的元数据删除分区
2017-03-06 12:48
197 查看
正常分区
province_id=125
动态分区时产生的错误分区(因为有特殊字符,不能直接用hive语句删除)
province_id=%2Ffile.cdn.mvideo.xiaomi.com%2Fmobilevideo%2F10001%2F1%2F1d1f7ca81b61a497c1b216b0753dc345.apk
解决方法
1 进入hive使用的MySQL
2 切换为hive数据库
3 查询相关表
结果
发现出现两条记录,因为表名有相同的,所以使用TBLS表的SD_ID字段去SDS表查询LOCATION字段的值,通过LOCATION字段,就可以知道o_cu_pm_userdev_url这张表的数据库,TBLS中TBL_ID为70的这行记录就是我要查询的表的ID
接下来,要根据TBLS表的TBL_ID和hive表分区字段的值(模糊查询)去PARTITIONS表查询,需要得到PARTITIONS表的PART_ID的值(202354)
结果
最后,通过TBLS表的TBL_ID(70)和PARTITIONS表的PART_ID(202354)就可以删除hive的分区了
4 删除HDFS上分区对应的目录【Hive外部表需要此操作】(目录要用双引号括起来,因为目录里有特殊字符)
province_id=125
动态分区时产生的错误分区(因为有特殊字符,不能直接用hive语句删除)
province_id=%2Ffile.cdn.mvideo.xiaomi.com%2Fmobilevideo%2F10001%2F1%2F1d1f7ca81b61a497c1b216b0753dc345.apk
解决方法
1 进入hive使用的MySQL
2 切换为hive数据库
mysql> use hive;
3 查询相关表
mysql> SELECT * FROM TBLS WHERE TBL_NAME='o_cu_pm_userdev_url';
结果
发现出现两条记录,因为表名有相同的,所以使用TBLS表的SD_ID字段去SDS表查询LOCATION字段的值,通过LOCATION字段,就可以知道o_cu_pm_userdev_url这张表的数据库,TBLS中TBL_ID为70的这行记录就是我要查询的表的ID
mysql> select * from SDS where SD_ID=639;
接下来,要根据TBLS表的TBL_ID和hive表分区字段的值(模糊查询)去PARTITIONS表查询,需要得到PARTITIONS表的PART_ID的值(202354)
mysql> select * from PARTITIONS t where t.tbl_id=70 and PART_NAME like '%cdn.mvideo.xiaomi.com%';
结果
最后,通过TBLS表的TBL_ID(70)和PARTITIONS表的PART_ID(202354)就可以删除hive的分区了
mysql> delete from PARTITION_KEY_VALS where part_id=202354; Query OK, 6 rows affected (0.01 sec) mysql> delete from PARTITION_PARAMS where part_id=202354; Query OK, 6 rows affected (0.00 sec) mysql> delete from PARTITIONS where tbl_id=70 and part_id=202354; Query OK, 1 row affected (0.01 sec)
4 删除HDFS上分区对应的目录【Hive外部表需要此操作】(目录要用双引号括起来,因为目录里有特殊字符)
hdfs dfs -rm -r "/user/hive/bigdata/o_cu_pm_userdev_urlprovince_id=%2Ffile.cdn.mvideo.xiaomi.com%2Fmobilevideo%2F10001%2F1%2F1d1f7ca81b61a497c1b216b0753dc345.apk"
相关文章推荐
- hive和hue的元数据 修改为mysql
- 大数据学习27:Hive元数据清理,从mysql层面删除hive元数据
- hive修改默认元数据存储数据库derby改为mysql
- HIVE的安装配置、mysql的安装、hive创建表、创建分区、修改表等内容、hive beeline使用、HIVE的四种数据导入方式、使用Java代码执行hive的sql命令
- hive-1.1.0-cdh5.7.0 的编译安装并修改元数据存储数据库为MySQL
- MySQL 添加列,修改列,删除列
- mysql使用教程之分区表的使用方法(删除分区表)
- MySQL新建用户,授权,删除用户,修改密码
- MySQL新建用户,授权,删除用户,修改密码操作
- mysql中如何实现字段的添加、修改、删除
- MySQL对表的复制,修改及删除
- 如何设置Mysql同步(Replication) 分享修改删除
- discuz sql mysql 新增字段 添加字段 删除字段 修改字段
- mysql的数据库相关维护操作:重启、修改连接数、删除连接
- C语言操作mysql 添加、删除、修改、查询实例
- mysql修改表名,列名,列类型,添加表列,删除表列
- MySQL新建用户,授权,删除用户,修改密码
- 一个mysql小练习[建表|查询|修改表|增加字段|删除字段|]
- MySQL中新建用户,新建数据库,用户授权,删除用户,修改密码的相关操作