Skip to main content

Supported features

Learn about the features supported by the dbt Fusion engine, including requirements and limitations.

Requirements

To use Fusion in your dbt project:

  • You're using a supported adapter and authentication method:
     BigQuery
     Databricks
    • Service Account / User Token
    • Native OAuth
     Redshift
    • Username / Password
    • IAM profile
     Snowflake
    • Username / Password
    • Native OAuth
    • External OAuth
    • Key pair using a modern PKCS#8 method
    • MFA
  • Have only SQL models defined in your project. Python models are not currently supported because Fusion cannot parse these to extract dependencies (refs) on other models.

Parity with dbt Core

Our goal is for the dbt Fusion Engine to support all capabilities of the dbt Core framework, and then some. Fusion already supports many of the capabilities in dbt Core v1.9, and we're working fast to add more.

Note that we have removed some deprecated features and introduced more rigorous validation of erroneous project code. Refer to the Upgrade guide for details.

Features and capabilities

  • dbt Fusion Engine (built on Rust) gives your team up to 30x faster performance and comes with different features depending on where you use it.
  • It powers both engine-level improvements (like faster compilation and incremental builds) and editor-level features (like IntelliSense, hover info, and inline errors) through the LSP.
  • To learn about the LSP features supported across the dbt platform, refer to About dbt LSP.
  • To stay up-to-date on the latest features and capabilities, check out the Fusion diaries.

Some features need you to configure static_analysis in order to work. If you're not sure what features are available, check out the following table.

✅ = Available | 🟡 = Partial/at compile-time only | ❌ = Not available | Coming soon = Not yet available

Category/Capabilitydbt Core
(self-hosted)
Fusion CLI
(self-hosted)
VS Code
+ Fusion
dbt platform*Requires
static_analysis
Engine performance
SQL rendering
SQL parsing and compilation (SQL understanding)
Uses the dbt Fusion Engine
(Built on Python)
Up to 30x faster parse/compile
Editor and development experience
IntelliSense/autocomplete/hover info
Inline errors (on save/in editor)🟡
Live CTE previews/compiled SQL view🟡
(Live CTE previews only)
Refactoring tools (rename model/column)Coming soon🟡
(Column refactoring only)
Go-to definition/references/macroComing soon🟡
(Column go-to definition only)
Column-level lineage (in editor)Coming soon
Developer compare changesComing soonComing soon
Platform and governance
Advanced CI compare changes
dbt Mesh
Efficient testing
State-aware orchestration (SAO)
Governance (PII/PHI tracking)Coming soon
CI/CD cost optimization (Slimmer CI)Coming soon

*Support for other dbt platform tools, like Semantic Layer and Catalog, is coming soon.

Additional considerations

Here are some additional considerations if using the Fusion CLI without the VS Code extension or the VS Code extension without the Fusion CLI:

  • Fusion CLI (binary)
    • Free to use and runs on the dbt Fusion Engine (distinct from dbt Core).
    • Benefits from Fusion engine’s performance for parse, compile, build, and run, but doesn't include visual and interactive features like autocomplete, hover insights, lineage, and more.
    • Requires profiles.yml only (no dbt_cloud.yml).
  • dbt VS Code extension
    • Free to use and runs on the dbt Fusion Engine; register your email within 14 days.
    • Benefits from Fusion engine’s performance for parse, compile, build, and run, and also includes visual and interactive features like autocomplete, hover insights, lineage, and more.
    • Capped at 15 users per organization. See the acceptable use policy for more information.
    • If you already have a dbt platform user account (even if a trial expired), sign in with the same email. Unlock or reset it if locked.
    • Requires both profiles.yml and dbt_cloud.yml files.

Limitations

If your project is using any of the features listed in the following table, you can use Fusion, but you won't be able to fully migrate all your workloads because you have:

  • Models that leverage specific materialization features may be unable to run or may be missing some desirable configurations.
  • Tooling that expects dbt Core's exact log output. Fusion's logging system is currently unstable and incomplete.
  • Workflows built around complementary features of the dbt platform (like model-level notifications, Advanced CI, and Semantic Layer) that Fusion does not yet support.
  • When using the dbt VS Code extension in Cursor, lineage visualization works best in Editor mode and doesn't render in Agent mode. If you're working in Agent mode and need to view lineage, switch to Editor mode to access the full lineage tab functionality.
note

We have been moving quickly to implement many of these features ahead of General Availability. Read more about the path to GA, and track our progress in the dbt-fusion milestones.

