Database verwijderen zonder verwijdering

Standaard wordt met de opdracht DROP DATABASE de database verwijderd en wordt de map die aan de database is gekoppeld, verwijderd uit het bestandssysteem.

Soms wilt u de database verwijderen, maar de onderliggende databasemap intact houden.

Voorbeeldcode

U kunt deze voorbeeldcode gebruiken om de database te verwijderen zonder de onderliggende opslagmap te verwijderen.

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)

Raadpleeg de org.apache.hadoop.hive.ql.metadata.Hive Hive-documentatievoor meer informatie over .