Skip to content

Landing data with Auto Loader, and handling schema enforcement and evolution

Auto Loader (cloudFiles) incrementally and efficiently processes new files landing in cloud storage, using either directory listing or file notification mode to discover files. It enforces a stored schema to prevent bad data from corrupting a table, and supports schema evolution to safely adapt when new columns appear, all while writing into Unity Catalog-governed managed or external tables.

1 · Learn the must-know

  • Auto Loader uses cloudFiles as the streaming source format, with cloudFiles.format specifying the underlying file type (json, csv, parquet, etc.).
  • Directory listing mode incrementally lists cloud storage directories to detect new files and requires no extra cloud service setup, making it the simpler default option.
  • File notification mode uses cloud provider queue/notification services (e.g., subscribing to storage event notifications) to detect new files, scaling better for very large or high-volume directories but requiring additional cloud resource permissions.
  • Auto Loader infers and stores schema in a schema location, and cloudFiles.inferColumnTypes plus a checkpoint/schema directory let it track schema across runs so it does not re-infer every batch.
  • cloudFiles.schemaEvolutionMode controls behavior when new columns are detected: default mode fails the stream and requires a restart to pick up the new schema (addNewColumns), while other modes can rescue data, ignore new columns, or fail explicitly.
  • Unrecognized or mismatched columns are captured in a rescued data column (by default _rescued_data) rather than silently dropped, preserving data integrity.
  • Even though Auto Loader is a streaming source, it can be run in batch/triggered fashion using trigger(availableNow=True) (or Trigger.Once) to process all currently available new files and then stop, which is the pattern typically used to land data incrementally into Unity Catalog tables via writeStream.table() or equivalent.

2 · Check your understanding

Check this objectiveFree · always available

A batch Auto Loader job ingests Parquet files nightly using Trigger.AvailableNow into a Unity Catalog table. The source directory receives thousands of new files per run, and the workspace has no cloud provider notification services (e.g., SQS/Event Grid) configured. Which file discovery mode should be used, and what is its main tradeoff?

Your objective map0 tried · 0 answered correctly · 33 untouched

What you have tried across Databricks DEA's objectives, not a readiness score.

Databricks Intelligence Platform6% of the exam0 of 2 tried
Data Ingestion and Loading21% of the exam0 of 7 tried
Data Transformation and Modeling22% of the exam0 of 7 tried
Working with Lakeflow Jobs16% of the exam0 of 4 tried
Implementing CI/CD10% of the exam0 of 4 tried
Troubleshooting, Monitoring, and Optimization10% of the exam0 of 5 tried
Governance and Security15% of the exam0 of 4 tried

3 · Keep going