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ć niezmieniony katalog baz danych.

Przykładowy kod

Możesz użyć tego przykładowego kodu, aby usunąć bazę danych bez porzucania podstawowego 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 org.apache.hadoop.hive.ql.metadata.Hive na temat programu , zapoznaj się z org.apache.hadoop.hive.ql.metadata.Hive