本文提供使用 Unity 目錄處理資料所需的雲端記憶體連線概觀,以及 Unity 目錄如何管理雲端記憶體和外部雲端服務存取權的相關信息。
Unity 目錄如何使用雲端記憶體?
Databricks 建議使用 Unity 目錄來管理您儲存在雲端物件記憶體中的所有數據的存取權。 Unity 目錄提供一套工具來設定與雲端物件記憶體的安全連線。 這些連線提供完成下列動作的存取權:
- 將原始資料匯入至 lakehouse。
- 在 Unity Catalog管理的雲端儲存中,建立及讀取管理的表格和管理的磁碟區。
- 註冊或建立 外部數據表, 包含表格式數據和 外部磁碟區, 包含使用雲端提供者管理的雲端記憶體中非結構化數據。
- 讀取和寫入非結構化數據 (Unity 目錄 磁碟區)。
為了更具體,Unity 目錄會以兩種主要方式使用雲端記憶體:
- 在 Databricks 中,您建立之受管表格和受管磁碟區(非結構化、非表格式數據)的預設儲存位置。 這些受控記憶體位置可以在中繼存放區、目錄或架構層級定義。 您可以在雲端提供者中建立受控記憶體位置,但其生命週期完全由 Unity 目錄管理。
- 用於儲存外部資料表和容量的儲存位置。 這些對資料表和磁碟區的存取是由 Unity Catalog 管理,但資料生命周期和檔案佈局是由您的雲端提供者和其他資料平台管理。 通常您會使用外部資料表在 Azure Databricks 中註冊大量的現有數據,或者如果您需要使用 Azure Databricks 以外的工具對數據進行寫入操作,也是如此。
如需 Managed 與外部數據表和磁碟區的詳細資訊,請參閱 Azure Databricks 數據表簡介 和 什麼是 Unity 目錄磁碟區?。
警告
請勿為非 Unity 目錄身分識別提供 Unity 目錄受控數據表或磁碟區的記憶體層級存取權。 這會損害資料安全與治理。
授予使用者、服務主體以及受控識別直接存取 Azure Data Lake Storage 容器的權限,其中的數據由 Unity 目錄控管,這將繞過 Unity 目錄。 這會將數據公開給過度許可權、外泄和未經授權的存取,同時使稽核複雜化並增加管理額外負荷。
Unity 目錄受控數據表不支援直接記憶體存取。
Unity 目錄支援的雲端記憶體選項
Unity 目錄支援 Azure Databricks 的下列雲端記憶體選項。
雲端記憶體選項 | 說明 |
---|---|
Azure Data Lake Storage 容器 | Azure Data Lake Storage 適用於大部分的 Azure Databricks 使用案例。 請參閱 建立記憶體認證以連線至 Azure Data Lake Storage |
AWS S3 貯體 | Azure Databricks 支援跨平台只讀存取 S3 儲存桶。 請參閱建立記憶體認證以連線至 AWS S3(唯讀)。 |
Cloudflare R2 儲存桶 | Cloudflare R2 主要用於 Delta Sharing 使用案例,適合您想要避免資料外傳費用的情況。 請參閱 建立記憶體認證以連線到 Cloudflare R2。 |
DBFS 根目錄 | DBFS 根 是舊式雲端儲存位置。 雖然 Databricks 建議不要將數據儲存在 DBFS 根記憶體中,但由於舊版做法,您的工作區可能會這麼做。 請參閱在 DBFS 根目錄中建立資料的外部位置(舊版)。 |
Unity 目錄如何控管雲端記憶體的存取權?
為了管理保存數據表和磁碟區之基礎雲端記憶體的存取權,Unity Catalog 會使用稱為 外部位置的安全性實體物件,該物件會定義雲端儲存位置的路徑,以及存取該位置所需的認證。 這些認證接著會在名為 儲存認證的 Unity Catalog 可保護物件中定義,。 藉由授與和撤銷 Unity 目錄中外部位置安全性實體的存取權,您可以控制雲端儲存位置中數據的存取權。 藉由在 Unity Catalog 中授予和撤銷對儲存認證安全物件的存取權,您可以控制創建外部位置對象的能力。
儲存憑證和外部儲存位置
以下是這兩個可保護的物件的更詳細的資訊:
- 儲存體認證代表用來存取雲端租戶中儲存的數據的驗證和授權機制,例如使用 Azure Data Lake Storage 容器的 Azure 管理的身分識別或服務主體,或適用於 Cloudflare R2 儲存桶的 R2 API 令牌。 Unity 目錄授與的許可權可控制哪些使用者和群組可以使用認證來定義外部位置。 建立和使用記憶體認證的許可權應該只授與需要建立外部位置對象的使用者。 如需詳細資訊,請參閱 Unity 目錄所支援雲端記憶體選項中的連結。
- 外部位置會結合雲端儲存路徑與能授權存取該雲端儲存路徑的憑證。 Unity 目錄中授與的許可權可控制哪些使用者和群組可以存取外部位置所定義的雲端記憶體路徑。 建立和使用外部位置的權限應該只授與需要建立外部資料表、外部磁碟區或受控儲存位置的使用者。 如需相關資訊,請參閱建立外部位置以將雲端儲存連線到 Azure Databricks。
外部位置用於 Unity Catalog 的外部數據資產,例如 外部資料表 和 外部磁碟區,以及受控數據資產,例如 受控資料表 和 受控磁碟區。 如需 Unity 目錄中外部與受控數據資產差異的詳細資訊,請參閱 Azure Databricks 數據表簡介 和 什麼是 Unity 目錄磁碟區?。
若要瞭解使用外部位置的最佳做法,請參閱 外部位置。
當您建立外部數據表和磁碟區時,使用外部位置
在 Unity 目錄中註冊的外部數據表和外部磁碟區基本上是您在 Azure Databricks 外部管理之雲端記憶體中的數據指標。 當您在 Unity 目錄中建立外部資料表或外部磁碟區時,您必須參考已授與適當許可權的外部位置物件中包含的雲端記憶體路徑。 如需 Unity 目錄中外部與受控數據資產差異的詳細資訊,請參閱 Azure Databricks 數據表簡介 和 什麼是 Unity 目錄磁碟區?。 如需許可權,請參閱 授予外部位置的權限。
當您建立受管理的儲存空間時,使用外部位置(external location)
受控數據表和受控磁碟區完全由 Unity 目錄管理。 它們預設會儲存在 受控記憶體位置,其可在中繼存放區、目錄或架構層級定義。 當您將受控記憶體位置指派給中繼存放區、目錄或架構時,您必須參考外部位置物件,而且您必須有足夠的許可權才能使用它。 請參閱在 Unity Catalog 中指定受控儲存位置和 Unity Catalog 最佳做法。
雲端記憶體中數據的路徑型存取
雖然 Unity 目錄支援使用雲端記憶體 URI 存取外部資料表和外部磁碟區的路徑型存取,但 Databricks 建議使用者使用資料表名稱讀取和寫入所有 Unity 目錄數據表,並使用 /Volumes
路徑存取磁碟區中的數據。
資料卷 是大多數 Azure Databricks 使用者用來直接與雲端物件儲存中的非表格式數據互動的可安全保護的物件。 請參閱什麼是 Unity Catalog 磁碟區?。
警告
如果您使用非 Databricks 用戶端或從 Databricks 內使用路徑存取來更新外部資料表的元數據,則該元數據不會自動與 Unity Catalog 狀態同步。 Databricks 建議不要進行這類元數據更新,但如果您執行一個更新,則必須執行 MSCK REPAIR TABLE <table-name> SYNC METADATA
,讓 Unity 目錄中的架構處於最新狀態。 請參閱 REPAIR TABLE。
管理 Unity 目錄中雲端記憶體存取的工作流程
若要使用 Unity 目錄管理雲端記憶體的存取權,請執行下列動作:
- 建立記憶體認證物件,其中包含長期雲端認證,例如具有雲端記憶體路徑存取權的 Azure 受控識別 或服務主體。
- 建立參考記憶體路徑和記憶體認證物件的外部位置物件。
- 當您建立外部數據表、外部磁碟區或預設受控儲存位置時,參考外部位置中包含的路徑。 這可以是外部位置中定義的確切路徑,也可以是其子路徑。
使用 Unity Catalog 的 Azure 雲端儲存最佳做法
Azure Databricks 需要使用 Azure Data Lake Storage 作為 Azure 儲存服務,並使用 Unity Catalog 治理來處理在 Azure Databricks 中的數據。 Azure Data Lake Storage 可讓您分隔記憶體和計算成本,並利用 Unity 目錄所提供的精細存取控制。 如果數據儲存在 OneLake 中(Microsoft Fabric 數據湖),並由 Databricks 處理(略過 Unity 目錄),您將會產生配套的記憶體和計算成本。 相較於用於儲存、讀取和寫入數據的 Azure Data Lake Storage,讀取和寫入的成本可能高出約 3 倍,寫入成本則高出 1.6 倍。 Azure Blob 記憶體也與 Unity 目錄不相容。
特徵 / 功能 | Azure Blob 儲存服務 | Azure Data Lake 儲存體 | OneLake |
---|---|---|---|
由 Unity Catalog 支援 | X | ✓ | X |
需要購買額外的Fabric網路容量 | X | X | ✓ |
支持的操作來自外部引擎 |
|
|
如需詳細資訊,請參閱 OneLake 文件。 |
部署 | 區域性 | 區域性 | 全球 |
認證 | Entra ID 共用存取簽章 | Entra ID 共用存取簽章 | Entra ID (Entra 身份識別) |
存儲事件 | ✓ | ✓ | X |
軟刪除 | ✓ | ✓ | ✓ |
存取控制 | RBAC | RBAC、ABAC、ACL | RBAC (僅限資料表/資料夾,不支援快捷方式 ACL) |
加密金鑰 | ✓ | ✓ | X |
存取層級 | 線上封存 | 熱存、冷存、冷藏、封存 | 僅限頻繁存取 |