Skip to content
R Roesli.
Go back
azure-databricks

Consume Azure Databricks Unity Catalog data in Fabric with shortcuts

Mirror Azure Databricks Unity Catalog metadata into Fabric and expose governed tables to a Lakehouse through OneLake shortcuts.

If governed data already lives in Azure Databricks Unity Catalog, copying every table into another lake is not the only option.

Fabric can create a Mirrored Azure Databricks catalog. It discovers Unity Catalog metadata and creates Databricks-type shortcuts for selected tables. A Fabric Lakehouse can then expose those tables through OneLake shortcuts.

The flow

Azure Databricks Unity Catalog
        |
        v
Mirrored Azure Databricks catalog in Fabric
        |
        +--> SQL analytics endpoint
        |
        v
OneLake shortcuts in a Fabric Lakehouse
        |
        +--> Spark notebook
        +--> Direct Lake or semantic model

The validation workspace was blog_databricks_shortcuts. It contained a sales_lakehouse and SQL analytics endpoint on active trial capacity.

Prerequisites

You need:

  1. an Azure Databricks workspace with Unity Catalog;
  2. external data access enabled on the metastore;
  3. EXTERNAL USE SCHEMA on the schemas Fabric should access;
  4. a capacity-backed Fabric workspace; and
  5. permission to create mirrored items, connections, and shortcuts.

The Databricks connection supports Organizational account and Service principal authentication.

1. Create the mirrored catalog

In blog_databricks_shortcuts:

  1. select New item;
  2. select Mirrored Azure Databricks catalog;
  3. create or select the Databricks connection;
  4. choose the catalog, schemas, and tables;
  5. leave Automatically sync future catalog changes for the selected schema enabled unless you need a fixed allowlist; and
  6. create the item.

Fabric creates a catalog item, shortcuts for selected tables, and a SQL analytics endpoint. Empty schemas are not shown.

2. Check it with SQL

Open the mirrored item’s SQL analytics endpoint and run:

select top (100)
    *
from [sales].[orders];

Use the names from your Unity Catalog selection. If the object is missing, check the Databricks identity and Unity Catalog privileges first.

3. Create a Lakehouse shortcut

Create or open:

sales_lakehouse

In Lakehouse Explorer:

  1. select New shortcut;
  2. choose Microsoft OneLake;
  3. select the mirrored Databricks catalog;
  4. select the tables; and
  5. select Create.

This creates a shortcut to the Fabric catalog item. It is not a second copy.

4. Read the shortcut with Spark

Attach the Lakehouse to a Fabric notebook:

from notebookutils import mssparkutils

for item in mssparkutils.fs.ls("Tables"):
    print(item.name, item.path)

Then query the selected table:

orders = spark.table("sales_orders")

display(
    orders
        .select("order_id", "customer_id", "order_date", "amount")
        .orderBy("order_date", ascending=False)
        .limit(20)
)

Replace the table and columns with the names shown in your Lakehouse.

For an aggregate:

from pyspark.sql import functions as F

summary = (
    orders
        .groupBy("customer_id")
        .agg(
            F.count("*").alias("order_count"),
            F.sum("amount").alias("total_amount")
        )
        .orderBy(F.col("total_amount").desc())
)

display(summary.limit(20))

Firewall-protected ADLS

Unity Catalog metadata and storage access are separate.

If the ADLS Gen2 account has a firewall:

  1. assign a workspace identity to the Fabric workspace;
  2. configure the Network Security tab while creating the mirrored catalog;
  3. grant that identity the required storage access; and
  4. allow the workspace identity through the firewall with Trusted Workspace Access.

Even when Databricks uses a service principal, Fabric uses the workspace identity to cross the ADLS firewall.

Permissions do not automatically follow the data

Unity Catalog grants do not become OneLake grants for every downstream user. Keep both systems aligned:

  1. synchronize the relevant Entra group to Databricks;
  2. grant the Unity Catalog privileges;
  3. create a OneLake data access role; and
  4. add the same group with only the required shortcut access.

For automated alignment, see Keep Databricks and Fabric permissions aligned with Policy Weaver. That article explains the supported translation boundary and the Fabric identity settings required for enforcement.

Troubleshooting

Catalog or schema is missing

Check Unity Catalog access, including EXTERNAL USE SCHEMA.

The mirrored item exists but a shortcut does not

Check the table inclusion list and confirm that the schema contains visible tables.

403 against firewall-protected storage

Check the workspace identity and Trusted Workspace Access. Databricks authentication does not grant firewall traversal.

Spark cannot query the shortcut

Confirm the second shortcut points to the mirrored catalog, the notebook has the correct Lakehouse attached, and the table name matches the Lakehouse.

Source

The useful pattern is asymmetric: Databricks governs the source, while Fabric exposes selected tables through OneLake, SQL, Spark, and Power BI without starting with a bulk-copy project.


Share this post:

Continue exploring

Previous Post
Keep Databricks and Fabric permissions aligned with Policy Weaver
Next Post
Fix missing or stale Lakehouse tables in the Fabric SQL endpoint
Community

Join the conversation

Sign in with GitHub to leave a comment.

GitHub

Loading comments…

Sign in with GitHub to comment