إسقاط قاعدة البيانات بدون حذف

بشكل افتراضي، إسقاط الأمر قاعدة بيانات DROP قاعدة البيانات وحذف الدليل المقترن بقاعدة البيانات من نظام الملفات.

في بعض الأحيان قد تحتاج إلى إسقاط قاعدة البيانات ولكن الاحتفاظ دليل قاعدة البيانات الأساسية سليمة.

مثال التعليمات البرمجية

يمكنك استخدام رمز المثال هذا لإسقاط قاعدة البيانات دون إسقاط مجلد التخزين الأساسي.

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)

لمزيد من المعلومات حول org.apache.hadoop.hive.ql.metadata.Hive ، يرجى مراجعة org.apache.hadoop.hive.ql.metadata.Hive.