Databricks

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

2026-03-26
Updated: 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

-- Create a Managed Volume
CREATE VOLUME prod.raw.landing_files
COMMENT 'Managed Volume for landing CSV and JSON files';

-- Create an External Volume
-- An External Location and Storage Credential must exist first
CREATE EXTERNAL VOLUME prod.raw.external_landing
LOCATION 's3://my-bucket/landing/'
COMMENT 'External Volume pointing at an existing S3 bucket';

-- Check the Volume
SHOW VOLUMES IN prod.raw;

-- Volume details
DESCRIBE VOLUME prod.raw.landing_files;

-- Drop the 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 files
LIST '/Volumes/prod/raw/landing_files/2026/03/';

-- SQL: upload a file (from a notebook)
PUT '/Volumes/prod/raw/landing_files/config.json'
  OVERWRITE;

-- SQL: delete a file
REMOVE '/Volumes/prod/raw/landing_files/old_data.csv';
# Python / dbutils: list files
files = dbutils.fs.ls("/Volumes/prod/raw/landing_files/")
for f in files:
    print(f.name, f.size)

# Python: read a file
df = spark.read.csv(
    "/Volumes/prod/raw/landing_files/sales_2026.csv",
    header=True,
    inferSchema=True
)

# Python: write a file
df.write.mode("overwrite").parquet(
    "/Volumes/prod/raw/landing_files/output/"
)

# Python: copy a file
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 access
GRANT READ VOLUME ON VOLUME prod.raw.landing_files TO `data-analysts`;

-- Grant write access
GRANT WRITE VOLUME ON VOLUME prod.raw.landing_files TO `data-engineers`;

-- Grant the privilege to create Volumes (schema level)
GRANT CREATE VOLUME ON SCHEMA prod.raw TO `data-engineers`;

-- Check the privileges
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

Question 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

Correct answer: 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

Try free questions
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.