복붙노트

[HADOOP] 하이브 : 기존 하이브 데이터베이스의 이름을 바꿀 수 있습니까?

HADOOP

하이브 : 기존 하이브 데이터베이스의 이름을 바꿀 수 있습니까?

비슷한 요구 사항이 https://issues.apache.org/jira/browse/HIVE-4847에있는 것으로 보입니다.

그러나 문제의 설명에서 제안 된 구문 - 'ALTER DATABASE dbname RENAME to newdbname'을 시도하면 다음과 같은 오류가 발생합니다.

ALTER DATABASE testdb RENAME TO testdb1;

NoViableAltException(26@[])
    at org.apache.hadoop.hive.ql.parse.HiveParser.alterDatabaseStatementSuffix(HiveParser.java:7881)
    at org.apache.hadoop.hive.ql.parse.HiveParser.alterStatement(HiveParser.java:6588)
    at org.apache.hadoop.hive.ql.parse.HiveParser.ddlStatement(HiveParser.java:2183)
    at org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1392)
    at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1030)
    at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:199)
    at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166)
    at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:414)
    at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:332)
    at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:988)
    at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1053)
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:924)
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:914)
    at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:269)
    at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:221)
    at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:431)
    at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:367)
    at org.apache.hadoop.hive.cli.CliDriver.processReader(CliDriver.java:464)
    at org.apache.hadoop.hive.cli.CliDriver.processFile(CliDriver.java:474)
    at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:756)
    at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:694)
    at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:633)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
FAILED: ParseException line 3:15 cannot recognize input near 'testdb' 'RENAME' 'TO' in alter database statement

해결법

  1. ==============================

    1.현재 Apache 하이브 릴리스는이 기능을 지원하지 않습니다. 이 아파치 Hive Jira HIVE-4847에서는 이것이 새로운 기능이며 패치를 사용할 수 있지만 아직 특정 릴리스에 병합되고 태그가 지정되지 않았 음을 알 수 있습니다. 이 기능은 이후 릴리스에서 기대할 수 있습니다.

    현재 Apache 하이브 릴리스는이 기능을 지원하지 않습니다. 이 아파치 Hive Jira HIVE-4847에서는 이것이 새로운 기능이며 패치를 사용할 수 있지만 아직 특정 릴리스에 병합되고 태그가 지정되지 않았 음을 알 수 있습니다. 이 기능은 이후 릴리스에서 기대할 수 있습니다.

  2. from https://stackoverflow.com/questions/29481237/hive-is-it-possible-to-rename-an-existing-hive-database by cc-by-sa and MIT license