Verwerfen einer Datenbank ohne Löschung

Standardmäßig löscht der Befehl DROP DATABASE die Datenbank und löscht das der Datenbank zugeordnete Verzeichnis aus dem Dateisystem.

Manchmal möchten Sie die Datenbank löschen, aber das zugrunde liegende Datenbankverzeichnis intakt lassen.

Beispielcode

Sie können diesen Beispielcode verwenden, um die Datenbank zu löschen, ohne den zugrunde liegenden Speicherordner zu löschen.

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)

Weitere Informationen zu finden Sie org.apache.hadoop.hive.ql.metadata.Hive in der org.apache.hadoop.hive.ql.metadata.Hive