From Databricks

Move notebooks, jobs, Unity Catalog tables, and DLT pipelines to Fabric with the fewest rewrites.

What maps to what

DatabricksFabricNotes
Workspace notebookFabric notebook%run%run works; dbutilsnotebookutils/mssparkutils
Job / WorkflowData pipeline (with Notebook activities)Or a scheduled notebook for simple cases
Delta Live TablesPipeline + notebooks, or Dataflow Gen2No direct DLT equivalent — rebuild the DAG explicitly
Unity Catalog tableLakehouse table in OneLakeData is already Delta — often a shortcut, not a copy
Cluster / poolFabric Environment + Spark poolSize by vCores; see Resource profiles
Cluster-scoped libsEnvironment libraries (.whl, PyPI, conda)
spark.conf in cluster configEnvironment Spark settings
Secrets scopeAzure Key Vault via connection / workspace identity
SQL WarehouseFabric Warehouse or SQL analytics endpoint

Procedure

Shortcut the data first, copy later

If the Databricks tables live in ADLS you control, create OneLake shortcuts to the Delta folders. Instant read access, zero copy, and you can validate transforms against real data on day one. See Shortcuts.

Port a notebook

Replace dbutils.*:

# Databricks
dbutils.fs.ls("/mnt/raw")
dbutils.widgets.get("run_date")
dbutils.notebook.run("child", 600, {"k": "v"})
dbutils.secrets.get("scope", "key")

# Fabric
notebookutils.fs.ls("Files/raw")
run_date  # parameter cell
notebookutils.notebook.run("child", 600, {"k": "v"})
notebookutils.credentials.getSecret("https://<vault>.vault.azure.net/", "key")

Mount points (/mnt/...) become lakehouse-relative paths (Files/..., Tables/...) or abfss:// URLs with workspace identity.

Rebuild jobs as pipelines

Each Databricks task becomes a Notebook activity. Task dependencies become pipeline edges. Job parameters become pipeline parameters, sourced from a variable library.

Replace DLT

There is no declarative pipeline engine. For each DLT table, write an idempotent notebook (PySpark patterns) and wire the dependency order in a pipeline. Expectations (@dlt.expect) become boundary assertions in the notebook.

Move governance

Unity Catalog grants → OneLake security roles (RLS/CLS/TLS). Map UC groups to the same Entra groups.

Validate the slice, then fan out

Counts + checksums vs. the Databricks output for one vertical. Then migrate table families in dependency order.

Gotchas

Delta protocol. Databricks may have written tables with reader/writer features (deletion vectors, column mapping, v2Checkpoint) that a given Fabric Runtime doesn't support yet. Check DESCRIBE DETAIL and, if needed, rewrite via CREATE TABLE ... AS SELECT into a fresh table.

  • Photon has no Fabric equivalent by name — the Native Execution Engine is the analogue; enable and benchmark it.
  • display()display() exists in Fabric too, but rich Databricks-only visualizations won't carry over.
  • Auto Loader (cloudFiles) → use Spark Structured Streaming with the abfss source, or a pipeline Copy activity with incremental watermarking.

Stay ahead of Fabric changes

Fabric runtime changes, API updates, and deprecations. No spam, unsubscribe anytime.

On this page