Usuwanie bazy danych bez usuwania

Domyślnie polecenie DROP DATABASE usuwa bazę danych i usuwa katalog skojarzony z bazą danych z systemu plików.

Czasami możesz chcieć usunąć bazę danych, ale zachować źródłowy katalog bazy danych bez zmian.

Przykładowy kod

Możesz użyć tego przykładowego kodu, aby usunąć bazę danych bez usuwania bazowego folderu magazynu.

import scala.collection.JavaConverters._
import org.apache.hadoop.hive.ql.metadata.Hive
import org.apache.hadoop.hive.conf.HiveConf
import org.apache.hadoop.hive.ql.session.SessionState

val hiveConf = new HiveConf(classOf[SessionState])
sc.hadoopConfiguration.iterator().asScala.foreach { kv =>
hiveConf.set(kv.getKey, kv.getValue)
}
sc.getConf.getAll.foreach {
case (k, v) => hiveConf.set(k, v)
}

hiveConf.setBoolean("hive.cbo.enable", false)
val state = new SessionState(hiveConf)
val hive = Hive.get(state.getConf)
println(state.getConf)

hive.dropDatabase("<database-name>", false, false, true)

Aby uzyskać więcej informacji na org.apache.hadoop.hive.ql.metadata.Hivetemat programu , zapoznaj się z dokumentacją programu Hive.