Skip to main content

A Microsoft Fabric Synapse Data Warehouse adapter plugin for dbt

Project description

dbt-fabric

dbt adapter for Microsoft Fabric Synapse Data Warehouse.

The adapter supports dbt-core 1.4 or newer and follows the same versioning scheme. E.g. version 1.1.x of the adapter will be compatible with dbt-core 1.1.x.

Documentation

We've bundled all documentation on the dbt docs site

Installation

This adapter requires the Microsoft ODBC driver to be installed: Windows | macOS | Linux

Debian/Ubuntu

Make sure to install the ODBC headers as well as the driver linked above:

sudo apt-get install -y unixodbc-dev

macOS (Apple Silicon)

Install unixODBC and the ODBC driver via Homebrew:

brew install unixodbc msodbcsql18

Modern Homebrew (post-Sonoma) ships libodbc.3.dylib, but pyodbc wheels are often compiled against libodbc.2.dylib. This mismatch causes the following error at runtime:

Library not loaded: /opt/homebrew/opt/unixodbc/lib/libodbc.2.dylib

Fix — recompile pyodbc against the installed unixODBC:

export LDFLAGS="-L/opt/homebrew/opt/unixodbc/lib"
export CPPFLAGS="-I/opt/homebrew/opt/unixodbc/include"
pip install --force-reinstall --no-binary :all: pyodbc

Alternative — create a compatibility symlink:

ln -s /opt/homebrew/opt/unixodbc/lib/libodbc.3.dylib \
      /opt/homebrew/opt/unixodbc/lib/libodbc.2.dylib

Latest version: PyPI

pip install -U dbt-fabric

Performance guidance for large projects

Fabric Warehouse DDL operations (e.g. CREATE TABLE, sp_rename) hold catalog locks that can block sys.tables/sys.views reads from concurrent dbt sessions. With many models and high thread counts this causes list_<schema> steps to stall for minutes.

Strongly recommended for projects with 500+ models or concurrent dbt runs:

# profiles.yml
my_fabric_project:
  target: dev
  outputs:
    dev:
      type: fabric
      # ... connection settings ...
      threads: 4          # keep low (4–8) to reduce catalog lock pressure
      query_timeout: 30   # fail fast on blocked catalog reads (seconds)

In your dbt_project.yml:

flags:
  cache_selected_only: true  # only list schemas for models in the current run

Or pass --no-populate-cache on the CLI for a single run. This prevents dbt from listing every schema in the warehouse upfront, significantly reducing catalog read pressure during concurrent runs.

Changelog

See the changelog

Contributing

Unit tests Integration tests on Azure Publish Docker images for CI/CD

This adapter is Microsoft-maintained. You are welcome to contribute by creating issues, opening or reviewing pull requests. If you're unsure how to get started, check out our contributing guide.

License

PyPI - License

Code of Conduct

This project and everyone involved is expected to follow the Microsoft Code of Conduct.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbt_fabric-1.10.0.tar.gz (46.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dbt_fabric-1.10.0-py3-none-any.whl (61.5 kB view details)

Uploaded Python 3

File details

Details for the file dbt_fabric-1.10.0.tar.gz.

File metadata

  • Download URL: dbt_fabric-1.10.0.tar.gz
  • Upload date:
  • Size: 46.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.13

File hashes

Hashes for dbt_fabric-1.10.0.tar.gz
Algorithm Hash digest
SHA256 23b4ba6006c544d6f56c308b651bcbea33c67e4c297be998d42ebdf01d355c2f
MD5 8964bfff9b72dc46595188944b7bb485
BLAKE2b-256 427e836570a706fbc6dfe7f442050ed7afec1c8d1510a2b62b9daf47d5eade98

See more details on using hashes here.

File details

Details for the file dbt_fabric-1.10.0-py3-none-any.whl.

File metadata

  • Download URL: dbt_fabric-1.10.0-py3-none-any.whl
  • Upload date:
  • Size: 61.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.13

File hashes

Hashes for dbt_fabric-1.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 94645844402f09c90583fedcbad38e2c777d2966426e2c74cfb24b2b60332da4
MD5 c25556d748a8fcb8c51c3ec3661f9276
BLAKE2b-256 c394d5d982d52ed5a0ecac751eb05bc5d9c4f1f843fd0cd356c1f34772eb01f3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page