共用方式為


建立和管理 Delta Sharing 平台的資料接收者(Databricks-to-Databricks 共用)

本文說明如何在 Delta 共用中建立和管理收件者,當這些收件者位於已啟用 Unity 目錄的 Databricks 工作區時。

收件者是具名物件,代表真實世界中取用共用數據的使用者或使用者群組的身分識別。 您建立收件者的方式會根據收件者是否能夠存取針對 Unity 目錄啟用的 Databricks 工作區而有所不同:

如需了解這兩種共用模式以及選擇時機的更多資訊,請參閱 公開共用與 Databricks 對 Databricks 共用比較

需求

若要建立收件者:

  • 您必須是中繼存放區管理員,或擁有 CREATE_RECIPIENT 您要共享數據的 Unity 目錄中繼存放區的許可權。
  • 您必須使用附加有 Unity Catalog 中繼存放區的 Azure Databricks 工作區來創建收件者。
  • 如果您使用 Databricks 筆記本來建立收件者,您的計算必須使用 Databricks Runtime 11.3 LTS 或更新版本,以及標準或專用存取模式(先前共用和單一使用者存取模式)。

如需其他收件者管理作業(例如檢視、刪除、更新和授與收件者共用存取權),請參閱本文作業特定章節中列出的許可權需求。

為擁有 Databricks 存取權的使用者建立收件者物件(Databricks 與 Databricks 之間的共用)

如果您的數據收件者可以存取已為 Unity Catalog 啟用的 Databricks 工作區,您可以建立具有 DATABRICKS 驗證類型的收件者物件。

驗證類型的 DATABRICKS 收件者物件代表特定 Unity 目錄中繼存放區上的數據收件者,該物件定義是由 中繼存放區的雲端、區域和 UUID 所組成的共用識別符 字串所識別。 只有該中繼存放區可以存取與這個收件者共享的數據。

步驟 1:要求收件者的共享標識符

請求收件者使用者將工作區中附加之 Unity Catalog 中繼存放區的共用標識碼寄給您,以便收件者使用者或使用者群組使用共用數據進行工作。

共用識別碼是一個字串,其中包含中繼存放區的雲端、區域和 UUID(中繼存放區的唯一標識符),格式為 <cloud>:<region>:<uuid>

例如,在下列螢幕快照中,完整的共用識別符字串為 aws:us-west-2:19a84bee-54bc-43a2-87de-023d0ec16016

CURRENT_METASTORE範例

收件者可以使用目錄總管、Databricks Unity Catalog CLI,或者在 Databricks Notebook 或 Databricks SQL 查詢中使用預設的 SQL 函式 CURRENT_METASTORE,來在他們想要使用的工作區中運行 Unity-Catalog 支援的計算,從而找到標識符。

目錄瀏覽器

若要使用目錄總管取得共享識別碼:

  1. 在 Azure Databricks 工作區中,按一下 目錄圖示 [目錄]。

  2. 在目錄窗格頂端,按一下齒輪圖示,然後選取 [Delta Sharing]。

    或者,從快速存取頁面,按一下Delta Sharing>按鈕。

  3. 在 [與我分享] 分頁上,按一下右上角的 Databricks 共用組織名稱,然後選擇 [複製共用識別碼]。

SQL

在筆記本或 Databricks SQL 查詢編輯器中執行下列命令:

SELECT CURRENT_METASTORE();

CLI (命令列介面)

使用 Databricks CLI 執行下列命令。 共用標識碼會以 global_metastore_id傳回。

databricks metastores summary

您可以通過傳送您聯絡人的此步驟中的信息來協助收件者,或將他們引導到Databricks-to-Databricks 模型中的存取方式

步驟 2:建立收件者

若要建立 Databricks 到 Databricks 共用的收件者,您可以使用目錄總管、Databricks Unity 目錄的 CLI,或在 Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中使用 CREATE RECIPIENT SQL 命令。

所需許可權:中繼存放區管理員或在您要共用資料的 Unity 目錄中繼存放區中擁有 CREATE_RECIPIENT 許可權的使用者。

