使用 Unity 目錄連線到雲端物件記憶體和服務
本文提供使用 Unity 目錄處理資料所需的雲端記憶體連線概觀,以及 Unity 目錄如何管理雲端記憶體和外部雲端服務存取權的相關信息。
注意
如果您的工作區是在 2023 年 11 月 9 日之前建立的,則可能無法為 Unity Catalog 啟用它。 帳戶管理員必須為您的工作區啟用 Unity Catalog。 請參閱 啟用 Unity 目錄工作區。
Unity 目錄如何使用雲端記憶體?
Databricks 建議使用 Unity 目錄來管理您儲存在雲端物件記憶體中的所有數據的存取權。 Unity Catalog 提供一套工具來設定與雲端物件儲存體的安全連線。 這些連線提供完成以下操作的存取權限:
- 將未經處理資料內嵌至 Lakehouse。
- 在 Unity 目錄管理的雲端記憶體中,建立及讀取 受控數據表 和 受控數據 磁碟區。
- 註冊或建立包含表格式數據和外部磁碟區的外部數據表,其中包含使用雲端提供者管理的雲端記憶體中非結構化數據。
- 讀取和寫入非結構化數據(作為 Unity 目錄 磁碟區)。
為了更具體,Unity 目錄會以兩種主要方式使用雲端記憶體:
- 您在 Databricks 中建立之受控數據表和受控磁碟區的預設(或「受控」儲存位置(非結構化、非表格式數據)。 這些受控記憶體位置可以在中繼存放區、目錄或架構層級定義。 您可以在雲端提供者中建立受控記憶體位置,但其生命週期完全由 Unity 目錄管理。
- 儲存外部數據表和磁碟區的儲存位置。 這些數據表和磁碟區來自 Azure Databricks 的存取權是由 Unity 目錄管理,但數據生命週期和檔案配置是使用您的雲端提供者和其他數據平台進行管理。 通常您會使用外部數據表在 Azure Databricks 中註冊大量的現有數據,或者,如果您也需要使用 Azure Databricks 外部的工具來寫入數據,則為 。
如需 Managed 與外部數據表和磁碟區的詳細資訊,請參閱 什麼是數據表和檢視? 以及 什麼是 Unity 目錄磁碟區?。
警告
請勿為終端使用者提供 Unity Catalog 受控資料表或磁碟區的儲存體層級的存取權。 這會損害資料安全與治理。
授與使用者對 ADLS Gen2 外部位置儲存體的直接儲存體層級存取權,未尊重 Unity Catalog 所授與的任何權限或維護的稽核。 直接存取將繞過 Unity Catalog 的稽核、譜系及其他安全和監視功能,包括存取控制和權限。 您有責任透過 ADLS Gen2 管理直接儲存體存取權限,確保使用者擁有透過 Fabric 授與的適當權限。
對於儲存 Databricks 受控資料表的貯體,應在所有情況避免授與直接儲存體層級寫入存取權限。 透過最初由 Unity Catalog 管理的儲存體直接修改、刪除或改進任何物件可能導致資料損毀。
支援哪些雲端記憶體提供者?
Azure Databricks 同時支援 Azure Data Lake Storage Gen2 容器和 Cloudflare R2 貯體,作為 Unity Catalog 中註冊的資料和 AI 資產的雲端儲存位置。 R2 主要適用於您想要避免資料輸出費用的使用場景,例如跨雲端和區域進行差異共用。 如需詳細資訊,請參閱使用 Cloudflare R2 複本或將儲存體移轉至 R2。
Unity 目錄如何控管雲端記憶體的存取權?
為了管理保存數據表和磁碟區之基礎雲端記憶體的存取權,Unity Catalog 會使用稱為 外部位置的安全性實體對象,定義雲端儲存位置的路徑,以及存取該位置所需的認證。 這些認證接著會在稱為 記憶體認證的 Unity 目錄安全性實體物件中定義。 藉由授與和撤銷 Unity 目錄中外部位置安全性實體的存取權,您可以控制雲端儲存位置中數據的存取權。 藉由授與和撤銷 Unity 目錄中記憶體認證安全性實體的存取權,您可以控制建立外部位置物件的能力。
如需詳細資訊,請參閱 使用 Unity 目錄管理雲端記憶體的存取權。
雲端記憶體的路徑型存取
雖然 Unity 目錄支援使用雲端記憶體 URI 存取外部資料表和外部磁碟區的路徑型存取,但 Databricks 建議使用者使用資料表名稱讀取和寫入所有 Unity 目錄數據表,並使用路徑存取磁碟區 /Volumes
中的數據。 磁碟區是大部分 Azure Databricks 使用者應該用來直接與雲端物件儲存體中的非表格式資料互動的安全物件。 請參閱Unity Catalog 磁碟區是什麼?。
使用 Unity Catalog 進行雲端儲存的最佳做法
Azure Databricks 要求使用 Azure Data Lake Storage Gen2 作為 Azure 儲存體服務,儲存使用 Unity Catalog 治理在 Azure Databricks 中處理的資料。 Azure Data Lake Storage Gen2 可讓您分隔儲存體和計算成本,並利用 Unity Catalog 所提供的精細存取控制。 如果資料儲存在 OneLake (Microsoft Fabric 資料湖) 中並由 Databricks 處理 (略過 Unity Catalog),會產生捆綁的儲存體和計算成本。 與 Azure Data Lake Storage Gen2 儲存、讀取和寫入資料相比,這可能導致讀取成本高出大約 3 倍,寫入成本高出大約 1.6 倍。 Azure Blob 儲存體也與 Unity Catalog 不相容。
功能 | Azure Blob 儲存體 | Azure Data Lake Storage Gen2 | OneLake |
---|---|---|---|
Unity Catalog 支援 | X | ✓ | X |
需要購買額外的 Fabric 容量 | X | X | ✓ |
來自外部引擎的支援作業 | - 讀取 - 寫入 |
- 讀取 - 寫入 |
- 讀取 (相較於從 Azure Data Lake Storage Gen2 讀取資料,讀取成本為 3 倍)。 - 不支援寫入。 如需詳細資訊,請參閱 OneLake 文件。 |
部署 | Regional | Regional | 全球 |
驗證 | Entra ID 共用存取簽章 | Entra ID 共用存取簽章 | Entra ID |
儲存體事件 | ✓ | ✓ | X |
虛刪除 | ✓ | ✓ | ✓ |
存取控制 | RBAC | RBAC、ABAC、ACL | RBAC (僅限資料表/資料夾,不支援捷徑 ACL) |
加密金鑰 | ✓ | ✓ | X |
存取層 | 線上封存 | 經常性存取、非經常性存取、極非經常性存取、封存 | 僅經常性存取 |
Unity 目錄如何控管其他雲端服務的存取權?
Unity 目錄會使用稱為 服務認證的安全性實體物件來管理對非記憶體服務的存取。 服務認證會封裝長期雲端認證,以存取使用者需要從 Azure Databricks 連線的外部服務。
服務認證不適用於控管雲端記憶體的存取權,而雲端記憶體是做為 Unity 目錄受控記憶體位置或外部記憶體位置。 針對這些使用案例,請使用記憶體認證,如 Unity 目錄如何控管雲端記憶體的存取?中所述。
如需詳細資料,請參閱:
下一步
如果您剛以系統管理員身分開始使用 Unity 目錄,請參閱:
如果您是新的使用者,且您的工作區已針對 Unity 目錄啟用,請參閱:
若要深入瞭解如何管理雲端記憶體的存取權,請參閱:
若要深入瞭解如何管理雲端服務的存取權,請參閱: