Important
透過 Iceberg REST 目錄對檢視的外部存取仍處於 測試階段。 透過 Unity REST API 存取視圖已正式可用。
外部引擎可透過以下 API 查詢 Unity 目錄檢視:
- Unity REST API 用於檢視 Delta Lake 資料表。
- Iceberg REST 目錄,提供對相容 Iceberg 表格的視圖。
外部引擎執行視圖的 SQL 並讀取底層資料表。 讀者必須能存取該檢視及所有參考的檢視或資料表。
Requirements
- 啟用元儲存庫的 外部資料存取 。 請參閱 啟用 Unity Catalog 的外部資料存取。
- 對父目錄和結構授予
USE CATALOG和USE SCHEMA、對檢視及每個被參考的檢視或資料表授予SELECT,以及對包含這些資料表的結構授予EXTERNAL USE SCHEMA。 - 用 Azure Databricks 個人存取令牌或 OAuth 令牌認證。
- 使用與外部引擎相容的 View SQL。
從 Apache Spark 查詢視圖
Spark 範例的最小版本:
- Apache Spark 4.0。
- 適用於 Delta 視圖:Unity Catalog Spark 連接器 0.6.0 和 Delta Lake 4.3.0。
- 適用於 Iceberg 視圖:Apache Iceberg 1.10.0。
使用 Unity Catalog 目錄名稱作為 Spark 目錄名稱,包括檢視所參考的目錄名稱。
Delta 表的視圖
使用 從 Delta 用戶端存取 Databricks 資料表,以及上述列出的 Spark、Unity Catalog 連接器和 Delta Lake 版本來設定 Spark。
若要查詢該檢視,請將 <schema>、<view> 和 <catalog> 分別替換為你的目錄、結構描述和檢視名稱,然後在 Spark 中執行以下 SQL:
SELECT * FROM <catalog>.<schema>.<view>;
Iceberg 資料表的檢視表
使用 從 Apache Iceberg 用戶端存取 Azure Databricks 資料表來設定 Spark,並使用上述列出的 Spark 與 Iceberg 版本。
要查詢檢視,將 <schema>、<view> 和 <catalog> 替換成你的目錄、結構和檢視名稱,然後在 Spark 執行以下 SQL:
SELECT * FROM <catalog>.<schema>.<view>;
限制
- 不支援從外部運算建立及變更視圖。
- 外部引擎必須支援以 Spark SQL 方言進行檢視定義。 參考視圖的查詢會使用外部引擎的 SQL 方言。
關於 Iceberg REST 目錄存取:
- 不支援具備細緻存取控制政策、自訂解析路徑或使用者自訂函式的視圖。
- 歷史版本檢視不受支援。
- Spark 使用讀取器的 SQL 設定。 結果或錯誤可能與 Databricks 執行時不同。