The dbt adapter for Firebolt. dbt-firebolt offers the following benefits to Firebolt customers:
- SQL-based data transformation
- Life cycle management for native Firebolt objects (fact tables, dimension tables, primary indexes, aggregating indexes, join indexes, etc.)
- Declarative, version-controlled data modeling
- Auto-generated data lineage and documentation
dbt-firebolt supports dbt 1.0+.
Install the dbt-firebolt package from PyPI:
pip install dbt-firebolt
To connect to Firebolt from dbt, you'll need to add a new Firebolt profile to your profiles.yml
file. Please see the dbt documentation on Firebolt profiles to set it up.
For the best experience we recommend that you make the following changes to your dbt project:
The table below shows which dbt and Firebolt features are supported by the adapter. dbt-firebolt is under active development and will be gradually unlocking more features over time.
Feature | Supported |
---|---|
Table materializations | ✅ |
Ephemeral materializations | ✅ |
View materializations | ✅ |
Incremental materializations - append | ✅ |
Incremental materializations - insert_overwrite | ✅ |
Incremental materializations - delete+insert | ✅ |
Incremental materializations - merge | ❌ |
Snapshots | ✅ |
Seeds | ✅ |
Tests | ✅ |
Documentation | ✅ |
Custom schemas | ❌ (see workaround) |
Custom databases | ❌ |
Source freshness | ✅ |
External tables | ✅ |
Primary indexes | ✅ |
Aggregating indexes | ✅ |
Join indexes | ❌ (syntax supported, but not effective) |
More on constraints in Platform constraint support
Constraint type | Support | Platform enforcement |
---|---|---|
not_null | ✅ Supported | ✅ Enforced |
primary_key | ❌ Not Supported | ❌ Not enforced |
foreign_key | ❌ Not Supported | ❌ Not enforced |
unique | ✅ Supported | ❌ Not enforced |
check | ❌ Not supported | ❌ Not enforced |
For information on configuring dbt models and external tables for Firebolt, see the dbt documentation for Firebolt configurations.
See: CONTRIBUTING.MD
See our changelog or our release history for more information.