外部存取檢視

Important

透過 Iceberg REST 目錄對檢視的外部存取仍處於 測試階段。 透過 Unity REST API 存取視圖已正式可用。

外部引擎可透過以下 API 查詢 Unity 目錄檢視:

外部引擎執行視圖的 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 執行時不同。