建立和管理 Delta 共用的共用
本文說明如何建立和管理差異共用的共用。
共用是 Unity 目錄中的安全性實體物件,可用來與一或多個收件者共用下列數據資產:
- 數據表和數據表分割區
- 檢視表,包括限制數據列和數據行層級存取的動態檢視
- 磁碟區
- Notebooks
- AI 模型
如果您共用整個架構(資料庫),收件者可以在共享架構時存取架構中的所有數據表、檢視、模型和磁碟區,以及未來新增至架構的任何數據和 AI 資產。
共用只能包含一個 Unity 目錄中繼存放區的數據和 AI 資產。 您可以隨時從共用新增或移除資料和 AI 資產。
如需詳細資訊,請參閱 共用、提供者和收件者。
需求
若要建立共用,您必須:
- 身為中繼存放區管理員,或具有
CREATE SHARE
您要共享數據的 Unity 目錄中繼存放區註冊許可權。 - 使用已連結 Unity 目錄中繼存放區的 Azure Databricks 工作區建立共用。
若要將資料表或檢視新增至共用,您必須:
- 成為共享擁有者。
-
USE CATALOG
具有目錄和架構的 和USE SCHEMA
許可權,其中包含數據表或檢視表,或目錄或架構的擁有權。 - 具有
SELECT
數據表或檢視表的許可權。 您必須保留該許可權,才能讓數據表或檢視繼續共用。 如果您遺失,收件者就無法透過共用存取數據表或檢視表。 因此,Databricks 建議您使用群組作為共享擁有者。
若要將磁碟區新增至共用,您必須:
- 成為共享擁有者。
-
USE CATALOG
具有目錄和架構的 和USE SCHEMA
許可權,其中包含磁碟區,或目錄或架構的擁有權。 - 具有
READ VOLUME
磁碟區的許可權。 您必須保留該許可權,才能讓磁碟區繼續共用。 如果您遺失,收件者就無法透過共用存取磁碟區。 因此,Databricks 建議您使用群組作為共享擁有者。
若要將模型新增至共用,您必須:
- 成為共享擁有者。
-
USE CATALOG
具有目錄和架構的 和USE SCHEMA
許可權,其中包含模型,或目錄或架構的擁有權。 - 擁有
EXECUTE
模型的許可權。 您必須保留該許可權,才能讓模型繼續共用。 如果您遺失,收件者就無法透過共用存取模型。 因此,Databricks 建議您使用群組作為共享擁有者。
若要共用整個架構,您必須:
- 成為共用擁有者和架構擁有者,或具有
USE SCHEMA.
- 在
SELECT
架構上擁有 共享數據表。 - 在
READ VOLUME
架構上擁有共用磁碟區。
若要將筆記本檔案新增至共用,您必須:
- 共享擁有者,並具有筆記本的 CAN READ 許可權。
若要將共用的存取權授與收件者,您必須是下列其中一項:
- 中繼存放區管理員。
- 在共用和收件者物件((
USE SHARE
+SET SHARE PERMISSION
) 或共用擁有者上具有委派權限或所有權的使用者,以及 (USE RECIPIENT
或收件者擁有者)。
若要檢視共用,您必須是下列其中一項:
- 中繼存放區管理員(可檢視全部)
- 具有
USE SHARE
權限的使用者 (可檢視全部) - 共用物件擁有者
計算需求:
- 如果您使用 Databricks Notebook 來建立共用,您的叢集必須使用 Databricks Runtime 11.3 LTS 或更新版本,以及共用或單一使用者叢集存取模式。
- 如果您使用 SQL 語句將架構新增至共用(或更新或移除架構),則必須使用 SQL 倉儲或執行 Databricks Runtime 13.3 LTS 或更新版本的計算。 使用目錄總管執行相同的作業沒有計算需求。
建立共享物件
若要建立共用,您可以使用目錄總管、Databricks Unity 目錄 CLI,或 CREATE SHARE
Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的 SQL 命令。
需要的許可權:具有 CREATE SHARE
中繼存放區許可權的中繼存放區管理員或使用者。
目錄總管
在 Azure Databricks 工作區中,按一下 [目錄]。
在 [目錄] 窗格頂端,按一下齒輪圖示,然後選取 [Delta Sharing]。
或者,從 [快速存取] 頁面,按一下 [Delta Sharing >] 按鈕。
在 [ 由我 共用] 索引標籤上,按兩下 [ 共享數據] 按鈕。
在 [ 建立共用] 頁面上,輸入共用 名稱和 選擇性批注。
按一下 [儲存並繼續]。
您可以繼續新增數據資產,或稍後停止並返回。
在 [ 新增數據資產 ] 索引標籤上,選取您要共享的數據表、磁碟區、檢視和模型。
如需詳細指示,請參閱:
按一下 [儲存並繼續]。
在 [ 新增筆記本] 索引 標籤上,選取您想要共用的筆記本。
如需詳細指示,請參閱 將筆記本檔案新增至共用。
按一下 [儲存並繼續]。
在 [ 新增收件者] 索引 標籤上,選取您要與其共用的收件者。
如需詳細指示,請參閱管理對 Delta Sharing 數據共用的存取權(適用於提供者)。
按兩下 [ 共享資料 ] 以與收件者共享數據。
SQL
在筆記本或 Databricks SQL 查詢編輯器中執行下列命令:
CREATE SHARE [IF NOT EXISTS] <share-name>
[COMMENT "<comment>"];
現在您可以將數據表、磁碟區、檢視和模型新增至共用。
如需詳細指示,請參閱:
CLI
使用 Databricks CLI 執行下列命令。
databricks shares create <share-name>
您可以使用 --comment
來新增批注或 --json
將資產新增至共用。 如需詳細資訊,請參閱下列各節。
現在您可以將數據表、磁碟區、檢視和模型新增至共用。
如需詳細指示,請參閱:
將數據表新增至共用
若要將數據表新增至共用,您可以使用目錄總管、Databricks Unity 目錄 CLI,或 Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的 SQL 命令。
注意
數據表批注、數據行批注和 主鍵條件約束 包含在 2024 年 7 月 25 日或 2024 年 7 月 25 日之後與收件者共用的共用中。 如果您想要透過發行日期前與收件者共用的共享開始共用批注和條件約束,您必須撤銷並重新授與收件者存取權,以觸發批注和條件約束共用。
必要許可權:共用對象的擁有者, USE CATALOG
以及 USE SCHEMA
包含數據表的目錄和架構上,以及 SELECT
數據表的許可權。 只要您想要共享數據表, SELECT
就必須保留許可權。 如需詳細資訊,請參閱 需求。
注意
如果您是工作區管理員,而且繼承了 USE SCHEMA
包含工作區管理員群組數據表之架構和目錄的 和 USE CATALOG
許可權,則您無法將數據表新增至共用。 您必須先授與 USE SCHEMA
架構和目錄的 和 USE CATALOG
許可權。
目錄總管
在 Azure Databricks 工作區中,按一下 [目錄]。
在 [目錄] 窗格頂端,按一下齒輪圖示,然後選取 [Delta Sharing]。
或者,從 [快速存取] 頁面,按一下 [Delta Sharing >] 按鈕。
在 [ 由我 共用] 索引標籤上,尋找您要新增數據表的共享,然後按兩下其名稱。
按兩下 [ 管理資產 > ][新增數據資產]。
在 [ 新增數據表] 頁面上,選取整個架構(資料庫)或個別數據表和檢視。
歷程記錄:共用數據表歷程記錄,讓收件者能夠執行時間移動查詢,或使用Spark結構化串流讀取數據表。 針對 Databricks 對 Databricks 共用,數據表的 Delta 記錄也會共用以改善效能。 請參閱 透過共用歷史記錄改善數據表的讀取效能。 記錄共用需要 Databricks Runtime 12.2 LTS 或更新版本。
注意
如果除了執行時間移動查詢和串流讀取之外,您希望您的客戶能夠使用 table_changes() 函式查詢數據表的變更數據摘要 (CDF),您必須先 在數據表 上啟用 CDF,才能共用
WITH HISTORY
數據表。(選擇性)按兩下 [ 進階資料表選項 ] 以指定下列選項。 如果您選取整個架構,則無法使用別名和分割區。 如果您選取整個架構,預設會包含資料表歷程記錄。
- 別名:替代數據表名稱,讓數據表名稱更容易閱讀。 別名是收件者看到且必須在查詢中使用的數據表名稱。 如果指定別名,收件者就無法使用實際的數據表名稱。
-
數據分割:只共享數據表的一部分。 例如:
(column = 'value')
。 請參閱 指定要共享 的數據表分割和 使用收件者屬性來執行數據分割篩選。
按一下 [檔案] 。
SQL
在筆記本或 Databricks SQL 查詢編輯器中執行下列命令,以新增數據表:
ALTER SHARE <share-name> ADD TABLE <catalog-name>.<schema-name>.<table-name> [COMMENT "<comment>"]
[PARTITION(<clause>)] [AS <alias>]
[WITH HISTORY | WITHOUT HISTORY];
執行下列命令以新增整個架構。
ADD SCHEMA
此命令需要執行 Databricks Runtime 13.3 LTS 或更新版本的 SQL 倉儲或計算。 如需共用架構的詳細資訊,請參閱 將架構新增至共用。
ALTER SHARE <share-name> ADD SCHEMA <catalog-name>.<schema-name>
[COMMENT "<comment>"];
選項包括下列專案。
PARTITION
如果您選擇整個架構,則無法使用 與 AS <alias>
。
WITH HISTORY
如果您選取整個架構,預設會針對所有資料表選取 。
PARTITION(<clause>)
:如果您想要只共享資料表的一部分,您可以指定分割區。 例如,(column = 'value')
請參閱指定要共用的數據表分割,並使用收件者屬性執行數據分割篩選。AS <alias>
:替代數據表名稱或 別名 ,讓數據表名稱更容易閱讀。 別名是收件者看到且必須在查詢中使用的數據表名稱。 如果指定別名,收件者就無法使用實際的數據表名稱。 請使用<schema-name>.<table-name>
格式。WITH HISTORY
或WITHOUT HISTORY
:指定時WITH HISTORY
,請與完整歷程記錄共享數據表,讓收件者能夠執行時間移動查詢和串流讀取。 針對 Databricks 間的共用,歷史記錄共用也會共用資料表的 Delta 日誌以提升效能,請參閱 使用歷史記錄共用來改善資料表讀取效能。 資料表共享的預設行為是WITHOUT HISTORY
,而架構共用的預設行為是WITH HISTORY
。 需要使用 Databricks Runtime 12.2 LTS 或更新版本。注意
如果除了執行時間移動查詢和串流讀取之外,您希望您的客戶能夠使用 table_changes() 函式查詢數據表的變更數據摘要 (CDF),您必須先 在數據表 上啟用 CDF,才能共用
WITH HISTORY
數據表。
如需選項的詳細資訊 ALTER SHARE
,請參閱 ALTER SHARE。
CLI
若要新增數據表,請使用 Databricks CLI 執行下列命令。
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<table-full-name>",
"data_object_type": "TABLE",
"shared_as": "<table-alias>"
}
}
]
}'
若要新增架構,請執行下列 Databricks CLI 命令:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<schema-full-name>",
"data_object_type": "SCHEMA"
}
}
]
}'
注意
對於資料表,而只有資料表,您可以省略 "data_object_type"
。
若要瞭解此範例中列出的選項,請檢視 [SQL] 索引標籤上的指示。
若要瞭解其他參數,請在 REST API 參考中執行 databricks shares update --help
或查看 PATCH /api/2.1/unity-catalog/shares/ 。
如需從共用移除數據表的相關信息,請參閱 更新共用。
指定要共享的數據表分割區
若要在將資料表新增至共用時只共享數據表的一部分,您可以提供分割區規格。 當您使用目錄總管、Databricks Unity 目錄 CLI 或 Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的 SQL 命令,將數據表新增至共用或更新共用時,您可以指定分割區。 請參閱 將數據表新增至共用 和 更新共用。
基本範例
下列 SQL 範例會分享資料表中 inventory
資料部分,由 year
、 month
和 date
資料行分割:
- 2021 年的數據。
- 2020 年 12 月的數據。
- 2019 年 12 月 25 日的數據。
ALTER SHARE share_name
ADD TABLE inventory
PARTITION (year = "2021"),
(year = "2020", month = "Dec"),
(year = "2019", month = "Dec", date = "2019-12-25");
使用收件者屬性執行數據分割篩選
您可以共用符合數據收件者屬性的數據表分割區,也稱為參數化數據分割共用。
預設屬性包括:
-
databricks.accountId
:數據收件者所屬的 Azure Databricks 帳戶(僅限 Databricks-to-Databricks 共用)。 -
databricks.metastoreId
:數據收件者所屬的 Unity 目錄中繼存放區(僅限 Databricks-to-Databricks 共用)。 -
databricks.name
:數據收件者的名稱。
您可以在建立或更新收件者時,建立您想要的任何自定義屬性。
依收件者屬性篩選可讓您跨多個 Databricks 帳戶、工作區和用戶共用相同的數據表,同時維護兩者之間的數據界限。
例如,如果您的數據表包含 Azure Databricks 帳戶標識碼數據行,您可以使用 Azure Databricks 帳戶標識碼所定義的數據表分割建立單一共用。 當您共用時,Delta Sharing 會動態傳送給每個收件者,而只會傳送與其 Azure Databricks 帳戶相關聯的數據。
若無法依屬性動態分割,您必須為每個收件者建立個別的共用。
若要指定在建立或更新共用時依收件者屬性篩選的數據分割,您可以在 Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中使用目錄總管或 CURRENT_RECIPIENT
SQL 函式:
注意
收件者屬性可在 Databricks Runtime 12.2 和更新版本上使用。
目錄總管
在 Azure Databricks 工作區中,按一下 [目錄]。
在 [目錄] 窗格頂端,按一下齒輪圖示,然後選取 [Delta Sharing]。
或者,從 [快速存取] 頁面,按一下 [Delta Sharing >] 按鈕。
在 [ 由我 共用] 索引標籤上,尋找您要更新的共享,然後按兩下其名稱。
按兩下 [ 管理資產 > ][新增數據資產]。
在 [ 新增數據表] 頁面上,選取包含數據表的目錄和資料庫,然後選取數據表。
如果您不確定哪個目錄和資料庫包含數據表,您可以使用工作區搜尋依名稱、數據行名稱或批注來搜尋它。 請參閱搜尋工作區物件。
(選擇性)按兩下 [ 進階資料表選項 ] 以新增 資料分割 規格。
在 [ 將分割區新增至數據表 ] 對話框中,使用下列語法新增屬性型數據分割規格:
(<column-name> = CURRENT_RECIPIENT().<property-key>)
例如,
(country = CURRENT_RECIPIENT().'country')
按一下 [檔案] 。
SQL
在筆記本或 Databricks SQL 查詢編輯器中執行下列命令:
ALTER SHARE <share-name> ADD TABLE <catalog-name>.<schema-name>.<table-name>
PARTITION (<column-name> = CURRENT_RECIPIENT().<property-key>);
例如,
ALTER SHARE acme ADD TABLE acme.default.some_table
PARTITION (country = CURRENT_RECIPIENT().'country');
新增具有刪除向量或數據行對應至共享的數據表
重要
這項功能處於公開預覽狀態。
刪除向量是您可以在 Delta 資料表上啟用的記憶體優化功能。 請參閱什麼是刪除向量?。
Azure Databricks 也支援差異資料表的資料行對應。 請參閱重新命名和卸除與 Delta Lake 資料行對應的資料行。
若要與刪除向量或數據行對應共享資料表,您必須與歷程記錄共享數據表。 請參閱 將數據表新增至共用。
當您與刪除向量或數據行對應共享數據表時,收件者可以使用 SQL 倉儲、執行 Databricks Runtime 14.1 或更新版本的叢集,或執行 開放原始碼 delta-sharing-spark
3.1 或更新版本的計算來查詢數據表。 請參閱 啟用 刪除向量或數據行對應的讀取數據表,以及 啟用刪除向量或數據行對應的讀取數據表。
將檢視新增至共用
重要
這項功能處於公開預覽狀態。
檢視是從一或多個數據表或其他檢視建立的唯讀物件。 您可以從包含在 Unity 目錄中繼存放區中多個架構和目錄的數據表和其他檢視建立檢視表。 請參閱 建立和管理檢視。
本節說明如何使用 Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的目錄總管、Databricks CLI 或 SQL 命令,將檢視新增至共用。 如果您要使用 Unity 目錄 REST API,請參閱 REST API 參考中的 PATCH /api/2.1/unity-catalog/shares/ 。
必要許可權:共用對象的擁有者, USE CATALOG
以及 USE SCHEMA
包含檢視的目錄和架構,以及 SELECT
檢視上的擁有者。 只要您想要共享檢視, SELECT
就必須保留許可權。 如需詳細資訊,請參閱 需求。
其他需求:
- 您必須在設定檢視共用的帳戶中啟用 工作流程、筆記本和 Delta 實時數據表 的無伺服器計算。 請參閱啟用無伺服器計算。
- 在 Delta 資料表或其他可共用檢視表上必須設定可共用檢視。
- 您無法共用參考共用資料表或共用檢視的檢視。
- 當您將檢視新增至共用時,必須在 Databricks Runtime 13.3 LTS 或更新版本上使用 SQL 倉儲或叢集。
- 如需檢視收件者使用方式的需求和限制,請參閱 讀取共享檢視。
若要將檢視新增至共用:
目錄總管
在 Azure Databricks 工作區中,按一下 [目錄]。
在 [目錄] 窗格頂端,按一下齒輪圖示,然後選取 [Delta Sharing]。
或者,從 [快速存取] 頁面,按一下 [Delta Sharing >] 按鈕。
在 [ 由我 共用] 索引標籤上,尋找您要新增檢視的共用,然後按兩下其名稱。
按兩下 [ 管理資產 > ][新增數據資產]。
在 [ 新增數據表] 頁面上,搜尋或流覽您想要共用的檢視,並加以選取。
(選擇性)按兩下 [ 進階資料表選項 ] 以指定別名或替代檢視名稱,讓檢視名稱更容易閱讀。 別名是收件者看到的名稱,而且必須在查詢中使用。 如果指定別名,收件者就無法使用實際的檢視名稱。
按一下 [檔案] 。
SQL
在筆記本或 Databricks SQL 查詢編輯器中執行下列命令:
ALTER SHARE <share-name> ADD VIEW <catalog-name>.<schema-name>.<view-name>
[COMMENT "<comment>"]
[AS <alias>];
這些選項包括:
-
AS <alias>
:替代檢視名稱或別名,可讓檢視名稱更容易閱讀。 別名是收件者看到且必須在查詢中使用的檢視名稱。 如果指定別名,收件者就無法使用實際的檢視名稱。 請使用<schema-name>.<view-name>
格式。 -
COMMENT "<comment>"
:批註會出現在目錄總管 UI 中,當您使用 SQL 語句列出和顯示檢視詳細數據時。
如需選項的詳細資訊 ALTER SHARE
,請參閱 ALTER SHARE。
CLI
執行下列 Databricks CLI 命令:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<view-full-name>",
"data_object_type": "VIEW",
"shared_as": "<view-alias>"
}
}
]
}'
"shared_as": "<view-alias>"
是選擇性的,並提供替代的檢視名稱或別名,讓檢視名稱更容易閱讀。 別名是收件者看到且必須在查詢中使用的檢視名稱。 如果指定別名,收件者就無法使用實際的檢視名稱。 請使用 <schema-name>.<view-name>
格式。
若要瞭解其他參數,請在 REST API 參考中執行 databricks shares update --help
或查看 PATCH /api/2.1/unity-catalog/shares/ 。
如需從共用移除檢視的詳細資訊,請參閱 更新共用。
將動態檢視新增至共用以篩選數據列和數據行
重要
這項功能處於公開預覽狀態。
您可以使用動態檢視來設定資料表資料的精細存取控制,包括:
- 數據行或數據列層級的安全性。
- 數據遮罩。
當您建立使用 CURRENT_RECIPIENT() 函式的動態檢視時,您可以根據收件者定義中指定的屬性來限制收件者存取權。
本節提供使用動態檢視,限制收件者存取數據列和數據行層級的範例。
需求
-
Databricks Runtime 版本:Databricks Runtime 14.2 和更新版本支援函
CURRENT_RECIPIENT
式。 -
權限:
- 若要建立檢視,您必須是共用對象的擁有者,在
USE CATALOG
USE SCHEMA
包含檢視的目錄和架構上,以及SELECT
檢視表的擁有者。 只要您想要共享檢視,SELECT
就必須保留許可權。 - 若要設定收件者的屬性,您必須是收件者對象的擁有者。
- 若要建立檢視,您必須是共用對象的擁有者,在
-
限制:檢視共用的所有限制,包括 Databricks 對 Databricks 共用的限制,以及下列各項:
- 當提供者共用使用 函式的
CURRENT_RECIPIENT
檢視時,提供者無法直接因為共用內容而查詢檢視。 若要測試這類動態檢視,提供者必須自行共享檢視,並將檢視查詢為收件者。 - 提供者無法建立參考動態檢視的檢視。
- 當提供者共用使用 函式的
設定收件者屬性
在這些範例中,要共用的數據表具有名為 country
的數據行,而且只有具有相符 country
屬性的收件者可以檢視特定數據列或數據行。
您可以在 Azure Databricks 筆記本或 SQL 查詢編輯器中使用目錄總管或 SQL 命令來設定收件者屬性。
目錄總管
在 Azure Databricks 工作區中,按一下 [目錄]。
在 [目錄] 窗格頂端,按一下齒輪圖示,然後選取 [Delta Sharing]。
或者,從 [快速存取] 頁面,按一下 [Delta Sharing >] 按鈕。
在 [ 收件者] 索引 標籤上,尋找您要新增屬性的收件者,然後按兩下其名稱。
按兩下 [ 編輯屬性]。
在 [ 編輯收件者屬性 ] 對話框中,輸入數據行名稱做為索引鍵(在此案例
country
中為 ),以及您想要篩選的值做為值(例如 ,CA
)。按一下 [檔案] 。
SQL
若要在收件者上設定 屬性,請使用 ALTER RECIPIENT
。 在這裡範例中 country
,屬性會設定為 CA
。
ALTER RECIPIENT recipient1 SET PROPERTIES ('country' = 'CA');
建立具有收件者數據列層級許可權的動態檢視
在此範例中,只有具有相符 country
屬性的收件者可以檢視特定數據列。
CREATE VIEW my_catalog.default.view1 AS
SELECT * FROM my_catalog.default.my_table
WHERE country = CURRENT_RECIPIENT('country');
另一個選項是讓數據提供者維護個別的對應數據表,將事實數據表字段對應至收件者屬性,讓收件者屬性和事實數據表字段可以更靈活地分離。
建立具有收件者數據行層級許可權的動態檢視
在此範例中,只有符合 屬性的 country
收件者可以檢視特定數據行。 其他則會看到傳回的資料為 REDACTED
:
CREATE VIEW my_catalog.default.view2 AS
SELECT
CASE
WHEN CURRENT_RECIPIENT('country') = 'US' THEN pii
ELSE 'REDACTED'
END AS pii
FROM my_catalog.default.my_table;
與收件者共用動態檢視
若要與收件者共用動態檢視,請使用與標準檢視相同的 SQL 命令或 UI 程式。 請參閱將檢視新增至共用。
將磁碟區新增至共用
磁碟區是 Unity 目錄物件,代表雲端物件儲存位置中的儲存體邏輯磁碟區。 它們主要是為了提供非表格式資料資產的治理。 請參閱Unity Catalog 磁碟區是什麼?。
本節說明如何使用目錄總管、Databricks CLI 或 Azure Databricks 筆記本或 SQL 查詢編輯器中的 SQL 命令,將磁碟區新增至共用。 如果您要使用 Unity 目錄 REST API,請參閱 REST API 參考中的 PATCH /api/2.1/unity-catalog/shares/ 。
注意
大量批註包含在 2024 年 7 月 25 日或 2024 年 7 月 25 日之後與收件者共用的共用中。 如果您想要透過發行日期前與收件者共用的共享開始共用批注,您必須撤銷並重新授與收件者存取權,以觸發批注共用。
必要許可權:共用對象的擁有者, USE CATALOG
以及 USE SCHEMA
包含磁碟區的目錄和架構,以及 READ VOLUME
磁碟區上的擁有者。 只要您想要共用磁碟區, READ VOLUME
就必須保留許可權。 如需詳細資訊,請參閱 需求。
其他需求:
- 只有 Databricks-to-Databricks 共用才支援磁碟區共用。
- 當您將磁碟區新增至共用時,必須在 2023.50 版或更新版本上使用 SQL 倉儲,或在 Databricks Runtime 14.1 或更新版本上使用叢集。
- 如果提供者端的磁碟區記憶體具有自定義網路設定(例如防火牆或私人連結),則提供者必須確定收件者的控制平面和數據平面位址已正確列入允許清單,才能連線到磁碟區的儲存位置。
若要將磁碟區新增至共用:
目錄總管
在 Azure Databricks 工作區中,按一下 [目錄]。
在 [目錄] 窗格頂端,按一下齒輪圖示,然後選取 [Delta Sharing]。
或者,從 [快速存取] 頁面,按一下 [Delta Sharing >] 按鈕。
在 [ 由我 共用] 索引標籤上,尋找您要新增磁碟區的共享,然後按兩下其名稱。
按兩下 [管理資產] [編輯資產>]。
在 [ 編輯資產] 頁面上,搜尋或流覽您要共用的磁碟區並加以選取。
或者,您可以選取包含磁碟區的整個架構。 請參閱 將結構描述新增至共用。
(選擇性)按兩下 [ 進階選項 ] 以指定替代磁碟區名稱或 別名,讓磁碟區名稱更容易閱讀。
如果您選取整個架構,則無法使用別名。
別名是收件者看到的名稱,而且必須在查詢中使用。 如果指定別名,收件者就無法使用實際的磁碟區名稱。
按一下 [檔案] 。
SQL
在筆記本或 Databricks SQL 查詢編輯器中執行下列命令:
ALTER SHARE <share-name> ADD VOLUME <catalog-name>.<schema-name>.<volume-name>
[COMMENT "<comment>"]
[AS <alias>];
這些選項包括:
-
AS <alias>
:替代磁碟區名稱或別名,可讓磁碟區名稱更容易閱讀。 別名是收件者看到且必須在查詢中使用的磁碟區名稱。 如果指定別名,收件者就無法使用實際的磁碟區名稱。 請使用<schema-name>.<volume-name>
格式。 -
COMMENT "<comment>"
:批註會出現在目錄總管 UI 中,當您使用 SQL 語句列出和顯示磁碟區詳細數據時。
如需選項的詳細資訊 ALTER SHARE
,請參閱 ALTER SHARE。
CLI
使用 Databricks CLI 0.210 或更新版本執行下列命令:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<volume-full-name>",
"data_object_type": "VOLUME",
"string_shared_as": "<volume-alias>"
}
}
]
}'
"string_shared_as": "<volume-alias>"
是選擇性的,並提供替代的磁碟區名稱或別名,讓磁碟區名稱更容易閱讀。 別名是收件者看到且必須在查詢中使用的磁碟區名稱。 如果指定別名,收件者就無法使用實際的磁碟區名稱。 請使用 <schema-name>.<volume-name>
格式。
若要瞭解其他參數,請在 REST API 參考中執行 databricks shares update --help
或查看 PATCH /api/2.1/unity-catalog/shares/ 。
如需從共用中移除磁碟區的相關信息,請參閱 更新共用。
將模型新增至共用
本節說明如何使用目錄總管、Databricks CLI 或 Azure Databricks 筆記本或 SQL 查詢編輯器中的 SQL 命令,將模型新增至共用。 如果您要使用 Unity 目錄 REST API,請參閱 REST API 參考中的 PATCH /api/2.1/unity-catalog/shares/ 。
注意
模型批注和模型版本批註包含在使用 Databricks-to-Databricks 共用共享的共用中。
必要許可權:共用對象的擁有者, USE CATALOG
以及 USE SCHEMA
包含模型的目錄和架構,以及 EXECUTE
模型上的擁有者。 只要您想要共用模型, EXECUTE
就必須保留許可權。 如需詳細資訊,請參閱 需求。
其他需求:
- 只有 Databricks-to-Databricks 共用才支援模型共用。
- 當您將模型新增至共用時,必須在 2023.50 版或更新版本上使用 SQL 倉儲,或在 Databricks Runtime 14.0 或更新版本上使用叢集。
若要將模型新增至共用:
目錄總管
在 Azure Databricks 工作區中,按一下 [目錄]。
在 [目錄] 窗格頂端,按一下齒輪圖示,然後選取 [Delta Sharing]。
或者,從 [快速存取] 頁面,按一下 [Delta Sharing >] 按鈕。
在 [ 由我 共用] 索引標籤上,尋找您要新增模型的共用,然後按兩下其名稱。
按兩下 [管理資產] [編輯資產>]。
在 [ 編輯資產] 頁面上,搜尋或流覽您想要共用的模型並加以選取。
或者,您可以選取包含模型的整個架構。 請參閱 將結構描述新增至共用。
(選擇性)按兩下 [ 進階選項 ] 以指定替代模型名稱或 別名,讓模型名稱更容易閱讀。
如果您選取整個架構,則無法使用別名。
別名是收件者看到的名稱,而且必須在查詢中使用。 如果指定別名,收件者就無法使用實際的模型名稱。
按一下 [檔案] 。
SQL
在筆記本或 Databricks SQL 查詢編輯器中執行下列命令:
ALTER SHARE <share-name> ADD MODEL <catalog-name>.<schema-name>.<model-name>
[COMMENT "<comment>"]
[AS <alias>];
這些選項包括:
-
AS <alias>
:替代模型名稱或別名,可讓模型名稱更容易閱讀。 別名是收件者看到且必須在查詢中使用的模型名稱。 如果指定別名,收件者就無法使用實際的模型名稱。 請使用<schema-name>.<model-name>
格式。 -
COMMENT "<comment>"
:批註會出現在目錄總管 UI 中,當您使用 SQL 語句列出和顯示模型詳細數據時。
如需選項的詳細資訊 ALTER SHARE
,請參閱 ALTER SHARE。
CLI
使用 Databricks CLI 0.210 或更新版本執行下列命令:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<model-full-name>",
"data_object_type": "MODEL",
"string_shared_as": "<model-alias>"
}
}
]
}'
"string_shared_as": "<model-alias>"
是選擇性的,並提供替代的模型名稱或別名,讓模型名稱更容易閱讀。 別名是收件者看到且必須在查詢中使用的模型名稱。 如果指定別名,收件者就無法使用實際的模型名稱。 請使用 <schema-name>.<model-name>
格式。
若要瞭解其他參數,請在 REST API 參考中執行 databricks shares update --help
或查看 PATCH /api/2.1/unity-catalog/shares/ 。
如需從共用中移除模型的相關信息,請參閱 更新共用。
將架構新增至共用
當您將整個架構新增至共用時,收件者不僅能夠存取您建立共用時架構中的所有數據資產,而且會隨著時間新增至架構的任何資產。 這包括架構中的所有數據表、檢視和磁碟區。 以這種方式共享的數據表一律包含完整歷程記錄。
使用 SQL 新增、更新或移除架構需要執行 Databricks Runtime 13.3 LTS 或更新版本的 SQL 倉儲或計算。 使用目錄總管執行相同的作業沒有計算需求。
需要的許可權:共用物件的擁有者和架構擁有者(或具有 USE SCHEMA
架構和 SELECT
許可權的使用者)。
若要將架構新增至共用,請遵循將數據表新增至共用中的指示,並注意指定如何新增架構的內容。
如果您選取整個架構,則無法使用數據表別名、分割區和磁碟區別名。 如果您已為架構中的任何資產建立別名或分割區,當您將整個架構新增至共用時,就會移除這些別名或分割區。
如果您想要為使用架構共享的數據表或磁碟區指定進階選項,您必須使用 SQL 共用數據表或磁碟區,併為資料表或磁碟區提供具有不同架構名稱的別名。
將筆記本檔案新增至共用
使用目錄總管將筆記本檔案新增至共用。
需要許可權:共用對象的擁有者,以及您想要共用之筆記本的 CAN READ 許可權。
- 在 Azure Databricks 工作區中,按一下 [目錄]。
- 在 [快速存取] 頁面上,按一下 [差異共用 >] 按鈕。
- 在 [ 由我 共用] 索引標籤上,尋找您要新增筆記本的共享,然後按兩下其名稱。
- 按兩下 [ 管理資產 ],然後選取 [ 新增筆記本檔案]。
- 在 [ 新增筆記本檔案 ] 頁面上,按兩下檔案圖示以瀏覽您想要共用的筆記本。
- 按兩下您要共用的檔案,然後按兩下 [ 選取]。
- (選擇性地) 在 [共享為] 字段中指定檔案的用戶易記別名。 這是收件者會看到的標識碼。
- 在 [儲存體位置] 下,輸入您要儲存筆記本之雲端記憶體中的 外部位置。 您可以在定義的外部位置下指定子路徑。 如果您未指定外部位置,筆記本會儲存在中繼存放區層級儲存位置(或「中繼存放區根位置」中。 如果未為中繼存放區定義任何根位置,您必須在這裡輸入外部位置。 請參閱 將受控記憶體新增至現有的中繼存放區。
- 按一下 [檔案] 。
共用筆記本檔案現在會出現在 [資產] 索引標籤上的 [筆記本檔案] 清單中。
從共用中移除筆記本檔案
若要從共用中移除筆記本檔案:
在 Azure Databricks 工作區中,按一下 [目錄]。
在 [目錄] 窗格頂端,按一下齒輪圖示,然後選取 [Delta Sharing]。
或者,從 [快速存取] 頁面,按一下 [Delta Sharing >] 按鈕。
在 [ 由我 共用] 索引標籤上,尋找包含筆記本的共享,然後按兩下共用名稱。
在 [ 資產] 索引標籤上,尋找您想要從共用中移除的筆記本檔案。
點擊數據列右側的 Kebab 功能表,然後選取 [刪除筆記本檔案]。
在確認對話框中,按兩下 [ 刪除]。
更新共用中的筆記本檔案
若要更新您已共享的筆記本,您必須重新新增筆記本,並在 [共用為] 字段中提供新的別名。 Databricks 建議您使用指出筆記本修訂狀態的名稱,例如 <old-name>-update-1
。 您可能需要通知收件者變更。 收件者必須選取並複製新的筆記本,才能利用您的更新。
將共用的存取權授與收件者
若要授與收件者的共用存取權,您可以使用目錄總管、Databricks Unity 目錄 CLI,或 GRANT ON SHARE
Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的 SQL 命令。
所需權限:下列其中一個:
- 中繼存放區管理員。
- 共用和收件者物件 ((
USE SHARE
+SET SHARE PERMISSION
) 或共用擁有者) AND (USE RECIPIENT
或收件者擁有者) 的委派權限或所有權。
如需指示,請參閱管理對 Delta Sharing 數據共用的存取權(適用於提供者)。 本文也會說明如何撤銷收件者對共用的存取權。
檢視共用和共用詳細數據
若要檢視共用的清單或共用的詳細數據,您可以使用目錄總管、Databricks Unity 目錄 CLI 或 Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的 SQL 命令。
需要許可權:傳回的共享清單取決於您的角色和許可權。 具有許可權的 USE SHARE
中繼存放區系統管理員和使用者會看到所有共用。 否則,您只能檢視您是共享物件擁有者的共用。
詳細資料包括:
- 共享的擁有者、建立者、建立時間戳、更新程式、更新時間戳、批注。
- 共用中的數據資產。
- 具有共用存取權的收件者。
目錄總管
在 Azure Databricks 工作區中,按一下 [目錄]。
在 [目錄] 窗格頂端,按一下齒輪圖示,然後選取 [Delta Sharing]。
或者,從 [快速存取] 頁面,按一下 [Delta Sharing >] 按鈕。
開啟 [共用] 索引標籤以檢視共享清單。
在 [ 詳細 數據] 索引標籤上檢視共用詳細數據。
SQL
若要檢視共用清單,請在筆記本或 Databricks SQL 查詢編輯器中執行下列命令。 或者,將 取代 <pattern>
為 LIKE
述詞。
SHOW SHARES [LIKE <pattern>];
若要檢視特定共用的詳細數據,請執行下列命令。
DESCRIBE SHARE <share-name>;
若要檢視共用中所有數據表、檢視和磁碟區的詳細數據,請執行下列命令。
SHOW ALL IN SHARE <share-name>;
CLI
若要檢視共用清單,請使用 Databricks CLI 執行下列命令。
databricks shares list
若要檢視特定共用的詳細數據,請執行下列命令。
databricks shares get <share-name>
檢視擁有共用許可權的收件者
若要檢視收件者已獲授與存取權的共用清單,您可以使用目錄總管、Databricks Unity 目錄 CLI,或 SHOW GRANTS TO RECIPIENT
Azure Databricks Notebook 或 Databricks SQL 查詢編輯器中的 SQL 命令。
需要的許可權:中繼存放區管理員、 USE SHARE
許可權或共用對象擁有者。
目錄總管
在 Azure Databricks 工作區中,按一下 [目錄]。
在 [目錄] 窗格頂端,按一下齒輪圖示,然後選取 [Delta Sharing]。
或者,從 [快速存取] 頁面,按一下 [Delta Sharing >] 按鈕。
在 [ 由我 共用] 索引卷標上,尋找並選取收件者。
移至 [ 收件者] 索引 標籤,以檢視可存取共用的收件者清單。
SQL
在筆記本或 Databricks SQL 查詢編輯器中執行下列命令。
SHOW GRANTS ON SHARE <share-name>;
CLI
使用 Databricks CLI 執行下列命令。
databricks shares share-permissions <share-name>
更新共用
除了將數據表、檢視、磁碟區和筆記本新增至共用之外,您還可以:
- 重新命名共用。
- 從共用中移除數據表、檢視、磁碟區和架構。
- 在共用上新增或更新批注。
- 啟用或停用數據表記錄數據的存取權,讓收件者能夠執行時間移動查詢或串流讀取數據表。
- 新增、更新或移除資料分割定義。
- 變更共享擁有者。
若要進行這些共用更新,您可以使用目錄總管、Databricks Unity 目錄 CLI 或 Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的 SQL 命令。 您無法使用目錄總管來重新命名共用。
需要許可權:若要更新共享擁有者,您必須是下列其中一項:中繼存放區管理員、共用對象的擁有者,或具有 USE SHARE
和 SET SHARE PERMISSION
許可權的使用者。 若要更新共享名稱,您必須是中繼存放區管理員(或具有 CREATE_SHARE
許可權的使用者) 和 共用擁有者。 若要更新任何其他共享屬性,您必須是擁有者。
目錄總管
在 Azure Databricks 工作區中,按一下 [目錄]。
在 [目錄] 窗格頂端,按一下齒輪圖示,然後選取 [Delta Sharing]。
或者,從 [快速存取] 頁面,按一下 [Delta Sharing >] 按鈕。
在 [ 由我 共用] 索引標籤上,尋找您要更新的共享,然後按兩下其名稱。
在 [共用詳細數據] 頁面上,執行下列動作:
- 按兩下 [ 擁有者] 或 [批註] 字段旁的編輯圖示,以更新這些值。
- 按兩下資產數據列中的kebab功能表 按鈕來移除它。
- 按兩下 [管理資產] [編輯資產>] 以更新所有其他屬性:
- 若要移除資產,請清除資產旁的複選框。
- 若要新增、更新或移除資料分割定義,請按兩下 [ 進階選項]。
SQL
在筆記本或 Databricks SQL 編輯器中執行下列命令。
重新命名共享:
ALTER SHARE <share-name> RENAME TO <new-share-name>;
從共享中移除資料表:
ALTER SHARE share_name REMOVE TABLE <table-name>;
從共享中移除磁碟區:
ALTER SHARE share_name REMOVE VOLUME <volume-name>;
在共用上新增或更新註解:
COMMENT ON SHARE <share-name> IS '<comment>';
在共用中新增或修改資料表的資料分割:
ALTER SHARE <share-name> ADD TABLE <table-name> PARTITION(<clause>);
變更共享擁有者:
ALTER SHARE <share-name> OWNER TO '<principal>'
-- Principal must be an account-level user email address or group name.
開啟資料表的歷程記錄共享:
ALTER SHARE <share-name> ADD TABLE <table-name> WITH HISTORY;
如需參數的詳細資訊 ALTER SHARE
,請參閱 ALTER SHARE。
CLI
使用 Databricks CLI 執行下列命令。
重新命名共享:
databricks shares update <share-name> --name <new-share-name>
從共享中移除資料表:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "REMOVE",
"data_object": {
"name": "<table-full-name>",
"data_object_type": "TABLE",
"shared_as": "<table-alias>"
}
}
]
}'
從共用中移除磁碟區(使用 Databricks CLI 0.210 或更新版本):
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "REMOVE",
"data_object": {
"name": "<volume-full-name>",
"data_object_type": "VOLUME",
"string_shared_as": "<volume-alias>"
}
}
]
}'
注意
name
如果磁碟區沒有別名,請使用 屬性。 如果有別名,請使用 string_shared_as
。
在共用上新增或更新註解:
databricks shares update <share-name> --comment '<comment>'
變更共享擁有者:
databricks shares update <share-name> --owner '<principal>'
主體必須是帳戶層級的用戶電子郵件位址或組名。
刪除共用
若要刪除共用,您可以使用目錄總管、Databricks Unity 目錄 CLI,或 DELETE SHARE
Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的 SQL 命令。 您必須是共享的擁有者。
當您刪除共用時,收件者無法再存取共享數據。
需要的許可權:共享對象擁有者。
目錄總管
在 Azure Databricks 工作區中,按一下 [目錄]。
在 [目錄] 窗格頂端,按一下齒輪圖示,然後選取 [Delta Sharing]。
或者,從 [快速存取] 頁面,按一下 [Delta Sharing >] 按鈕。
在 [ 由我 共用] 索引標籤上,尋找您要刪除的共享,然後按兩下其名稱。
按兩下 kebab 選單,然後選取 [刪除]。
在確認對話框中,按兩下 [ 刪除]。
SQL
在筆記本或 Databricks SQL 查詢編輯器中執行下列命令。
DROP SHARE [IF EXISTS] <share-name>;
CLI
使用 Databricks CLI 執行下列命令。
databricks shares delete <share-name>