Unity Catalog Volumes lets you govern files that cannot be structured as Delta Lake tables — raw CSV/JSON/Parquet files, images, ML model artifacts, configuration files, and so on. You can apply UC permission control, auditing, and lineage to the non-table files that used to be managed via DBFS or direct cloud-storage mounts.
This article walks through an overview of Volumes, the difference between Managed and External, SQL/Python examples for creating and operating them, a comparison with DBFS, the permission model, and the points the exam tends to test.
A Volume is an object in the Unity Catalog namespace (Catalog → Schema → Volume) and acts as a container for files. While tables manage structured data as rows and columns, Volumes manage files and directories.
/Volumes/<catalog>/<schema>/<volume>/<path>| Comparison | Managed Volume | External Volume |
|---|---|---|
| Storage management | Managed automatically by Unity Catalog | Cloud storage path specified by the user |
| Data on DROP | Data is deleted as well | Only metadata is removed; data remains |
| External Location | Not required | Must be created beforehand |
| Storage Credential | Not required | Required via the External Location |
| Ingesting existing data | Files must be copied | Existing paths can be referenced as-is |
| Recommended use case | Managing new files or temporary files | Bringing an existing data lake under UC governance |
-- Managed Volume の作成
CREATE VOLUME prod.raw.landing_files
COMMENT 'CSVやJSONの着地ファイルを管理するManaged Volume';
-- External Volume の作成
-- External LocationとStorage Credentialが事前に必要
CREATE EXTERNAL VOLUME prod.raw.external_landing
LOCATION 's3://my-bucket/landing/'
COMMENT '既存S3バケットを参照するExternal Volume';
-- Volume の確認
SHOW VOLUMES IN prod.raw;
-- Volume の詳細
DESCRIBE VOLUME prod.raw.landing_files;
-- Volume の削除
DROP VOLUME prod.raw.landing_files;Files inside a Volume can be operated on via SQL, dbutils, or the Python API.
-- SQL: ファイル一覧の取得
LIST '/Volumes/prod/raw/landing_files/2026/03/';
-- SQL: ファイルのアップロード(ノートブックから)
PUT '/Volumes/prod/raw/landing_files/config.json'
OVERWRITE;
-- SQL: ファイルの削除
REMOVE '/Volumes/prod/raw/landing_files/old_data.csv';# Python / dbutils: ファイル一覧
files = dbutils.fs.ls("/Volumes/prod/raw/landing_files/")
for f in files:
print(f.name, f.size)
# Python: ファイルの読み込み
df = spark.read.csv(
"/Volumes/prod/raw/landing_files/sales_2026.csv",
header=True,
inferSchema=True
)
# Python: ファイルの書き出し
df.write.mode("overwrite").parquet(
"/Volumes/prod/raw/landing_files/output/"
)
# Python: ファイルのコピー
dbutils.fs.cp(
"/Volumes/prod/raw/landing_files/config.json",
"/Volumes/prod/raw/landing_files/backup/config.json"
)| Comparison | DBFS | Volumes |
|---|---|---|
| Governance | None (workspace ACLs only) | Controlled by Unity Catalog permissions |
| Access control | Per workspace | Per catalog/schema/volume |
| Audit logs | Limited | All operations recorded in the audit log |
| Path format | dbfs:/mnt/... or /dbfs/... | /Volumes/catalog/schema/volume/... |
| Cross-workspace access | Not possible (confined to a workspace) | Possible (within the same Metastore) |
| Future direction | Being phased out | Recommended (new features land on Volumes) |
Permissions on a Volume are granted at the volume level. You cannot set per-file permissions; READ/WRITE at the volume level is the finest granularity.
-- 読み取り権限の付与
GRANT READ VOLUME ON VOLUME prod.raw.landing_files TO `data-analysts`;
-- 書き込み権限の付与
GRANT WRITE VOLUME ON VOLUME prod.raw.landing_files TO `data-engineers`;
-- Volume作成権限の付与(スキーマレベル)
GRANT CREATE VOLUME ON SCHEMA prod.raw TO `data-engineers`;
-- 権限の確認
SHOW GRANTS ON VOLUME prod.raw.landing_files;READ VOLUME allows reading and listing files, while WRITE VOLUME allows writing and deleting files. Note that these are independent of the table SELECT permission: reading files via a Volume requires READ VOLUME, and querying a table requires SELECT.
Data Engineer Associate
問題 1
A data engineer wants to store CSV files received daily from an external vendor under Unity Catalog and build a pipeline that ingests them with Auto Loader. They created a Managed Volume as the landing target. Six months later, they run DROP SCHEMA to migrate the schema to a different catalog. What happens to the CSV files?
正解: A
Managed Volume has Unity Catalog manage the storage lifecycle, so data is deleted alongside the schema or volume on DROP. Use External Volume if you want the data to remain. DROP SCHEMA CASCADE cascades the deletion to objects including volumes.
When should I choose Managed Volume vs External Volume?
Managed Volume has Unity Catalog manage storage automatically, so data is deleted when the catalog or schema is dropped. It fits small-to-medium file management or cases where you want the catalog to own the lifecycle. External Volume references an existing S3/ADLS/GCS path, so data remains even after a DROP. It fits placing an existing data lake under UC governance or sharing files with external systems.
What is the difference between Volumes and DBFS?
Volumes is a governance mechanism for files under Unity Catalog, supporting READ VOLUME/WRITE VOLUME permissions, audit logs, and lineage tracking. DBFS is a legacy per-workspace file system that does not respect UC permissions and cannot be managed across workspaces. Volumes is recommended for new development, while DBFS is being phased out.
How do I access files stored in Volumes from Spark?
Files inside Volumes are accessed via the path /Volumes/<catalog>/<schema>/<volume>/<path>. You can read them directly with the DataFrame API, e.g. spark.read.csv('/Volumes/prod/raw/landing/sales.csv'). dbutils.fs.ls('/Volumes/prod/raw/landing/') also lists files. Unity Catalog permissions apply at the path level, so users without READ VOLUME cannot read the files.
Practice with certification-focused question sets
無料で問題を解いてみるNicheeLab Editorial Team
NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.
Databricks Certifications: All 7 Exams, Difficulty & Study Plan (2026)
Complete guide to all 7 Databricks certifications — Data Eng...
Databricks Exam Difficulty Ranking: All 7 Certs Compared (2026)
Every Databricks certification ranked by difficulty, with st...
Databricks Study Guide: Fastest Pass Route & Time Estimates (2026)
How to pass Databricks certifications efficiently. Official ...
Databricks Data Engineer Associate: Complete Guide (2026)
Domain-by-domain breakdown of the Databricks Certified Data ...
Databricks Data Engineer Professional: Complete Guide (2026)
Tactics for the Databricks Certified Data Engineer Professio...