使用差異共用安全地共享數據和 AI 資產

本文介紹 Azure Databricks 中的 Delta Sharing,這是安全的數據共享平臺,可讓您在 Azure Databricks 中與組織外部的使用者共享數據和 AI 資產,無論這些使用者是否使用 Databricks。

重要

此網站上的 Delta Sharing 文章著重於共用 Azure Databricks 數據、筆記本和 AI 模型。 差異共用也可作為開放原始碼專案使用,可用來從其他平臺共用 Delta 數據表。 Delta Sharing 也為 Databricks Marketplace 提供骨幹,這是交換數據產品的開放論壇。

注意

如果您是已獲授與透過 Delta Sharing 存取共用資料的數據收件者,而且您只想瞭解如何存取該數據,請參閱使用差異共用存取與您共用的數據(適用於收件者)。

什麼是差異共用?

Delta Sharing 是由 Databricks 開發的開放式通訊協定 ,可供與其他組織安全地共享數據,而不論其使用何種運算平臺。

使用 Delta Sharing 共享數據的方式有三種:

  1. Databricks 對 Databricks 共用通訊協定,可讓您從已啟用 Unity 目錄的工作區共用數據與 AI 資產,讓使用者也可以存取已啟用 Unity 目錄的 Databricks 工作區。

    此方法使用 Azure Databricks 內建的 Delta Sharing 伺服器。 它支援其他通訊協定中未支援的某些差異共用功能,包括筆記本共用、Unity 目錄磁碟區共用、Unity 目錄 AI 模型共用、Unity 目錄數據控管、稽核,以及提供者和收件者的使用量追蹤。 與 Unity 目錄的整合可簡化提供者和收件者的設定和控管,並改善效能。

    請參閱使用 Delta Sharing Databricks-to-Databricks 通訊協定共用數據(適用於提供者)。

  2. Databricks 開啟共用通訊協定,可讓您與任何運算平臺上的用戶共用在已啟用 Unity 目錄的 Databricks 工作區中管理的表格式數據。

    此方法使用 Azure Databricks 內建的 Delta Sharing 伺服器,當您使用 Unity 目錄管理數據,並想要與未使用 Databricks 或無法存取已啟用 Unity 目錄的 Databricks 工作區的使用者共用它時很有用。 與提供者端的 Unity 目錄整合可簡化提供者的設定和控管。

    請參閱使用差異共用開啟共用通訊協議來共用數據(適用於提供者)。

  3. 開放原始碼 Delta Sharing 伺服器的客戶自控實作,可讓您從任何平臺共用至任何平臺,不論 Databricks 是否共用。

    Azure Databricks 檔並未涵蓋設定您自己的差異共用伺服器的指示。 請參閱 github.com/delta-io/delta-sharing

共用、提供者和收件者

Azure Databricks 中差異共用的主要概念是 共用提供者收件者

什麼是共用?

在差異共用中, 共用 是提供者想要與一或多個收件者共享的數據表和數據表分割區只讀集合。 如果您的收件者使用已啟用 Unity 目錄的 Databricks 工作區,您也可以在共用中包含筆記本檔案、檢視(包括限制數據列和數據行層級存取的動態檢視)、Unity 目錄磁碟區和 Unity 目錄模型。

您可以隨時從共用新增或移除數據表、檢視、磁碟區、模型和筆記本檔案,您可以隨時指派或撤銷共享的數據收件者存取權。

在已啟用 Unity 目錄的 Azure Databricks 工作區中,共用是在 Unity 目錄中註冊的安全性實體物件。 如果您從 Unity 目錄中繼存放區移除共用,該共用的所有收件者都將無法存取該共用。

請參閱 建立和管理差異共用的共用。

什麼是提供者?

提供者是與收件者共享數據的實體。 如果您是提供者,而且想要利用內建的 Databricks Delta 共用伺服器,並使用 Unity 目錄管理共用和收件者,您至少需要一個已啟用 Unity 目錄的 Azure Databricks 工作區。 您不需要將所有現有的工作區移轉至 Unity 目錄。 您可以直接為您的 Delta 共用需求建立已啟用 Unity 目錄的新工作區。

如果收件者位於已啟用 Unity 目錄的 Databricks 工作區上,提供者也是 Unity Catalog 安全性實體物件,代表提供者組織,並將該組織與一組共用建立關聯。

收件者是什麼?

收件者是接收提供者共用的實體。 在 Unity 目錄中,共用是一個安全性實體物件,代表組織,並將它與認證或安全共用標識碼產生關聯,以允許該組織存取一或多個共用。

身為資料提供者 (分享者),您可以為任何指定的 Unity 目錄中繼存放區設定多個收件者,但如果您想要與特定使用者或使用者群組共用多個中繼存放區的資料,則必須為每個中繼存放區分別設定收件者。 收件者可以存取多個共用。

