본문 바로가기
빅데이터/hive

[hive] 하이브 데이터베이스 이름 변경(hive database rename)

by hs_seo 2018. 5. 25.

기본적으로 하이브는 데이터베이스의 이름을 변경하는 것은 지원하지 않는다. 


따라서 메타스토어(metastore)의 테이블에 있는 하이브 테이블의 이름을 수정하면 된다. 

메타스토어는 ID 기준으로 처리 되기 때문에 메타스토어의 이름을 변경하면 적용된다. 


우선 하이브 메타스토어(metastore)에 mysql 로 접속한다. 

  * 설정한 기준에 따라 다르게 접속하면된다. 

  * 메타 스토어의 주소를 모르면 hive-site.xml 에 설정된 javax.jdo.option.ConnectionURL 정보를 확인한다. 


하이브 DB를 보면 DBS 테이블이 DB 관련 정보이다. 


mysql> desc DBS;

+-----------------+---------------+------+-----+---------+-------+

| Field           | Type          | Null | Key | Default | Extra |

+-----------------+---------------+------+-----+---------+-------+

| DB_ID           | bigint(20)    | NO   | PRI | NULL    |       |

| DESC            | varchar(4000) | YES  |     | NULL    |       |

| DB_LOCATION_URI | varchar(4000) | NO   |     | NULL    |       |

| NAME            | varchar(128)  | YES  | UNI | NULL    |       |

| OWNER_NAME      | varchar(128)  | YES  |     | NULL    |       |

| OWNER_TYPE      | varchar(10)   | YES  |     | NULL    |       |

+-----------------+---------------+------+-----+---------+-------+

6 rows in set (0.00 sec)


이 테이블의 NAME을 기준으로 데이터베이스를 검색해서 update 해주면 된다. 


update DBS 

   set name = 'sample_database' 

 where DB_ID = 1;


이렇게 변경하면 하이브에서 변경된 데이터베이스 이름을 확인할 수 있다. 

반응형