用於外部系統存取的 Unity Catalog 認證發放系統

提示

關於如何利用Microsoft Fabric讀取Azure Databricks資料的資訊,請參見Microsoft Fabric,Azure Databricks。

本頁說明 Unity Catalog 憑證自動販賣功能如何支援從外部處理引擎存取 Azure Databricks 中的資料。

憑證發放支援透過 Unity REST API 和 Apache Iceberg REST 目錄連接的外部系統使用 Unity Catalog。 請參閱 來自 Delta 用戶端的 Access Databricks 資料表 ,以及 使用外部系統的 Access Databricks 資料。

什麼是 Unity Catalog 憑證分發?

憑證發放 通過 Unity Catalog REST API 授予短期憑證。 被授予的憑證會繼承用於設定整合的 Azure Databricks 主體所具備的權限。 證件販賣有兩種類型:

  • 數據表認證自動販賣 可讓您存取在 Unity 目錄中繼存放區中註冊的數據。
  • 路徑憑證發放 可讓您存取 Unity Catalog 中繼資料庫中的外部位置。

要求

表格憑證分發

資料表憑證包含一個短壽命的存取權杖字串和雲端儲存位置 URL,外部引擎可利用這些 URL 從雲端儲存位置存取資料表資料與中繼資料。

支援的存取類型

桌帳憑證自動售賣支援以下表格類型與操作:

數據表類型 參閱 書寫 Create
管理達美 是的 是* 是*
外部三角洲 是的 是的 是的
管理型冰山 是的 是的 是的
外國冰山 是的 No No
《Delta with Iceberg》讀物如下 是的 是** No

* 從 Delta 用戶端建立並寫入 Unity Catalog 管理的資料表,目前已處於 公開預覽階段。

** 在外部寫入一個由 Delta 用戶端啟用 Iceberg 讀取的表格後,執行 MSCK REPAIR TABLE 以產生 Iceberg 元資料。

注意

部分用戶端支援存取由 Delta Lake 支援的資料表,而另一些則要求你在資料表上啟用 Iceberg 讀取。 請參閱 使用 Iceberg 用戶端讀取 Delta Lake 資料表。

請求用於存取外部資料的臨時表憑證

認證販賣的支援會因外部客戶端而異。 如果支援,客戶端應該在設定連線時自動使用提供的憑證。

本節提供明確呼叫認證自動售貨 API 端點的範例。 某些外部用戶端可能會要求您明確設定設定,以存取支援 Unity 目錄數據表之雲端物件記憶體中的數據和元數據。 您可以使用憑證發放所傳回的值來設定存取。

注意

您可以使用已啟用 include_manifest_capabilities 選項的 ListTables API 來擷取支援認證自動販賣的資料表清單。 只有標示 HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT 或 HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT 的數據表才有資格在臨時表認證 API 中參考。 請參閱 GET /api/2.1/unity-catalog/tables。

下列 curl 範例會明確要求外部數據存取的暫時認證。 此要求必須由擁有足夠權限的工作區管理者完成。

curl -X POST -H "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-table-credentials \
-d '{"table_id": "<string>", "operation": "<READ|READ_WRITE>"}'

詳情請參閱 Azure Databricks REST API 參考中的 POST /api/2.1/unity-catalog/temporary-table-credentials。

局限性

存在下列限制:

  • 並非所有外部客戶端都支持認證販賣,而且支援可能會因基礎雲端物件儲存而有所不同。
  • Delta Lake 讀取器用戶端只能讀取由 Delta Lake 支援的資料表,且必須支援該資料表上啟用的所有讀寫協定。 請參閱 Delta Lake 功能相容性和通訊協定。
  • 不使用 Delta Lake 的外部數據表不提供交易式保證。
  • 不支援已啟用功能的下表型態或資料表:
    • 具有數據列篩選或數據行遮罩的數據表。
    • 使用OpenSharing共享的表格。
    • 觀點。
    • 具體化檢視。
    • Lakeflow 管線串流資料表。
    • 在線數據表。
    • AI 搜尋索引。
  • Iceberg 1.9.0 不支持認證重新整理。 使用最新的 Iceberg 版本進行認證重新整理。

路徑憑證發放

發行的憑證允許直接存取雲端儲存位置,並限定於相關路徑的範圍內。 它們有效時間有限,且不會授與超出定義位置或數據表的更廣泛存取權。

要求外部數據存取的暫時路徑認證

認證販賣的支援會因外部客戶端而異。 如果支援,客戶端應該在設定連線時自動使用提供的憑證。

本節提供明確呼叫認證自動售貨 API 端點的範例。 某些外部用戶端可能會要求您明確設定設定,以存取支援 Unity 目錄數據表之雲端物件記憶體中的數據和元數據。 您可以使用憑證發放所傳回的值來設定存取。

下列 curl 範例會明確要求外部數據存取的暫時認證。 此要求必須由擁有足夠權限的工作區管理者完成。

curl -X POST -H "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-path-credentials \
-d '{"url": "<string>", "operation": "<PATH_READ|PATH_READ_WRITE|PATH_CREATE_TABLE>"}'

詳情請參閱 Azure Databricks REST API 參考中的 Generate a temporary path credential。

大量憑證發放

重要

這項功能目前處於公開預覽階段。

磁碟區憑證發放可讓外部引擎使用暫時且具範圍限制的憑證,存取儲存在 Unity Catalog 磁碟區中的檔案。 提出要求的主體必須在包含該磁碟區的結構描述上具有 EXTERNAL USE SCHEMA,以及具有 READ VOLUME 才能取得讀取權限,或具有 READ VOLUME 和 WRITE VOLUME 才能取得寫入權限。 請參閱什麼是 Unity Catalog 磁碟區?。

Unity Catalog 會驗證權限,並回傳綁定於磁碟區儲存路徑的短暫且有範圍的雲端儲存憑證。 憑證會自動過期,且不會授權存取超過指定磁碟區的權限。

要求

  • 中繼存放區必須啟用外部存取。 請參閱 在中繼存放區上啟用外部數據存取。
  • 提出要求的主體必須在包含該磁碟區的結構描述上具有 EXTERNAL USE SCHEMA,以及具有 READ VOLUME 才能取得讀取權限,或具有 READ VOLUME 和 WRITE VOLUME 才能取得寫入權限。
  • 外部引擎必須能夠存取工作區的 URL。
  • 雲端儲存 URL 必須透過防火牆和網路控制系統存取。

請求臨時磁碟區憑證以存取外部資料

下列 curl 範例會明確要求外部數據存取的暫時認證。

curl -X POST -H "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.0/unity-catalog/temporary-volume-credentials \
-d '{"volume_id": "<volume-id>", "operation": "<READ_VOLUME|WRITE_VOLUME>"}'

或者使用 Azure Databricks Python SDK:

from databricks.sdk.service.catalog import VolumeOperation

creds = w.temporary_volume_credentials.generate_temporary_volume_credentials(
    volume_id=volume_id,
    operation=VolumeOperation.READ_VOLUME,
)

詳情請參閱 Azure Databricks REST API 參考中的 POST /api/2.0/unity-catalog/temporary-volume-credentials。

局限性

  • 受管理卷僅支援唯讀存取。 外部磁碟區同時支援讀寫存取。