作為 Azure Databricks 的接收者,你可以從開放的提供者匯入憑證檔案,並讀取共享的資料資產。 你可以在目錄總管查詢共享資料,或使用 Python 筆記本。
Note
如果資料是透過 Databricks-to-Databricks OpenSharing 與你分享,你不需要憑證檔案就能存取資料,這個頁面也不適用於你。 請改為參閱讀取使用 Databricks-to-Databricks OpenSharing 共享的資料(適用於收件者)。
Requirements
您的團隊成員必須下載資料提供者分享的憑證檔案,並透過安全管道與您分享該檔案或檔案位置。 請參閱 Open-to-Databricks 模型中的存取權取得方式。
Note
儲存桶與憑證能力(範圍、到期、讀取與讀寫)由提供者決定。 如果提供者是 Azure Databricks 提供者,在安全出口閘道(SEG)工作區中掛載開放共用時,系統會自動將該提供者的儲存貯體加入對外存取的允許清單。 對於非 Databricks 的開放供應商,該儲存貯體不會自動加入允許清單。 安裝前請確認供應商。
匯入提供者並查詢共享資料
本節說明如何匯入提供者,以及如何在目錄總管或 Python 筆記本中查詢共享數據:
如果你的 Azure Databricks 工作區啟用了 Unity 目錄,請使用 目錄總管中的匯入提供者介面。 您可以執行下列動作,而不需要儲存或指定認證檔案:
- 單擊按鈕即可從分享中建立目錄。
- 使用 Unity 目錄訪問控制來授與共享數據表的存取權。
- 使用標準 Unity 目錄語法查詢共享數據。
- 對現有提供者物件套用輪換的憑證,而不重新建立目錄。 請參閱 「輪換公開收件人憑證」。
如果你的 Azure Databricks 工作區沒有啟用 Unity Catalog,請改用 Python 筆記本的指示。
目錄檢視器
所需權限:需是元商店管理員或擁有 CREATE PROVIDER Unity 目錄元商店權限的使用者。 若要根據分享建立目錄,您需要具備 CREATE CATALOG 權限。
在您的 Azure Databricks 工作區中,按一下
以開啟目錄總管。
在 目錄 面板頂端,點選
選擇 OpenSharing。 或者,在右上角點選 「分享 > OpenSharing」。
在 「與我分享 」標籤中,點選 「安裝分享」。
輸入提供者名稱。 名稱不能包含空格。
上傳提供者與您共用的認證檔案。 許多供應商都有自己的 OpenSharing 網路,你可以從中接收分享。 如需詳細資訊,請參閱 提供者特定的組態。
(選擇性)輸入批註。
點選 匯入。
在 「分享 」標籤中,點擊分享列的 「建立目錄 」以從共享資料建立目錄。
如需使用 SQL 或 Databricks CLI 從共用建立目錄的相關信息,請參閱 從共用建立目錄。
授與目錄的存取權。 請參閱「 我如何讓團隊使用共享資料? 」以及 「管理 OpenSharing 目錄中結構、資料表和卷的權限」。
像使用在 Unity Catalog 中註冊的任何資料物件一樣,讀取共享的資料物件。
如需詳細資料和範例,請參閱 存取共享資料表或磁碟區中的數據。
Python
如果你的工作區沒有啟用 Unity Catalog,請在 Azure Databricks 工作區用筆記本讀取共享資料。 把憑證檔案存到 Azure Databricks,然後用它來驗證資料提供者並讀取共享資料。
Note
這些說明假設你的 Azure Databricks 工作空間尚未啟用 Unity Catalog。 如果您使用 Unity Catalog,則從共享中讀取資料時不需要指向認證檔案。 您可以從共享資料表中讀取,就像從 Unity Catalog 平台中註冊的任何資料表一樣。 Databricks 建議您在目錄總管中使用匯入提供者 UI,而不是此處提供的指示。
首先將憑證檔案存為 Azure Databricks 工作區檔案,讓團隊成員能存取共享資料。
- 若要匯入 Azure Databricks 工作區中的認證檔案,請參閱 匯入檔案。
- 你可以透過點擊
,然後點擊檔案旁的「 分享(權限)」,授權其他使用者存取該檔案。 輸入應該可以存取檔案的 Azure Databricks 身分識別。 如需檔案許可權的詳細資訊,請參閱 檔案 ACL。
現在憑證檔案已經儲存好,建立一個筆記本來列出並閱讀共享的資料表。
在您的 Azure Databricks 工作區中,按兩下 [ 新增 > 筆記本]。 如需 Azure Databricks 筆記本的詳細資訊,請參閱 Databricks 筆記本。
安裝
delta-sharing連接器,使用 Pythonpandas或 Apache Spark 來列出並閱讀共享的資料表。 使用你的憑證檔案的工作區路徑(例如/Workspace/Users/user.name@email.com/config.share)作為設定檔路徑。 關於程式碼範例,請參見 Pandas: Read shared data 與 Apache Spark: Read shared data。除了 Python 和 Apache Spark 指令外,你還可以用 SQL 查詢共享資料。 在工作區中從共用資料表建立本機資料表,然後查詢本機資料表。 共用的數據不會儲存或暫存在本機數據表中。 每次查詢本機數據表時,您會看到共享數據的目前狀態。
取代變數,如下所示:
-
<local-table-name>:本地資料表的名稱。 -
<profile-path>:認證檔案的位置。 -
<share-name>:表格的share=的值。 -
<schema-name>:表格的schema=的值。 -
<table-name>:表格的name=的值。
%sql DROP TABLE IF EXISTS <local-table-name>; CREATE TABLE <local-table-name> USING deltaSharing LOCATION "<profile-path>#<share-name>.<schema-name>.<table-name>"; SELECT * FROM <local-table-name> LIMIT 10;-
當您執行 命令時,會直接查詢共享數據。 作為測試,會查詢數據表,並傳回前 10 個結果。
如果輸出是空的,或不包含您預期的數據,請連絡數據提供者。
OpenSharing Python 連接器有限制。 請參閱 OpenSharing Python 連接器的限制。
Limitations
開放至資料磚的分享基於 OpenSharing 協議。 當你將開放提供者匯入 Azure Databricks 時,以下支援適用:
- 僅支援 Delta Sharing 協定的 Delta 資料表。 不支援僅限 Iceberg 的資料表。
- 同時支援預簽 URL 與 雲端令牌(基於目錄)存取 。 當提供者開放雲端令牌時,Azure Databricks 會優先使用雲端令牌存取權。
- 僅支援以下雲端代幣儲存方案:
s3、s3as3nabfsswasbsgsr2及。
若要從外部來源讀取非 Delta 資料,如 Iceberg、CSV、Parquet 或 JSON,請使用 Lakehouse Federation。 請參閱 「連接外部資料庫與目錄」。