目錄瀏覽器

  1. 在 Azure Databricks 工作區中,按一下 目錄圖示 [目錄]。

  2. [目錄] 窗格頂端,按一下 齒輪圖示 gear icon,然後選取 [Delta Sharing]

    或者,從 [快速存取] 頁面,按一下 [Delta Sharing >] 按鈕。

  3. 由我共用 標籤上,按一下 新增收件者

  4. 輸入 收件者名稱

  5. 針對 [收件者類型],選取 [Databricks]。

  6. 輸入收件者的 共用識別碼

    使用格式 <cloud>:<region>:<uuid>的整個共用識別符字串。 例如: aws:us-west-2:19a84bee-54bc-43a2-87de-023d0ec16016

  7. (選擇性)輸入批註。

  8. 按一下 [建立]。

  9. (選擇性)建立自定義 收件者屬性

    在收件者 概觀 索引標籤上,點擊 編輯圖示 位於 [收件者屬性] 旁的 編輯圖示。 然後新增屬性名稱 () 和 。 如需詳細資訊,請參閱 管理收件者屬性

SQL

在筆記本或 Databricks SQL 查詢編輯器中執行下列命令:

CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
USING ID '<sharing-identifier>'
[COMMENT "<comment>"];

使用格式 <cloud>:<region>:<uuid>的整個共用識別符字串。 例如: aws:eu-west-1:g0c979c8-3e68-4cdf-94af-d05c120ed1ef

您也可以為收件者新增自訂屬性。 如需詳細資訊,請參閱 管理收件者屬性

CLI

使用 Databricks CLI 執行下列命令。 取代預留位置值:

  • <recipient-name>:收件者的名稱。
  • <sharing-identifier>:整個共用識別符字串的格式為 <cloud>:<region>:<uuid>。 例如: aws:eu-west-1:g0c979c8-3e68-4cdf-94af-d05c120ed1ef
  • <authentication-type>:當針對<sharing-identifier>提供格式<cloud>:<region>:<uuid>的共享識別符字串時,將DATABRICKS設定為<cloud>:<region>:<uuid>
databricks recipients create <recipient-name> <authentication-type> --sharing-code <sharing-identifier>

您也可以為收件者新增自訂屬性。 如需詳細資訊,請參閱 管理收件者屬性

收件者是由 DATABRICKS 使用 authentication_type 建立的。

將共用的存取權授與收件者

建立收件者並 建立共享之後,您可以將這些共用的存取權授與收件者。

若要授與收件者的共用存取權,您可以使用目錄總管、Databricks Unity 目錄 CLI,或 GRANT ON SHARE Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的 SQL 命令。

所需權限:下列其中一個:

  • 中繼存放區管理員。
  • 共用以及收件者物件的委派權限或所有權 ((USE SHARE + SET SHARE PERMISSION) 或共用擁有者) 和 (USE RECIPIENT 或收件者擁有者)。

如需指示,請參閱管理對 Delta Sharing 數據共用的存取權(適用於提供者)。

檢視收件者

若要檢視收件者清單,您可以使用目錄總管、Databricks Unity 目錄 CLI,或 SHOW RECIPIENTS Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的 SQL 命令。

需要許可權:您必須是中繼存放區管理員,或具有 USE RECIPIENT 檢視中繼存放區中所有收件者的許可權。 其他使用者只能存取他們管理的收件者。

目錄瀏覽器

  1. 在 Azure Databricks 工作區中,按一下 目錄圖示 [目錄]。

  2. 在 [目錄] 窗格頂端,按一下 齒輪圖示,然後選取 [Delta Sharing]。

    或者,從 [快速存取] 頁面中,按一下 [Delta Sharing >] 按鈕。

  3. 由我共用 標籤上,按一下 收件者

SQL

在筆記本或 Databricks SQL 查詢編輯器中執行下列命令。 可以選擇將 <pattern> 替換為 LIKE 述詞