Feature
This will affect you if...
GitHub issue
--store-failuresYou use the --store-failures feature of dbt test to materialize the results of test queries in audit tables.dbt-fusion#15
--fail-fastYou use the --fail-fast flag to interrupt runs at the first sign of failure.dbt-fusion#18
microbatch incremental strategyYou are configuring models with materializations other than view, table, or incremental. You cannot yet run those models with Fusion, but you can run models using the standard materializations.dbt-fusion#12
--warn-error, --warn-error-optionsYou are upgrading all/specific warnings to errors, or silencing specific warnings, by configuring the warning event names. Fusion's logging system is incomplete and unstable, and so specific event names are likely to change.dbt-fusion#8
Advanced CI ("compare changes")You use the "compare changes" feature of Advanced CI in the dbt platform.dbt-fusion#26
Model governance (polish and feature completeness)If you have models with a set deprecation_date, Fusion does not yet raise warnings about upcoming/past deprecations. Fusion’s logging system is currently incomplete and unstable.dbt-fusion#25
Iceberg support (BigQuery)You have configured models to be materialized as Iceberg tables, or you are defining catalogs in your BigQuery project to configure the external write location of Iceberg models. Fusion doesn't support these model configurations for BigQuery.dbt-fusion#947
Model-level notificationsYou are leveraging the dbt platform’s capabilities for model-level notifications in your workflows. Fusion currently supports job-level notifications.dbt-fusion#1103
retryFusion does not yet support the dbt retry CLI command, or "rerun failed job from point of failure." In deployment environments, using state-aware orchestration, you can simply rerun the job and Fusion will skip models that do not have fresh data or have not met their freshness.build_after threshold since the last builddbt-fusion#21
state:modified.<subselector> methodsYou rely on granular "subselectors" because state:modified is insufficiently precise. Fusion’s state detection is smarter out-of-the-box; give it a try!dbt-fusion#33
dbt-docs documentation site and "docs generate/serve" commandsFusion does not yet support a local experience for generating, hosting, and viewing documentation, as dbt Core does via dbt-docs (static HTML site). We intend to support such an experience by GA. If you need to generate and host local documentation, you should continue generating the catalog by running dbt docs generate with dbt Core.dbt-fusion#9
Programmatic invocationsYou use dbt Core’s Python API for triggering invocations and registering callbacks on events/logs. Note that Fusion’s logging system is incomplete and unstable.dbt-fusion#10
Semantic Layer: development + saved_query exportsIf you actively develop new semantic objects (semantic_models, metrics, saved_queries), or change existing objects in your dbt project, you should do this with dbt Core rather than Fusion, because Fusion does not yet produce semantic_manifest.json (the interface to MetricFlow). If you use the "exports" feature of saved queries, this is not yet supported in Fusion, so you should continue running your jobs on dbt Core.dbt-fusion#40
Logging systemYou have scripts, workflows, or other integrations that rely on specific log messages (structured or plaintext). At present, Fusion’s logging system is incomplete and unstable. It is also not our goal to provide full conformance between dbt Core logging and Fusion logging.dbt-fusion#7
Linting via SQLFluffYou use SQLFluff for linting in your development or CI workflows. Eventually, we plan to build linting support into Fusion directly, since the engine has SQL comprehension capabilities. In the meantime, you can continue using the dbt Core + SQLFluff integration. dbt Cloud will do exactly this in the Cloud IDE / Studio + CI jobs.dbt-fusion#11
Active and auto exposuresYou rely on auto exposures to pull downstream assets (like Tableau dashboards) into dbt lineage, or on active exposures to proactively refresh downstream assets (like Tableau extracts) during scheduled jobs.

Fusion doesn't support active and auto exposures yet.
dbt-fusion#704
{{ graph }} - raw_sql attribute (e.g. specific models in dbt_project_evaluator)You access the raw_sql / raw_code attribute of the {{ graph }} context variable, which Fusion stubs with an empty value at runtime. If you access this attribute, your code will not fail, but it will return different results. This is used in three quality checks within the dbt_project_evaluator package. We intend to find a more-performant mechanism for Fusion to provide this information in the future.Coming soon
Externally orchestrated jobsYou use a third-party orchestrator (like Astronomer-Cosmos) that depends on a dbt manifest produced by dbt Core. Many of these integrations don't yet support manifests generated by Fusion. However, Fusion does support external orchestrators that integrate through the dbt platform run job API.Coming soon

Package support

To determine if a package is compatible with the dbt Fusion Engine, visit the dbt package hub and review the package's require-dbt-version configuration.

  • Packages with a require-dbt-version that equals or contains 2.0.0 are compatible with Fusion. For example, require-dbt-version: ">=1.10.0,<3.0.0".

    Even if a package doesn't reflect compatibility in the package hub, it may still work with Fusion. Work with package maintainers to track updates, and thoroughly test packages that aren't clearly compatible before deploying.

  • Package maintainers who would like to make their package compatible with Fusion can refer to the Fusion package upgrade guide for instructions.

Fivetran package considerations:

  • The Fivetran source and transformation packages have been combined into a single package.
  • If you manually installed source packages like fivetran/github_source, you need to ensure fivetran/github is installed and deactivate the transformation models.

Package compatibility messages

Inconsistent Fusion warnings and dbt-autofix logs

Fusion warnings and dbt-autofix logs may show different messages about package compatibility.

If you use dbt-autofix while upgrading to Fusion in the Studio IDE or dbt VS Code extension, you may see different messages about package compatibility between dbt-autofix and Fusion warnings.

Here's why:

  • Fusion warnings are emitted based on a package's require-dbt-version and whether require-dbt-version contains 2.0.0.
  • Some packages are already Fusion-compatible even though package maintainers haven't yet updated require-dbt-version.
  • dbt-autofix knows about these compatible packages and will not try to upgrade a package that it knows is already compatible.

This means that even if you see a Fusion warning for a package that dbt-autofix identifies as compatible, you don't need to change the package.

The message discrepancy is temporary while we implement and roll out dbt-autofix's enhanced compatibility detection to Fusion warnings.

Here's an example of a Fusion warning in the Studio IDE that says a package isn't compatible with Fusion but dbt-autofix indicates it is compatible:

dbt1065: Package 'dbt_utils' requires dbt version [>=1.30,<2.0.0], but current version is 2.0.0-preview.72. This package may not be compatible with your dbt version. dbt(1065) [Ln 1, Col 1]

More information about Fusion

Fusion marks a significant update to dbt. While many of the workflows you've grown accustomed to remain unchanged, there are a lot of new ideas, and a lot of old ones going away. The following is a list of the full scope of our current release of the Fusion engine, including implementation, installation, deprecations, and limitations:

Was this page helpful?

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

0