引子
工作中碰到几个外部项目使用相同数据库结构和基础数据的数据库
为了每个项目的数据独立性
可复制数据库出来给每个项目单独操作
使用非导出的方式在hive集群内复制数据库
- 创建数据库
create database if not exists new_db_name; - 编写建表语句,表比较多的可以将表名全部拿出来后使用shell或python处理成创建表的文本
use new_db_name;
create table table_name like old_db_name.table_name; - 复制数据到新的warehouse目录
hadoop fs -cp /user/hive/warehouse/old_db_name.db/* /user/hive/warehouse/new_db_name.db/ - 在新数据库中修复表的元数据
use new_db_name;
MSCK REPAIR TABLE table_name;