Annuler une base de données sans la supprimer

Par défaut, la commande DROP DATABASE supprime la base de données et supprime le répertoire associé à la base de données du système de fichiers.

Il peut arriver que vous souhaitiez supprimer la base de données, mais conserver le répertoire de base de données sous-jacent intact.

Exemple de code

Vous pouvez utiliser cet exemple de code pour supprimer la base de données sans supprimer le dossier de stockage sous-jacent.

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)

Pour plus d’informations sur org.apache.hadoop.hive.ql.metadata.Hive , consultez la documentation Hive.