SHOW RECIPIENTS [LIKE <pattern>];

CLI

使用 Databricks CLI 執行下列命令。

databricks recipients list

檢視收件者詳細數據

若要檢視收件者的詳細數據,您可以使用目錄總管、Databricks Unity 目錄 CLI,或 DESCRIBE RECIPIENT Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的 SQL 命令。

需要的許可權:Metastore 管理員、具有 USE RECIPIENT 許可權的使用者或收件者對象的擁有者。

詳細資料包括:

  • 收件者的建立者、建立時間戳、批注和驗證類型(TOKENDATABRICKS)。
  • 如果收件者使用開啟共用:令牌有效期限、啟用連結、啟用狀態(是否已下載憑證),以及已指派的IP位址存取清單。
  • 如果收件者使用 Databricks 對 Databricks 共用:收件者 Unity 目錄中繼存放區的雲端、區域和中繼存放區標識碼,以及啟用狀態。
  • 收件者屬性,包括自定義屬性。 請參閱 管理收件者屬性

目錄瀏覽器

  1. 在 Azure Databricks 工作區中,按一下 目錄圖示 [目錄]。

  2. 在 [目錄] 窗格頂端,按一下 [齒輪圖示],然後選取 [Delta Sharing]。

    或者,從 [快速存取] 頁面,按一下 [Delta Sharing >] 按鈕。

  3. 在 [ 由我 共用] 索引標籤上,按兩下 [ 收件者],然後選取收件者。

SQL

在筆記本或 Databricks SQL 查詢編輯器中執行下列命令。

DESCRIBE RECIPIENT <recipient-name>;

指令列界面(CLI)

使用 Databricks CLI 執行下列命令。

databricks recipients get <recipient-name>

檢視收件者的共享許可權

若要檢視收件者已獲授與存取權的共用清單,您可以使用目錄總管、Databricks CLI 或 SHOW GRANTS TO RECIPIENT Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的 SQL 命令。

所需的許可:中繼存放區管理員、具有 USE RECIPIENT 許可權的使用者或接收對象的擁有者。

目錄瀏覽器

  1. 在 Azure Databricks 工作區中,按一下 目錄圖示 [目錄]。

  2. 目錄窗格頂端,按一下齒輪圖示,然後選取Delta Sharing

    或者,從 [快速存取] 頁面,按一下 Delta Sharing > 按鈕。

  3. 在 [ 由我 共用] 索引標籤上,按兩下 [ 收件者],然後選取收件者。

  4. 移至 [ 共用] 索引標籤,以檢視與收件者共用的共享清單。

SQL

在筆記本或 Databricks SQL 查詢編輯器中執行下列命令。

SHOW GRANTS TO RECIPIENT <recipient-name>;

命令列介面 (CLI)

使用 Databricks CLI 執行下列命令。

databricks recipients share-permissions <recipient-name>

更新收件者

若要更新收件者,您可以使用目錄總管、Databricks Unity 目錄 CLI 或 ALTER RECIPIENT Azure Databricks Notebook 或 Databricks SQL 查詢編輯器中的 SQL 命令。

您可以更新的屬性包括收件者名稱、擁有者、批注和自定義屬性。

需要許可權:您必須是接收對象的中繼資料存儲管理員或所有者,才能更新所有者。 您必須是中繼存放區管理員(或擁有 CREATE_RECIPIENT 權限的使用者),並且是擁有者,才能更新名稱。 您必須是擁有者,才能更新批注或自定義屬性。

目錄瀏覽器

  1. 在 Azure Databricks 工作區中,按一下 目錄圖示 [目錄]。

  2. 在 [目錄] 窗格頂端,按一下 [齒輪圖示],然後選取 [Delta Sharing]。

    或者,從 快速存取 頁面,按一下 Delta Sharing 按鈕。

  3. 在 [ 由我 共用] 索引標籤上,按兩下 [ 收件者],然後選取收件者。

  4. 在收件者詳細資料頁面上:

    • 更新擁有者。

    • 編輯或新增批注。

    • 重新命名收件者。

      Kebab 功能表 單擊kebab功能表,然後選取 [重新命名]。

    • 編輯、移除或新增自定義 收件者屬性

      點選 編輯圖示 編輯圖示,位於 收件者屬性旁。 然後新增屬性名稱<co>Key。 如需詳細資訊,請參閱 管理收件者屬性

    • 只有權杖驗證的收件者:

    • 僅限 OIDC 同盟收件者:

      • OIDC 同盟原則下,按一下 新增原則。 請參閱LINK。
      • 檢視和複製 收件者端點Recipient MTLS 端點

SQL

在筆記本或 Databricks SQL 查詢編輯器中執行下列一或多個命令。

ALTER RECIPIENT <recipient-name> RENAME TO <new-recipient-name>;

ALTER RECIPIENT <recipient-name> OWNER TO <new-owner>;

COMMENT ON RECIPIENT <recipient-name> IS "<new-comment>";

ALTER RECIPIENT <recipient-name> SET PROPERTIES ( <property-key>  =  property_value [, ...] )

ALTER RECIPIENT <recipient-name> UNSET PROPERTIES ( <property-key> [, ...] )

如需屬性的詳細資訊,請參閱 管理收件者屬性

命令行界面 (CLI)

建立 JSON 檔案,其中包含收件者名稱、批注、擁有者、IP 存取清單或自定義屬性的更新。

{
  "name": "new-recipient-name",
  "owner": "someone-else@example.com",
  "comment": "something new",
  "ip_access_list": {
    "allowed_ip_addresses": ["8.8.8.8", "8.8.8.4/10"]
  },
  "property": {
    "country": "us",
    "id": "001"
  }
}

然後使用 Databricks CLI 執行下列命令<recipient-name>取代為目前的收件者名稱,並以 JSON 檔案的檔案名稱取代 update-recipient-settings.json

databricks recipients update --json-file update-recipient-settings.json

如需屬性的詳細資訊,請參閱 管理收件者屬性

(選擇性)使用存取清單限制收件者存取

當您設定收件者物件時,您可以限制收件者對一組受限IP位址的存取。 參考使用 IP 存取清單限制 Delta 分享接收者的存取權(公開分享)

管理收件者屬性

收件者物件包含預先定義的屬性,可用來精簡數據共享存取。 例如,您可以使用它們來執行下列動作:

  • 與不同的收件者共用不同的表分區,讓您能夠在多個收件者間共享相同資源,同時維持數據之間的界限。
  • 根據收件者屬性,共用動態檢視,以限制收件者存取數據列或數據行層級的數據表數據。

您也可以建立自訂屬性。

預先定義的屬性開頭為 databricks. ,並包含下列內容:

  • databricks.accountId:數據收件者所屬的 Azure Databricks 帳戶(僅限 Databricks-to-Databricks 共用)。
  • databricks.metastoreId:資料接收者隸屬於的 Unity Catalog 中繼存放區(僅限 Databricks-to-Databricks 共用)。
  • databricks.name:數據收件者的名稱。

自訂屬性可能具有的價值可以包括,例如 country。 例如,如果您將自定義屬性 'country' = 'us' 附加至收件者,您可以依國家/地區分割數據表數據,並且只與已指派該屬性的收件者共用具有美國數據的數據列。 您也可以共用動態檢視,以根據收件者屬性限制數據列或數據行存取。 如需更詳細的範例,請參閱 使用收件者屬性執行數據分割篩選將動態檢視新增至共用以篩選數據列和數據行

需求

Databricks Runtime 12.2 和更新版本支援收件者屬性。

建立或更新收件者時新增屬性

您可以在建立收件者或更新現有收件者時新增屬性。 您可以在 Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中使用目錄總管、Databricks Unity 目錄 CLI 或 SQL 命令。

需要的許可權:具有 Unity Catalog 中繼存放區的使用權限的中繼存放區管理員或使用者。

目錄瀏覽器