如果提供者從其 Unity 目錄中繼存放區刪除收件者,該收件者會失去先前可存取的所有共用存取權。

請參閱 建立和管理差異共享的數據收件者。

開啟共用與 Databricks 對 Databricks 共用

本節說明從已啟用 Unity 目錄的 Databricks 工作區共用的兩種通訊協定。

注意

本節假設提供者位於已啟用 Unity 目錄的 Azure Databricks 工作區上。 若要瞭解如何設定開放原始碼 Delta Sharing 伺服器以從非 Databricks 平臺或非 Unity 目錄工作區共用,請參閱 github.com/delta-io/delta-sharing

提供者在 Azure Databricks 中使用 Delta Sharing 的方式取決於他們與誰共享數據:

  • 開啟共用可讓您與任何使用者共用資料,無論他們是否有權存取 Azure Databricks。
  • Databricks 對 Databricks 共用 可讓您與連結至 Unity 目錄中繼存放區且與您的工作區連結的 Azure Databricks 使用者共享數據。 Databricks 對 Databricks 也支援筆記本、磁碟區和模型共用,這在開放式共用中無法使用。

什麼是開啟的 Delta 共用?

如果您想要與 Azure Databricks 工作區外部的使用者共用數據,無論他們是否使用 Databricks,都可以使用開啟的 Delta Sharing 安全地共用您的數據。 身為數據提供者,您會產生令牌,並安全地與收件者共用。 他們會使用令牌來驗證,並取得您提供給其存取權之共用中所含數據表的讀取許可權。

收件者可以使用許多運算工具和平臺來存取共享數據,包括:

  • Azure Databricks
  • Apache Spark
  • Pandas
  • Power BI

如需 Delta Sharing 連接器的完整清單,以及如何使用連接器的詳細資訊,請參閱 Delta Sharing 檔。

請參閱使用差異共用開啟共用通訊協議來共享數據(適用於提供者)。

什麼是 Databricks 到 Databricks Delta 共用?

如果您想要與已啟用 Unity 目錄之 Databricks 工作區的使用者共享數據,您可以使用 Databricks 對 Databricks Delta Sharing。 Databricks 對 Databricks 共用可讓您與其他 Databricks 帳戶中的使用者共用數據,無論是在 AWS、Azure 或 GCP 上。 這也是在您自己的 Databricks 帳戶中安全地跨不同 Unity 目錄中繼存放區共用數據的絕佳方式。 請注意,不需要使用 Delta Sharing 在連結至相同 Unity 目錄中繼存放區的工作區之間共用數據,因為在該案例中,您可以使用 Unity 目錄本身來管理跨工作區數據的存取權。

Databricks 對 Databricks 共用的優點之一是共用收件者不需要令牌才能存取共用,提供者不需要管理收件者令牌。 共享連線的安全性,包括所有身分識別驗證、驗證和稽核,完全透過 Delta Sharing 和 Databricks 平台進行管理。 另一個優點是共用 Databricks 筆記本檔案、檢視、Unity 目錄磁碟區和 Unity 目錄模型的能力。

請參閱使用 Delta Sharing Databricks-to-Databricks 通訊協定共用數據(適用於提供者)。

提供者管理員如何設定 Delta Sharing?

本節概述提供者如何啟用差異共用,並從已啟用 Unity 目錄的 Azure Databricks 工作區起始共用。 如需開放原始碼差異共用,請參閱 github.com/delta-io/delta-sharing

