Releases: sdebruyn/dbt-fabric
v1.12.1
Patch release with several FabricSpark and Fabric DW improvements, mostly package-compatibility and reliability fixes. No breaking changes.
User-facing changes
New features
- FabricSpark:
clustered_by→ Delta liquid clustering (#281) — the existingclustered_bymodel config is now wired to Delta liquid clustering on Lakehouse tables. - Fabric DW:
compare_and_classify_query_resultssupport (#289) — enables the corresponding dbt-audit-helper macro on Fabric DW. - Fabric DW: configurable lock timeout (#274, #278) — schema-lock waits are now capped via
SET LOCK_TIMEOUT, with a configurable value (default 30s) to fail fast instead of hanging on contended DDL.
Fixes
- Fabric DW: release Sch-S locks after
synapsesqlwrites (#272) — Python model writes now await JVM GC so the underlying JDBC sessions release their Sch-S locks on the target table, eliminating multi-minuteLCK_M_SCH_Mwaits on follow-up DDL. - dbt-date:
get_fiscal_periodsnow dispatched correctly (#277) — closes #243.
Cleanups (user-visible)
- Remove stale dbt-utils overrides for
test_not_null_where/test_unique_where— these would have raisedNoSuchMacroErroragainst current dbt-utils since the upstream defaults were removed (#286). - Remove redundant
relationships_whereoverride — it now matches the upstream default verbatim (#288).
Dependencies
- Lower
requestsfloor to>=2.32.5for broader resolver compatibility (#293). - Merged upstream
microsoft/dbt-fabricv1.9.10 + v1.10.0 (review notes in commit; nothing needed porting).
Documentation
- New per-package pages: dbt_artifacts (#270), dbt-project-evaluator (#269).
Internal / dev improvements
Not user-facing — listed for completeness:
v1.12.0
Highlights
- dbt Core 1.12 support (compatibility)
- FabricSpark (Lakehouse) adapter matured significantly — now a first-class adapter alongside Fabric DW (lakehouse guide)
- Microsoft Purview integration for syncing dbt metadata to your data catalog (docs)
- dbt-external-tables support via
OPENROWSET(docs) - Documentation site rebuilt on Zensical with extensive new content (dbt-fabric.debruyn.dev)
FabricSpark (Lakehouse) adapter
See the Lakehouse guide and FabricSpark configuration.
- New materializations:
incremental,snapshot,clone,materialized_view(lake views), and properviewsupport - Default materialization changed to
view(matches dbt-spark conventions) - Cross-workspace 4-part naming
persist_docssupport- High-concurrency Livy sessions for parallel statement execution
- Configurable Fabric API base URLs for non-production tenants (gov clouds, sovereign clouds)
- Fixed source freshness failures on Lakehouse (ported from upstream)
- Fixed snapshots failing with
character varyingtype error - Fixed
TestMetadataWithEmptyFlagparse-time crash - Fixed
escape_single_quotesbehavior - Fixed schema filter push-down in
list_relations_without_caching(performance) - Handle
[SCHEMA_NOT_FOUND]gracefully in relation listing - Force JVM GC after
synapsesqlwrites to release JDBC schema locks
Fabric Data Warehouse
- Snapshots now use a single
MERGEstatement instead of UPDATE + INSERT (atomic, simpler) — see warehouse snapshots apply_label()decoupled from statement terminationCLUSTER BYsupport on tables — see cluster by- New
statisticsconfig option — see statistics - Approximate row count statistics in catalog generation — see catalog stats
- Fixed T-SQL identifier quoting to use brackets (
[ ]) - Fixed
rows_affectedreporting-1for table materializations - Automatic retry for transient snapshot isolation errors on metadata queries
- Singleton pollution fix in
TestWarehouseSnapshots
Authentication
See the authentication guide for the full walkthrough.
- New
workload_identitymethod for federated credentials (CI/CD-friendly, OIDC) - New
token_credentialmethod (ported from upstream) - Authentication doc significantly expanded with end-to-end setup walkthroughs
Community package compatibility
Integration tests and macro overrides added for both Fabric and FabricSpark across these packages — see the packages index for required dispatch config and per-package notes:
- dbt-utils
- dbt-date
- dbt-expectations
- dbt-audit-helper
- dbt-codegen
- dbt-profiler
- dbt-external-tables
- dbt-project-evaluator — Lakehouse only; Fabric DW support pending upstream dbt-labs/dbt-project-evaluator#576
- dbt_artifacts — Lakehouse only; Fabric DW (and Synapse) support pending upstream brooklyn-data/dbt_artifacts#529
Documentation
Docs site migrated from mkdocs-material to Zensical: dbt-fabric.debruyn.dev. New and significantly expanded pages:
- Comparison: dbt-fabric vs upstream microsoft/dbt-fabric
- Comparison: dbt-fabricspark vs dbt-synapse-spark
- Lakehouse — full FabricSpark setup, configuration, and feature guide
- External tables — OPENROWSET-based external table workflow
- Purview integration — end-to-end metadata sync setup
- Cluster by
- Statistics
- Catalog stats
- Limitations — explicit unsupported features per adapter
- Compatibility matrix — dbt Core / Python / adapter version table
- Packages index + 7 per-package pages
- Configuration — substantially rewritten with database/lakehouse tabs
- Python models — updated for current Livy behavior
Dependencies
- Bumped
dbt-coreto 1.11.10 - Bumped
dbt-adaptersto 1.23.0 - Bumped
mssql-pythonto 1.6.0 - Security fixes via dependency bumps
Tooling and CI
- Devcontainer for cloud development environments (Codespaces, etc.)
- DW and DE integration tests split into separate workflows
- On-demand DE tests via
/test-dePR comments - On-demand DW tests via
/test-dwPR comments - Extensive unit test coverage added for adapter internals (Credentials, Adapter, Column, Relation, ConnectionManager, ApiClient, LivySession, FabricSparkCursor)
- Improved FabricSparkCursor PEP 249 compliance
v1.11.2
v1.11.1
v1.11.0
- Add support for dbt Core 1.11 (Functions not supported yet)
- Fix clone support: now deletes existing clones when trying to create a new one
- Incremental models now throw an error when trying to use a strategy that doesn't exist
- Added more integration tests
v1.10.4
v1.10.3
What's Changed
- Removed unnamed column warning for date spines
- Fixed validate_sql dbt_utils macro
Full Changelog: v1.10.2...v1.10.3
v1.10.2
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: CLIThis 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-useprofiles.ymlexamples - 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