當您 使用目錄總管建立更新 收件者時,請執行下列動作來新增或更新自定義屬性:

  1. 移至 [收件者詳細數據] 頁面。

    如果您要建立新的收件者,請在按兩下 [建立] 之後,登入此頁面。 如果您要更新現有的收件者,請按下齒輪圖示齒輪圖示 > Delta Sharing > 我分享的 > 收件者,然後選取收件者以移至此頁面。

  2. 按兩下 [ 編輯屬性 > + 新增屬性]。

  3. 輸入屬性名稱()和

    例如,如果您想要依國家/地區篩選共享數據,並只與這個收件者共用美國數據,您可以建立名為 「country」 且值為 「US」 的索引鍵。

  4. 按一下 [儲存]。

SQL

若要在建立收件者時新增自定義屬性,請在筆記本或 Databricks SQL 查詢編輯器中執行下列命令:

CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
[USING ID '<sharing-identifier>'] /* Skip this if you are using open sharing */
[COMMENT "<comment>"]
PROPERTIES ( '<property-key>' = '<property-value>' [, ...] );

<property-key> 可以是字串常值或標識碼。 <property-value> 必須是字串常值。

例如:

CREATE RECIPIENT acme PROPERTIES ('country' = 'us', 'partner_id' = '001');

若要新增、編輯或刪除現有收件者的自訂屬性,請執行下列其中一項:

ALTER RECIPIENT <recipient-name> SET PROPERTIES ( '<property-key>' = '<property-value>' [, ...] );

ALTER RECIPIENT <recipient-name> UNSET PROPERTIES ( '<property-key>' );

CLI

若要在建立收件者時新增自定義屬性,請使用 Databricks CLI 執行下列命令。 替換預留值:

  • <recipient-name>:收件者的名稱。
  • <property-key> 可以是字串常值或標識碼。
  • <property-value> 必須是字串常值。
databricks recipients create \
--json='{
  "name": "<recipient-name>",
  "properties_kvpairs": {
    "properties": {
      "<property-key>": "<property-value>",
    }
  }
}'

例如:

databricks recipients create \
--json='{
  "name": "<recipient-name>",
  "properties_kvpairs": {
    "properties": {
      "country": "us",
      "partner_id":"001"
    }
  }
}'

若要新增或編輯現有收件者的自訂屬性,請使用 update ,而不是 create

databricks recipients update \
--json='{
  "name": "<recipient-name>",
  "properties_kvpairs": {
    "properties": {
      "country": "us",
      "partner_id":"001"
    }
  }
}'

檢視收件者屬性

若要檢視收件者屬性,請遵循檢視收件者詳細數據中的指示。

刪除收件者

若要刪除收件者,您可以使用目錄總管、Databricks Unity 目錄 CLI 或 DROP RECIPIENT Azure Databricks Notebook 或 Databricks SQL 查詢編輯器中的 SQL 命令。 您必須是收件者對象擁有者,才能刪除收件者。

當您刪除收件者時,收件者所代表的使用者就無法再存取共享數據。 收件者在公開共用情境中使用的令牌已失效。

所需權限:收件者物件擁有者。

目錄瀏覽器

  1. 在 Azure Databricks 工作區中,按一下 目錄圖示 [目錄]。

  2. 目錄 窗格頂端,按一下 齒輪圖示,然後選取 Delta Sharing

    或者,從快速存取頁面中,按一下Delta Sharing>按鈕。

  3. 在 [ 由我 共用] 索引標籤上,按兩下 [ 收件者],然後選取收件者。

  4. 在 [ 收件者] 索引 標籤上,尋找並選取收件者。

  5. Kebab 功能表 按兩下 kebab 選單,然後選取 [刪除]。

  6. 在確認對話框中,按兩下 [ 刪除]。

SQL

在筆記本或 Databricks SQL 查詢編輯器中執行下列命令。

DROP RECIPIENT [IF EXISTS] <recipient-name>;

命令列介面 (CLI)

使用 Databricks CLI 執行下列命令。

databricks recipients delete <recipient-name>