Databricks

Unity Catalog Volumes for Non-Table File Management: Managed/External, Permissions, and Operations

2026-03-26
更新: 2026-03-27
NicheeLab Editorial Team

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.

Volumes Overview

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.

  • Path format: /Volumes/<catalog>/<schema>/<volume>/<path>
  • Access methods: Spark API / dbutils / SQL / REST API / Unity Catalog UI
  • Permission control: READ VOLUME (read) / WRITE VOLUME (write)
  • Auditing: every file operation is recorded in the audit log

Managed Volume vs External Volume

ComparisonManaged VolumeExternal Volume
Storage managementManaged automatically by Unity CatalogCloud storage path specified by the user
Data on DROPData is deleted as wellOnly metadata is removed; data remains
External LocationNot requiredMust be created beforehand
Storage CredentialNot requiredRequired via the External Location
Ingesting existing dataFiles must be copiedExisting paths can be referenced as-is
Recommended use caseManaging new files or temporary filesBringing an existing data lake under UC governance

CREATE VOLUME Syntax

-- 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;

File Operations

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 with DBFS

ComparisonDBFSVolumes
GovernanceNone (workspace ACLs only)Controlled by Unity Catalog permissions
Access controlPer workspacePer catalog/schema/volume
Audit logsLimitedAll operations recorded in the audit log
Path formatdbfs:/mnt/... or /dbfs/.../Volumes/catalog/schema/volume/...
Cross-workspace accessNot possible (confined to a workspace)Possible (within the same Metastore)
Future directionBeing phased outRecommended (new features land on Volumes)

Volumes Permission Model

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.

Real-world Use Cases

  • Landing zone: receive CSV/JSON files from external systems into a Volume and ingest them with Auto Loader
  • ML artifacts: store trained models and scoring result files in a Volume
  • Configuration files: centrally manage ETL pipeline parameter files (YAML/JSON)
  • Images/PDFs: share unstructured data across teams under UC governance

Points the Exam Tests

  • The difference in DROP behavior between Managed Volume and External Volume
  • That Volume paths differ from DBFS paths (/Volumes/...)
  • The granularity of READ VOLUME and WRITE VOLUME (per volume)
  • That External Volume requires an External Location to be created first
  • Why Volumes is recommended over DBFS (governance, auditing, cross-workspace access)

Check Your Understanding

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?

  1. Because it is a Managed Volume, the files are deleted together with the schema
  2. The files remain in cloud storage and can still be accessed by specifying the path
  3. The files are moved to the DBFS recycle bin and permanently deleted after 30 days
  4. DROP SCHEMA fails with an error when the Volume still contains 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.

Frequently Asked Questions

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.

Check what you learned with practice questions

Practice with certification-focused question sets

無料で問題を解いてみる
Author

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.


Related articles
Databricks

Databricks Certifications: All 7 Exams, Difficulty & Study Plan (2026)

Complete guide to all 7 Databricks certifications — Data Eng...

Databricks

Databricks Exam Difficulty Ranking: All 7 Certs Compared (2026)

Every Databricks certification ranked by difficulty, with st...

Databricks

Databricks Study Guide: Fastest Pass Route & Time Estimates (2026)

How to pass Databricks certifications efficiently. Official ...

Databricks

Databricks Data Engineer Associate: Complete Guide (2026)

Domain-by-domain breakdown of the Databricks Certified Data ...

Databricks

Databricks Data Engineer Professional: Complete Guide (2026)

Tactics for the Databricks Certified Data Engineer Professio...

Browse all Databricks articles (110)
© 2026 NicheeLab All rights reserved.