一律會啟用相同帳戶中 Unity 目錄中繼存放區之間的 Databricks 對 Databricks 共用。 如果您是想要讓 Delta Sharing 與其他帳戶或非 Databricks 用戶端中的 Databricks 工作區共用數據的提供者,Azure Databricks 帳戶管理員或中繼存放區管理員會執行下列設定步驟(高階):

  1. 為管理您要共用之數據的 Unity 目錄中繼存放區啟用 Delta Sharing。

    注意

    如果您想要使用 Delta Sharing,只與帳戶中其他 Unity 目錄中繼存放區上的使用者共享數據,則不需要在中繼存放區上啟用 Delta Sharing。 預設會啟用單一 Azure Databricks 帳戶內的中繼存放區對中繼存放區共用。

    請參閱 在中繼存放區上啟用差異共用。

  2. 建立共用,其中包含在 Unity 目錄中繼存放區中註冊的數據資產。

    如果您要與非 Databricks 收件者共用(稱為開啟共用),您可以包含 Delta 或 Parquet 格式的數據表。 如果您打算使用 Databricks 對 Databricks 共用,您也可以將檢視、Unity 目錄磁碟區、Unity 目錄模型和筆記本檔案新增至共用。

    請參閱 建立和管理差異共用的共用。

  3. 建立收件者。

    請參閱 建立和管理差異共享的數據收件者。

    如果您的收件者不是 Databricks 使用者,或無法存取已啟用 Unity 目錄的 Databricks 工作區,您必須使用 開啟共用。 為該收件者產生一組令牌型認證。

    如果您的收件者可以存取已啟用 Unity 目錄的 Databricks 工作區,您可以使用 Databricks 對 Databricks 共用,而且不需要令牌型認證。 您會向收件者要求 共用標識符 ,並使用它來建立安全連線。

    提示

    使用自己作為測試收件者來試用設定程式。

  4. 將一或多個共用的存取權授與收件者。

    請參閱授與和管理 Delta Sharing 數據共用的存取權(適用於提供者)。

    注意

    此步驟也可以由具有 USE SHAREUSE RECIPIENTSET SHARE PERMISSION 許可權的非系統管理員用戶執行。 請參閱 Unity 目錄許可權和安全性實體物件

  5. 將他們連線到共用所需的信息傳送給收件者(僅限開啟共用)。

    請參閱 傳送收件者他們的連線資訊

    若要開啟共用,請使用安全通道來傳送收件者啟用連結,以允許他們下載其令牌型認證。

    針對 Databricks 對 Databricks 共用,一旦您授與他們共用的存取權,共用中包含的數據就會在收件者的 Databricks 工作區中取得。

收件者現在可以存取共享數據。

收件者如何存取共享數據?

收件者會以唯讀格式存取共用數據資產。 共用筆記本檔案是只讀的,但可以複製並修改並在收件者工作區中執行,就像任何其他筆記本一樣。

安全存取取決於共用模型:

每當數據提供者在自己的 Databricks 帳戶中更新數據表或磁碟區時,更新就會近乎即時地出現在收件者的系統中。

如何追蹤誰正在共用和存取共享數據?

已啟用 Unity 目錄的 Azure Databricks 工作區上的數據提供者可以使用 Azure Databricks 稽核記錄和系統數據表來監視共用和收件者的建立和修改,並可監視共用上的收件者活動。 請參閱 稽核和監視數據共用

在 Databricks 工作區中使用共用數據的數據收件者可以使用 Databricks 稽核記錄和系統數據表來瞭解誰正在存取哪些數據。 請參閱 稽核和監視數據共用

共用磁碟區

您可以使用 Databricks 對 Databricks 共用流程來共用磁碟區。 請參閱將磁碟區新增至共用(適用於提供者),以及使用 Databricks 對 Databricks Delta Sharing(適用於收件者)來讀取共用的數據(適用於收件者)。

共用模型

您可以使用 Databricks 對 Databricks 共用流程來共用模型。 請參閱將模型新增至共用(適用於提供者),以及使用 Databricks-to-Databricks Delta Sharing(適用於收件者)來讀取共用的數據(適用於收件者)。

共用筆記本

您可以使用 Delta Sharing,透過 Databricks 對 Databricks 共用流程來共用筆記本檔案。 請參閱 將筆記本檔案新增至共用 (適用於提供者)和 讀取共用筆記本 (適用於收件者)。

限制數據列和數據行層級的存取

您可以共用動態檢視,以根據收件者屬性限制特定數據表數據的存取。 動態檢視共用需要 Databricks 對 Databricks 共用流程。 請參閱 將動態檢視新增至共用以篩選數據列和數據行

差異共用和串流

差異共享支援Spark結構化串流。 提供者可以與記錄共享數據表,讓收件者可以使用它作為結構化串流來源,以低延遲以累加方式處理共享數據。 收件者也可以對與歷程記錄共享的數據表執行 Delta Lake 時間移動查詢

若要瞭解如何使用歷程記錄共享數據表,請參閱 將數據表新增至共用。 若要瞭解如何使用共用數據表作為串流來源,請參閱使用 Apache Spark 結構化串流查詢數據表(適用於 Databricks 到 Databricks 共用的收件者),或使用 Spark 結構化串流存取共用數據表(適用於開啟共用數據的收件者)。

請參閱 Azure Databricks 上的串流。

差異共用常見問題

以下是差異共用的常見問題。

我需要 Unity 目錄才能使用差異共用嗎?

否,您不需要 Unity 目錄以提供者身分共用或取用共享數據(以收件者身分)。 不過,Unity 目錄提供優點,例如支援非表格式和 AI 資產共用、現成的治理、簡單性和查詢效能。

提供者可以透過兩種方式共享資料:

  • 將資產放在 Unity 目錄管理之下,並使用內建的 Azure Databricks Delta Sharing 伺服器加以共用。

    您不需要將所有資產移轉至 Unity 目錄。 您只需要一個已啟用 Unity 目錄的 Azure Databricks 工作區,即可管理您想要共享的資產。 在某些帳戶中,會自動為 Unity 目錄啟用新的工作區。 請參閱 自動啟用 Unity 目錄

  • 實作開啟的 Delta 共用伺服器 來共享數據,而不一定要使用您的 Azure Databricks 帳戶。

收件者可以透過兩種方式取用數據:

  • 沒有 Databricks 工作區。 使用適用於許多數據平臺的 開放原始碼 Delta Sharing 連接器,包括 Power BI、pandas 和 開放原始碼 Apache Spark。 請參閱使用 Delta Sharing 開啟共用來讀取共用的數據(適用於收件者),以及 Delta Sharing 開放原始碼 專案

  • 在 Databricks 工作區中。 收件者工作區不需要針對 Unity 目錄啟用,但如果是,則治理、簡單性和效能有其優點。

    想要這些優點的收件者組織不需要將所有資產移轉至 Unity 目錄。 您只需要一個已啟用 Unity 目錄的 Azure Databricks 工作區,即可管理與您共用的資產。 在某些帳戶中,會自動為 Unity 目錄啟用新的工作區。 請參閱 自動啟用 Unity 目錄

請參閱使用差異共享開啟共用來讀取數據(適用於收件者),以及使用 Databricks 對 Databricks Delta Sharing 共用的讀取數據(適用於收件者)。

我需要是 Databricks 客戶才能使用 Delta Sharing 嗎?

否,差異共用是開放式通訊協定。 您可以在任何數據平臺上與收件者共用非 Databricks 數據。 提供者可以設定開啟的 Delta Sharing 伺服器,以從任何計算平台共用。 收件者可以使用適用於許多數據產品的 開放原始碼 Delta Sharing 連接器來取用共享數據,包括 Power BI、pandas 和 開放原始碼 Spark。

不過,在 Azure Databricks 上使用 Delta Sharing,特別是從已啟用 Unity 目錄的工作區共用,有許多優點。

如需詳細資訊,請參閱此常見問題中的第一個問題。

差異共用是否會產生輸出成本?

區域內的差異共用不會產生任何輸出成本。 與其他數據共享平臺不同,差異共用不需要數據複寫。 此模型有許多優點,但表示當跨雲端或區域共享數據時,您的雲端廠商可能會收取數據輸出費用。 Azure Databricks 支援從 Cloudflare R2(公開預覽版)共用,這不會產生任何輸出費用,並提供其他工具和建議來監視和避免輸出費用。 請參閱監視和管理差異共享輸出成本(適用於提供者)。

提供者是否可以撤銷收件者存取權?

是,可以視需要撤銷收件者存取權,並在指定的粒度層級撤銷。 您可以拒絕收件者存取特定共用和特定IP位址、篩選收件者的表格式數據、撤銷收件者令牌,以及完全刪除收件者。 請參閱 撤銷共用 的收件者存取權,以及 建立和管理差異共享的數據收件者。

使用預先簽署的 URL 並不不安全嗎?

差異共用會使用預先簽署的 URL 來提供物件記憶體中檔案的暫時存取權。 它們只會提供給已擁有共享數據存取權的收件者。 它們很安全,因為它們是短期的,而且不會將存取層級擴充到已授與收件者的範圍。

差異共用中所使用的令牌是否安全開啟共用通訊協定?

因為差異共用會啟用跨平台共用—不同於其他可用的數據共享平臺,共用通訊協定需要開啟的令牌。 提供者可以藉由設定令牌存留期、設定網路控制,以及視需要撤銷存取權,以確保令牌安全性。 此外,令牌不會將存取層級擴充至已授與收件者的範圍。 請參閱 令牌的安全性考慮。

如果您不想使用令牌來管理收件者共用的存取權,您應該使用 Databricks 到 Databricks 共用 ,或連絡 Databricks 帳戶小組以取得替代方案。

差異共用是否支持檢視共用?

是,差異共用支持檢視共用。 請參閱 將檢視新增至共用

若要了解檢視共用的計劃增強功能,請連絡 Databricks 帳戶小組。

限制

資源配額

下面的值表示差異共用資源的配額。 下面的配額值是相對於 Unity 目錄中的父物件表示的。

Object 上層
Provider - 提供者 中繼存放區 1000
收件者 中繼存放區 5000
共用 中繼存放區 1000
資料表 共用 1000
磁碟區 共用 1000
模型 共用 1000
schemas 共用 500
Notebooks 共用 100

如果您預期超過這些資源限制,請連絡您的 Azure Databricks 帳戶小組。

下一步