Skip to content

v1.10.2

Choose a tag to compare

@sdebruyn sdebruyn released this 17 Feb 14:43

What's New

Warehouse Snapshots

Create point-in-time snapshots of your Fabric Data Warehouse directly from dbt using the new create_or_update_fabric_warehouse_snapshot macro. Unlike Microsoft's upstream implementation — which hijacks Python runtime components and bypasses dbt's lifecycle — this adapter gives you a macro you call explicitly from on-run-start, on-run-end, post-hook, or any other Jinja context.

on-run-end:
  - "{{ create_or_update_fabric_warehouse_snapshot('daily_snapshot', 'Snapshot after dbt run') }}"

You get full control: multiple snapshots per run, dynamic names, custom timing — all using standard dbt configuration.

Python Models

Run PySpark transformations against your Fabric Data Warehouse using Python models. Add your Workspace and Lakehouse to profiles.yml and write a model(dbt, spark) function that returns a PySpark DataFrame. The adapter handles Livy session management, code submission, and reading/writing via Fabric's native synapsesql connector.

# profiles.yml
dev:
  type: fabric
  workspace: My Workspace
  database: my_data_warehouse
  schema: dbt
  lakehouse: My Lakehouse
  authentication: CLI

This feature is exclusive to dbt-fabric-samdebruyn.

Documentation

New feature guides have been added to the documentation site:

  • Authentication — Covers Azure CLI, DefaultAzureCredential, service principal, environment variables, and Fabric Notebook authentication with ready-to-use profiles.yml examples
  • Python Models — How to write, configure, and troubleshoot Python models on Fabric
  • Warehouse Snapshots — Using the snapshot macro with hooks, dynamic names, and a comparison with Microsoft's approach