卷是 Unity Catalog 物件,可對非表格式數據進行管理。 卷代表雲端物件儲存位置中的邏輯儲存卷。 磁碟區提供存取、儲存、控管和組織檔案的功能。
表格控管表格式資料,而磁碟區則控管任何格式的非表格式資料,包括結構化、半結構化或非結構化資料。
Note
Beta版本可用, FILE 使用該類型將存放於磁碟區的檔案作為表格中的值參考。 請參見 FILE 類型與非結構化資料。
Databricks 建議使用磁碟區來管理所有非表格式數據的存取權。 磁碟區有兩種類型:
- 受管理磁碟區: 適用於基本的 Databricks 受控儲存體。
- 外部磁碟區: 用於將控管新增至現有的雲端物件儲存位置。
Note
若想在不必先建立目錄、結構描述和磁碟區的情況下,儲存自己用於個人或探索性工作的檔案,您可以使用「My Files」,這是每位使用者專屬的磁碟區。 我的檔案目前還在 測試階段。 請參見 「我的檔案中的儲存檔案」。
存储卷的使用案例
儲存容量的使用案例包括:
- 為外部系統產生的原始資料登錄登陸區,以支援 ETL 管線及其他資料工程活動的早期處理。
- 註冊要擷取的暫存位置。 例如,使用 Auto Loader、
COPY INTO或 CTAS(CREATE TABLE AS)陳述式。 - 提供檔案儲存位置,供資料科學家、資料分析師及機器學習工程師在探索性資料分析及其他資料科學任務中使用。
- 讓 Azure Databricks 使用者存取其他系統在雲端儲存體中產生和存放的任意檔案。 例如,監控系統或 IoT 裝置擷取的大量非結構化資料 (例如影像、音訊、視訊和 PDF 檔案),或從本機相依性管理系統或 CI/CD 管道匯出的程式庫檔案 (JAR 和 Python 輪檔)。
- 儲存營運數據,例如記錄檔或檢查點檔案。
如需與磁碟區操作相關的示範,請參閱 使用 Unity Catalog 磁碟區簡化檔案、映像和資料擷取。
Important
您無法將磁碟區中的檔案註冊為 Unity 目錄中的資料表。 磁碟區僅供路徑型數據存取使用。 當您想要在 Unity Catalog 中處理表格式資料時,請使用資料表。
受管理磁碟區與外部磁碟區
受控磁碟區和外部磁碟區在使用 Azure Databricks 工具、UI 和 API 時提供幾乎相同的體驗。 主要差異與儲存位置、生命週期和控制有關:
| 特徵 / 功能 | 受管理磁碟區 | 外部磁碟區 |
|---|---|---|
| 儲存位置 | 在 UC 管理的儲存空間中為架構建立 | 針對現有的雲端物件儲存路徑登錄 |
| 資料生命週期 | UC 管理佈局和刪除(刪除後保留 7 天) | 當您卸除磁碟區時,資料仍然存在於雲端儲存中 |
| 存取控制 | 所有存取都透過 UC | UC 會控管存取,但外部工具可以使用直接 URI |
| 需要遷移嗎? | 否 | 否 — 使用現有的儲存路徑 as-is |
| 典型使用案例 | Databricks 專用工作負載的最簡單選擇 | Databricks 與外部系統混合存取 |
為什麼要使用受管理磁碟區?
受管理磁碟區具有下列優點:
- Databricks 的工作負載的預設選擇。
- 無需手動管理雲憑據或存儲路徑。
- 快速建立受控管儲存位置的最簡單選項。
為什麼要用外部磁碟區?
外部磁碟區可讓您將 Unity 目錄資料控管新增至現有的雲端物件儲存目錄。 外部磁碟區的一些使用案例包括:
- 在資料已存在的地方加入治理,且不要求資料副本。
- 控管 Azure Databricks 必須擷取或存取的其他系統所產生的檔案。
- 控管 Azure Databricks 所產生的資料,這些資料必須由其他系統直接從雲端物件儲存體存取。
Databricks 建議使用外部磁碟區來儲存由外部系統(包括 Azure Databricks 之外的系統)讀取或寫入的非表格資料檔案。 Unity Catalog 不管理直接從外部系統對雲端物件儲存執行的讀寫作業,因此你必須在 Azure Databricks 之外,透過以下其中一種方法進行額外的治理:
- 從 Unity Catalog 核發短效憑證:設定外部引擎向 Unity Catalog 請求短效憑證。 這些提供的憑證會繼承請求主體在 Unity Catalog 中的權限,使 Unity Catalog 持續作為授權的權威依據。 如需外部系統存取,請參閱 Unity 目錄憑證發放。
- 設定雲端原生存取控制:使用雲端供應商的 IAM 政策、桶政策或底層儲存位置的存取控制清單,限制直接存取。 將這些控制項與你在該卷上授權的 Unity 目錄權限對齊,使外部系統存取與 Unity 目錄存取相符。 關於 Unity Catalog 如何連接雲端儲存的背景,請參見 使用 Unity Catalog 連接雲端物件儲存。
存取磁碟區中檔案的路徑
資料分區位於 Unity 編目三層命名空間的第三層 (catalog.schema.volume):
無論您使用 Apache Spark、SQL、Python 或其他語言和連結庫,存取磁碟區的路徑都相同。 這與系結至 Azure Databricks 工作區之物件記憶體中檔案的舊版存取模式不同。
存取磁碟區中檔案的路徑會使用下列格式:
/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>
使用 Apache Spark 時,Azure Databricks 也支援選擇性 dbfs:/ 配置,因此下列路徑也有效:
dbfs:/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>
/<catalog>/<schema>/<volume> 路徑的這一部分對應於檔案的三個 Unity Catalog 物件名稱。 這些目錄是唯讀的,並由 Unity 目錄自動管理。 您無法使用檔案系統命令建立或刪除它們。
Note
您也可以使用雲端記憶體 URI 存取外部磁碟區中的數據。
磁碟區的預留路徑
磁碟容量說明以下用來存取磁碟容量的保留路徑:
dbfs:/Volumes/Volumes
Note
也會為 Apache Spark API 和 dbutils的這些路徑保留可能的錯字,包括 /volumes、/Volume、/volume,並且無論它們前面是否有 dbfs:/。 路徑 /dbfs/Volumes 也會保留,但無法用來存取磁碟區。
只有 Databricks 執行環境 13.3 LTS 和更新版本才支援磁碟區。 在 Databricks Runtime 12.2 LTS 和更早版本中,針對 /Volumes 路徑的作業可能會成功,但只能將數據寫入附加至計算叢集的暫存儲存磁碟,而無法如預期般將數據保存到 Unity Catalog 磁碟區。
Important
如果您有預先存在的資料儲存在 DBFS 根目錄的保留路徑中,請提交支援票證,以暫時存取此資料,以將它移至另一個位置。
計算需求
當您使用磁碟區時,您必須使用 SQL 倉儲或執行 Databricks Runtime 13.3 LTS 或更新版本的叢集,除非您正在使用 Azure Databricks 的 UI,如目錄總管。
關於如何在卷中儲存 DataFrame 檢查點的資訊,請參見 DataFrame 檢查點在卷中。
Limitations
您必須使用已啟用 Unity Catalog 的計算資源來與 Unity Catalog 磁碟區互動。
下表概述以 Databricks Runtime 版本為基礎的 Unity 目錄磁碟區限制:
| Databricks 執行環境版本 | Limitations |
|---|---|
| 所有支援的 Databricks 執行環境版本 |
|
| 14.3 LTS 及更高版本 |
|
| 14.2 和以下版本 |
|
其他資源
下列文章提供關於處理磁碟區的進一步資訊: