共用方式為


停用 Azure Databricks 工作區所使用 Hive 中繼存放區的存取

此頁面說明如何停用對 Azure Databricks 工作區所使用的舊版 Hive 中繼存放區的直接存取,不論是工作區本地的 Hive 中繼存放區或外部的 Hive 中繼存放區。 當您完成 Unity 目錄移轉或將 Hive 中繼存放區同盟為受 Unity 目錄控管的外國目錄時,您可以使用簡單的工作區管理員設定來防止使用者略過 Unity 目錄並存取 Hive 中繼存放區中註冊的數據表。

Hive 中繼存放區中的數據不受 Unity 目錄所控管。 停用直接Hive中繼存放區存取是移轉至 Unity 目錄並確保您充分利用 Unity 目錄資料控管的重要步驟。 您可以停用直接存取,並利用Hive中繼存放區同盟,繼續查詢Hive中繼存放區所管理的數據表。 您可以在停用Hive中繼存放區直接工作區存取Hive中繼存放區之前或之後,將Hive中繼存放區數據表同盟。 請參閱 將現有的工作區升級至 Unity 目錄Hive 中繼存放區同盟:啟用 Unity 目錄來管理 Hive 中繼存放區中註冊的數據表

這很重要

即使遷移到 Unity Catalog,Azure Databricks 的運算叢集預設還是會連接到 Hive metastore,除非你明確停用 Hive metastore 的存取權限。 為了防止 Hive metastore 維護影響你的 Unity Catalog 工作負載,你可以同時關閉所有叢集和工作負載對 Hive metastore 的直接存取(停用所有直接存取 Hive metastore),或使用 Spark 設定依叢集逐一關閉存取(關閉所有直接存取 Hive metastore)。

若要在帳戶層級停用新工作區的 Hive 中繼存放區存取權,請使用 停用舊版功能 帳戶設定。

開始之前:何時應停用舊版中繼存放區?

停用舊版 Hive 中繼存放區之前,您應該符合下列準則:

  • 您已完成將舊版中繼存放區中註冊的所有數據表移轉至 Unity 目錄,或您一律使用 Unity 目錄,且永遠不會使用舊版 Hive 中繼存放區。
  • 您要強制使用者停止使用在舊版中繼存放區中註冊的數據表。
  • 您已將所有作業升級至 Databricks Runtime 13.3 LTS 或更新版本。

當您停用舊版中繼存放區時,會發生什麼事?

停用舊版中繼存放區之後:

  • 針對登錄至Hive中繼存放區之數據表執行的任何作業都會失敗。

  • 後援 已停用。

  • 在低於 13.3 的 Databricks 執行時間版本上執行的作業將會失敗。

    目前執行中的作業會繼續運作,直到終止為止,但這些叢集上的重新啟動將會失敗。

  • 舊版標題和hive_metastore目錄會從 [目錄總管] 瀏覽器窗格消失。

  • 嘗試顯示目錄內容的 hive_metastore SQL 命令將會失敗。

Note

停用舊版存取並不會防止使用者使用叢集層級認證,例如叢集上可用的服務主體。 Databricks 建議您從叢集移除這類認證。

No Isolation Shared 的叢集中,不尊重舊版 Hive 中繼存放區停用設定。 若要防止使用者建立和使用這類叢集,請啟用工作區的 [強制執行使用者隔離 ] 設定。 請參閱 在工作區上強制執行使用者隔離叢集類型

禁用所有對 Hive Metastore 的直接存取

使用工作區管理員設定中的 停用舊版存取 來停用工作區的舊版 Hive 中繼資料存放區。

  1. 身為工作區管理員,登入您的 Azure Databricks 工作區。
  2. 點擊右上方的使用者配置檔功能表,然後從功能表中選取 [ 設定 ]。
  3. 移至 工作區系統管理員 > 安全性
  4. [停用舊版存取 ] 設定為 [停用]:無法使用舊版存取功能
  5. 為了確保新設定已生效,請等候大約五分鐘。
  6. 重新啟動所有執行中的叢集。

關閉個別運算叢集的存取權限

您也可以逐個叢集逐步停用對 Hive 中繼存放區的直接存取。 當您想要以累加方式減少對Hive中繼存放區的依賴,直到您可以停用整個工作區的Hive中繼存放區時,此方法在 Unity 目錄移轉期間很有用。

若要停用直接存取,請在叢集上設定下列 Spark 組態

spark.databricks.unityCatalogOnlyMode True
spark.databricks.sql.initial.catalog.namespace <catalog-name>

取代 <catalog-name> 為中繼存放區中存在的 Unity 目錄目錄名稱。 當您啟用僅限 Unity 目錄模式時,您也必須設定初始目錄,因為叢集無法再用作hive_metastore預設目錄