Hive 删除数据库

  • Hive 删除数据库

    本章介绍如何在Hive中删除数据库。SCHEMA和DATABASE的用法相同。
  • 删除数据库语句

    删除数据库是删除所有表并删除数据库的语句。其语法如下:
    
    DROP DATABASE StatementDROP (DATABASE|SCHEMA) [IF EXISTS] database_name 
    [RESTRICT|CASCADE];
    
    以下查询用于删除数据库。让我们假设数据库名称为userdb。
    
    hive> DROP DATABASE IF EXISTS userdb;
    
    以下查询使用CASCADE删除数据库。这意味着在删除数据库之前先删除相应的表。
    
    hive> DROP DATABASE IF EXISTS userdb CASCADE;
    
    以下查询使用SCHEMA删除数据库。
    
    hive> DROP SCHEMA userdb;
    
    此子句是在Hive 0.6中添加的。
  • 使用JDBC程序

    下面给出了删除数据库的JDBC程序。
    新版HIVE,应该启动hiveserver2,hiveserver服务已经没有。启动流程如下:
    • $HADOOP_HOME/sbin/start-dfs.sh
    • $HADOOP_HOME/sbin/start-yarn.sh
    • $HIVE_HOME/bin/hive --service hiveserver2
    启动后可以用$HIVE_HOME/bin/beeline -u jdbc:hive2://localhost:10000 连接测试 上面启动hiveserver2同时也启动了一个webui,在浏览器可以通过http://ip:10002 来查看
    
    import java.sql.SQLException;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.sql.DriverManager;
    
    public class HiveDropDb {
       private static String driverName = "org.apache.hive.jdbc.HiveDriver";
       
       public static void main(String[] args) throws SQLException {
          //注册驱动程序并创建驱动程序实例
       try {
          Class.forName(driverName);
             // 获取连接
             
             Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "", "");
             Statement stmt = con.createStatement();
             
             stmt.execute("DROP DATABASE userdb");
             System.out.println("Database userdb created successfully.");
             
             con.close();
       } catch (Exception e) {
          System.out.println(e.getMessage());
       }
         
       }
    }
    
    将程序保存在名为HiveDropDb.java的文件中。下面给出的是编译和执行该程序的命令。
    
    $ javac HiveDropDb.java
    $ java HiveDropDb
    
    输出:
    
    Drop userdb database successful.