Running Native dbt Jobs in Microsoft Fabric Data Factory
Native dbt Jobs in Microsoft Fabric Data Factory run dbt Core transformations directly inside your Fabric workspace — no external orchestration, no local dbt installation, no separate CI/CD infrastructure to maintain. This guide covers setup, runtime details, supported adapters, OneLake logs, scheduling, CI/CD integration, current limitations, and the dbt Fusion roadmap — verified against official Microsoft Learn documentation through June 2026.
Native dbt Jobs in Microsoft Fabric Data Factory let you author, run, schedule, and monitor dbt Core transformations as a managed item type inside a Fabric workspace. Released in Public Preview, rollout completed December 21, 2025. The dbt job runtime v1.0 supports dbt Core v1.9 with four adapters: Fabric Warehouse, Azure SQL Database, PostgreSQL, and Snowflake. Run logs are stored in OneLake and visible from the Fabric monitoring hub. No build caching in preview — every run compiles fresh from source. dbt Fusion integration is planned for 2026 following a Microsoft and dbt Labs collaboration.
What Are Native dbt Jobs in Microsoft Fabric Data Factory?
Native dbt Jobs is a managed item type inside Microsoft Fabric Data Factory that runs dbt Core transformations without requiring an external dbt Cloud account, a self-hosted orchestration server, or a local dbt installation on a developer machine. The dbt project — models, tests, macros, and configuration — runs directly on Fabric-managed compute, scheduled and monitored the same way as Data Factory pipelines.
Before native dbt Jobs, running dbt transformations against Fabric Warehouse meant standing up dbt Cloud, a self-hosted Airflow instance, or a CI/CD runner specifically to invoke dbt run against the Fabric SQL endpoint. Native dbt Jobs removes that external dependency — the orchestration, compute, scheduling, and logging now live inside the same workspace as the warehouse itself.
Native dbt Jobs entered Public Preview in December 2025, with tenant rollout completing December 21, 2025. As a preview feature, behaviour, supported adapters, and limitations are subject to change before General Availability. Verify current status at Microsoft Learn before production planning.
Native dbt Jobs vs External dbt Orchestration
Teams running dbt against Fabric today typically use one of three external patterns: dbt Cloud, a self-hosted orchestrator (Airflow, Dagster) calling dbt CLI, or a CI/CD pipeline (GitHub Actions, Azure DevOps) triggering scheduled dbt runs. Native dbt Jobs is not a replacement for all of these — it is the right choice for specific scenarios.
| Approach | Orchestration Lives | Best For |
|---|---|---|
| Native dbt Jobs | Inside Fabric workspace alongside pipelines | Teams fully on Fabric wanting unified scheduling, monitoring, and lineage in one place |
| dbt Cloud | dbt Labs-hosted | Multi-warehouse organizations, teams wanting dbt-native CI features (Slim CI, dbt Explorer) |
| Self-hosted orchestrator | Customer-managed Airflow/Dagster | Complex cross-system dependencies, existing orchestration investment |
| CI/CD-triggered runs | GitHub Actions / Azure DevOps | Teams wanting full control over the runner environment and dbt version |
The clearest advantage of native dbt Jobs is unified governance — dbt job runs appear in the same Fabric monitoring hub as pipelines, notebooks, and Spark jobs. Lineage between a dbt model and the Power BI report consuming it is visible without separate tooling. The clearest current limitation is the lack of build caching (see Section 10) — teams with large dbt projects relying on Slim CI patterns should evaluate this carefully before migrating off dbt Cloud.
Enabling Native dbt Jobs — Admin and Workspace Setup
Two separate permission levels control access to native dbt Jobs: a tenant-level admin toggle, and workspace-level role requirements for individual users.
Tenant Admin Setup
- Open the Fabric Admin PortalA Fabric Tenant Administrator navigates to Settings → Admin Portal → Tenant settings.
- Locate Data Factory settingsFind the Data Factory section of tenant settings, which groups all Data Factory-related preview toggles.
- Enable “dbt jobs (preview)”Toggle the setting on for the entire organization, or scope it to specific security groups for a controlled rollout.
Workspace-Level Requirements
| Requirement | Detail |
|---|---|
| Workspace role | Contributor role or higher required to create and run dbt job items |
| Target permissions | Read and write permissions on the target Fabric Warehouse (or connected Azure SQL DB, PostgreSQL, Snowflake) |
| Fabric capacity | Workspace must be assigned to an active Fabric capacity — trial capacities are supported in preview |
dbt Job Runtime v1.0 — Supported Adapters
The current dbt job runtime is version 1.0, built on dbt Core v1.9. It includes four supported adapters at launch, with a fifth — Fabric Lakehouse — on the near-term roadmap.
| Adapter | Target System | Status |
|---|---|---|
| dbt-fabric | Fabric Warehouse (native) | Supported |
| dbt-sqlserver / dbt-fabric | Azure SQL Database | Supported |
| dbt-postgres | PostgreSQL | Supported |
| dbt-snowflake | Snowflake | Supported |
| dbt-fabric (Lakehouse) | Fabric Lakehouse | Coming soon — GA |
| Community / partner adapters | BigQuery, Redshift, Databricks, etc. | Not yet supported |
Support for public dbt packages (such as dbt_utils, dbt_expectations, codegen) was added to the native runtime in March 2026. Earlier preview releases did not support packages.yml dependencies — projects relying on community packages required workarounds before this update. Verify your runtime version supports the packages your project depends on.
Creating Your First dbt Job in Fabric
- Create a new dbt job itemIn your Fabric workspace, select New item → dbt job (preview). This creates a managed item that holds your dbt project configuration.
- Connect your dbt project sourceLink the dbt job to a Git-connected repository containing your dbt project, or upload project files directly. Git integration follows the same Fabric Git connection pattern used for other workspace items.
- Configure the target connectionSet the adapter and connection details for your target — Fabric Warehouse, Azure SQL Database, PostgreSQL, or Snowflake. Credentials are managed through Fabric connections, not stored in profiles.yml.
- Define the dbt command to runSpecify which dbt command executes —
dbt build,dbt run,dbt test, or a scoped selection likedbt run --select tag:daily. - Run and review resultsTrigger a manual run to validate the configuration. Review model execution status, test results, and any compilation errors in the run output before scheduling.
# Example dbt command configurations for a Fabric dbt job # Full project build (models + tests + snapshots) dbt build # Run only models tagged for daily refresh dbt run --select tag:daily # Run and test a specific mart and its dependencies dbt build --select +fct_orders # Run tests only, skip model execution dbt test --select tag:critical
Scope your dbt commands deliberately rather than running dbt build on the entire project every time. Because there is no build caching in the current preview (see Section 10), every run recompiles from source — a focused --select clause keeps run time and OneLake log output manageable, particularly relevant given the 1 MB log size limit covered in Section 07.
Scheduling and Monitoring dbt Jobs
dbt job items support the same scheduling mechanism as other Fabric Data Factory items — time-based triggers configured directly on the item, or invocation from a parent pipeline using the Fabric pipeline activity for dbt jobs.
Standalone Scheduling
Configure a recurring schedule directly on the dbt job item — hourly, daily, weekly, or a custom cron-style expression. This is the simplest pattern for a dbt project that runs independently of other Fabric workloads.
Pipeline-Orchestrated Scheduling
For dbt runs that must execute after upstream ingestion completes, add a dbt job activity to a Fabric Data Factory pipeline. This allows the dbt job to run conditionally — only after a Copy Data activity or a Lakehouse load succeeds — rather than on a fixed independent schedule.
| Pattern | Use When |
|---|---|
| Standalone schedule on dbt job item | dbt project is the entire workload — no upstream dependency to wait for |
| Pipeline activity, sequential | dbt run must wait for ingestion (Copy Data, Dataflow Gen2) to complete first |
| Pipeline activity, parallel branches | Multiple independent dbt jobs or other activities run concurrently after a shared trigger |
Monitoring for dbt job runs appears in the Fabric Monitoring Hub alongside pipeline runs, notebook runs, and Spark job runs — giving a single pane of glass for the entire orchestration layer rather than a separate dbt-specific monitoring surface.
Reviewing dbt Run Logs in OneLake
dbt job run logs — including model execution status, test results, and compiled SQL — are written to OneLake and accessible directly from the Fabric workspace. This means dbt run history is stored using the same governed, queryable storage layer as your data, rather than a separate logging system outside the Fabric security boundary.
What the Monitoring Interface Shows
Run-Level Visibility
- Overall run status — success, failure, partial success
- Duration per run and per model
- Trigger source — manual, scheduled, or pipeline-invoked
Model & Test Detail
- Per-model execution status and timing
- Test pass/fail results with failure row counts
- Model lineage visualization within the run
dbt job run output logs have a 1 MB size limit per run. Exceeding this limit causes the job to fail with error code 2001. Large projects producing verbose console output — particularly from extensive test failures or debug-level logging — can hit this limit. Scope dbt commands to specific model selections rather than running the entire project as one command, and avoid verbose flags unless actively debugging.
CI/CD Integration for Native dbt Jobs
Native dbt Jobs integrate with Fabric’s standard Git-based deployment workflow rather than requiring a separate dbt-specific CI/CD pipeline. The dbt project lives in Git, and Fabric’s deployment pipelines move the dbt job item between Dev, Test, and Production workspaces alongside other Fabric artifacts.
Recommended Branching Pattern
main → Production workspace (scheduled runs) release/* → Test workspace (validation before promotion) feature/* → Dev workspace (individual development) # Fabric deployment pipeline stages Dev workspace → [Deploy] → Test workspace → [Deploy] → Production workspace
Each Fabric deployment stage can target a different Warehouse connection — meaning the same dbt project, with environment-specific connection configuration, runs against Dev, Test, and Production Fabric Warehouses without code changes between environments. This mirrors the dev/prod target pattern dbt Cloud and CLI users already rely on, but managed through Fabric’s native deployment pipelines instead of dbt-specific target configuration.
Because the preview runtime does not support build caching or state artifacts (see Section 10), the state:modified Slim CI pattern documented for dbt Cloud and external CI/CD is not currently available within native dbt Jobs. Until dbt Fusion or a future runtime version adds artifact persistence, every job run executes the full selected scope from source.
dbt Fusion Roadmap — What’s Coming to Fabric
At the December 2025 native dbt Jobs preview launch, Microsoft and dbt Labs announced a close collaboration, with dbt Fusion integration in Microsoft Fabric planned for calendar year 2026. dbt Fusion is dbt Labs’ next-generation execution engine, built on a Rust foundation for significantly faster compilation and execution compared to the Python-based dbt Core engine currently powering the v1.0 runtime.
A March 2026 update from the Fabric blog reaffirmed the Microsoft and dbt Labs partnership as a continued strategic investment in the modern analytics stack, alongside the public package support release. The Fivetran and dbt Labs merger announced in 2026 does not change this roadmap — dbt Fusion integration into Fabric remains on track for later in 2026.
For teams currently evaluating native dbt Jobs, the practical implication is that build caching and state-based Slim CI capabilities — currently the most significant gap versus dbt Cloud — are expected to improve as dbt Fusion integration progresses through 2026. This is also relevant to the dbt Core v2.0 alpha announced separately at Snowflake Summit 2026, which shares the same Rust-based foundation as Fusion. See dbt Best Practices for SQL Transformation for the dbt Core v2.0 details.
Current Limitations of Native dbt Jobs
| Limitation | Detail |
|---|---|
| Public Preview | Feature behaviour, supported adapters, and pricing may change before GA. |
| No build caching | Every run compiles and executes fresh from source. dbt artifacts from previous runs are not retained for reuse. |
| No Slim CI / state:modified | State-based selective run patterns are not yet supported natively — a direct consequence of no build caching. |
| 1 MB log output limit | Run output exceeding 1 MB fails with error code 2001. Scope commands accordingly. |
| dbt Core v1.9 only | The job runtime is fixed at dbt Core v1.9. Projects requiring newer dbt features must wait for runtime updates. |
| Limited adapter support | Only Fabric Warehouse, Azure SQL Database, PostgreSQL, and Snowflake. Fabric Lakehouse adapter coming soon. No BigQuery, Redshift, Databricks, or community adapters yet. |
| No custom Python packages | Custom Python-based dbt packages or pre/post-hook scripts requiring non-dbt dependencies are not supported in the managed runtime sandbox. |
FAQ — Native dbt Jobs in Microsoft Fabric Data Factory
state:modified are not yet supported within the native runtime. Plan accordingly for projects with large numbers of models.Official Resources — Native dbt Jobs Documentation
Information is verified against official Microsoft Learn documentation and the Fabric blog through June 2026. Native dbt Jobs is in Public Preview — adapter support, runtime version, and limitations are subject to change before General Availability. UIG Data Lab is an independent publication, not affiliated with Microsoft Corporation or dbt Labs.