什麼是檢視?
檢視是只讀物件,這是 Unity 目錄中繼存放區中一或多個數據表和檢視的查詢結果。 您可以從資料表和多個架構和目錄中的其他檢視建立檢視。
本文說明您可以在 Azure Databricks 中建立的檢視,並提供查詢這些檢視所需的許可權和計算說明。
如需建立檢視的詳細資訊,請參閱:
Unity 目錄中的視圖
在 Unity 目錄中,檢視位於三層命名空間的第三層 (catalog.schema.view
):
視圖通常會在中繼存放區針對一個或多個數據源或數據表儲存查詢文字。 在 Azure Databricks 中,檢視相當於將 Spark DataFrame 保存為架構中的物件。 不同於 DataFrame,您可以查詢 Azure Databricks 中任何地方的檢視,假設您有權這麼做。 建立檢視不會處理或寫入任何數據。 只有查詢文字會註冊至相關聯架構中的中繼存放區。
注意
如果檢視是由 Delta 表格以外的數據源支援,則可能會有不同的執行語意。 Databricks 建議您一律使用資料表或視圖名稱來參考資料來源,以定義視圖。 藉由指定路徑或 URI 來定義資料集的檢視,可能會導致數據控管需求混淆。
具象化視圖
具體化檢視會以累加方式計算和更新定義查詢所傳回的結果。
您可以使用 Databricks SQL 在 Unity 目錄中註冊具體化檢視,或將它們定義為 Delta Live Tables 管線的一部分。 請參閱 在 Databricks SQL 中使用具體化檢視和 什麼是 Delta 實時數據表?。
暫存檢視
暫存檢視的範圍和持續性有限,且未註冊至架構或目錄。 暫存檢視的存留期會根據您使用的環境而有所不同:
- 在筆記本和作業中,暫存檢視的範圍是筆記本或腳本層級。 它們無法在宣告的筆記本外部參考,而且當筆記本與叢集中斷連結時已不存在。
- 在 Databricks SQL 中,暫存檢視的範圍設定為查詢層級。 相同查詢內的多個語句可以使用暫存檢視,但無法在其他查詢中參考,即使在相同的儀錶板內也一樣。
動態檢視
除了數據遮罩之外,動態檢視還可以用來提供行層級和列層級的訪問控制。 請參閱建立動態檢視。
Hive 中繼存放區中的視圖(舊版的)
您可以針對任何數據源定義舊版 Hive 檢視,並在舊版 Hive 中繼存放區中註冊它們。 Databricks 建議將所有舊版 Hive 檢視移轉至 Unity 目錄。 請參閱 Hive 中繼資料庫中的
Hive 全域暫存檢視 (舊版)
全域暫存檢視是舊版 Azure Databricks 功能,可讓您註冊針對計算資源執行的所有工作負載可用的暫存檢視。 全域暫存視圖是 Hive 和 HDFS 的遺留元件。 Databricks 不建議使用全域暫存檢視。
查詢視圖的需求
若要讀取在 Unity 目錄中註冊的檢視,所需的許可權取決於計算類型、Databricks 執行時間版本和存取模式。
注意
針對所有檢視,檢視本身以及檢視所基於的基礎表和檢視都會執行許可權檢查。 檢查基礎表和檢視之許可權的使用者取決於計算。 針對下列專案,Unity 目錄會檢查檢視擁有者對基礎數據的許可權:
- SQL 資料倉庫。
- 共用計算。
- 在已啟用精細訪問控制的 Databricks Runtime 15.4 LTS 和更新版本上進行單用戶運算。
針對 Databricks Runtime 15.3 及以下版本的單一用戶計算,Unity Catalog 會檢查檢視擁有者和檢視使用者對底層數據的許可權。
此行為會反映在下列需求中。 不論是哪一種情況,檢視擁有者都必須保有對於基礎數據的許可權,以便檢視使用者能存取檢視。
- 針對所有計算資源,您必須在檢視本身設有
SELECT
、在其父目錄上設有USE CATALOG
,以及在其父架構上設有USE SCHEMA
。 這適用於所有支援 Unity 目錄的計算類型,包括 SQL 倉儲、共用存取模式中的叢集,以及 Databricks Runtime 15.4 和更新版本上單一使用者存取模式中的叢集。 - 針對使用單一使用者存取模式的 Databricks Runtime 15.3 及以下版本的叢集,您必須在檢視中引用的所有數據表和視圖上設定
SELECT
,並且也要在這些數據表和視圖所屬的父目錄上設定USE CATALOG
,以及在其父結構上設定USE SCHEMA
。
注意
如果您在 Databricks Runtime 15.4 LTS 及以上版本上使用單用戶叢集,並且想要避免必須在基礎資料表與檢視上擁有 SELECT
的需求,請確認您的工作區 已啟用無伺服器計算。
無伺服器運算服務會處理數據篩選,這樣可以讓進行視圖的存取,而無需對其基礎表和視圖進行許可權設定。 請注意,當您使用單一使用者計算來查詢檢視時,可能會產生無伺服器計算費用。 如需詳細資訊,請參閱 單一用戶計算環境的精細訪問控制。