https://github.com/firebolt-db/dbt-firebolt
The dbt adapter for Firebolt
https://github.com/firebolt-db/dbt-firebolt
data-modeling data-warehouse dbt elt firebolt transformation
Last synced: about 2 months ago
JSON representation
The dbt adapter for Firebolt
- Host: GitHub
- URL: https://github.com/firebolt-db/dbt-firebolt
- Owner: firebolt-db
- License: apache-2.0
- Created: 2021-10-20T18:20:18.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-16T10:57:35.000Z (5 months ago)
- Last Synced: 2025-04-29T21:18:32.167Z (about 2 months ago)
- Topics: data-modeling, data-warehouse, dbt, elt, firebolt, transformation
- Language: Python
- Homepage:
- Size: 17.5 MB
- Stars: 29
- Watchers: 5
- Forks: 11
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.MD
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# dbt-firebolt
The [dbt](https://www.getdbt.com) adapter for [Firebolt](https://www.firebolt.io/). 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 documentationdbt-firebolt supports dbt 1.0+.
## Installation
Install the dbt-firebolt package from PyPI:
```
pip install dbt-firebolt
```## Setup
#### Connecting to 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](https://docs.getdbt.com/reference/warehouse-profiles/firebolt-profile#connecting-to-firebolt) to set it up.
#### Setup Recommendations
For the best experience we recommend that you make the following changes to your dbt project:
* [Set an explicit value for `quote_columns`](https://docs.getdbt.com/reference/resource-configs/firebolt-configs#setting-quote_columns)
* [Add the `generate_alias_name` macro to your project](https://docs.getdbt.com/reference/warehouse-profiles/firebolt-profile#supporting-concurrent-development)## Feature Support
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 | :white_check_mark: |
| Ephemeral materializations | :white_check_mark: |
| View materializations | :white_check_mark: |
| Incremental materializations - append | :white_check_mark: |
| Incremental materializations - insert_overwrite | :white_check_mark: |
| Incremental materializations - delete+insert | :white_check_mark: |
| Incremental materializations - merge | :x: |
| Snapshots | :white_check_mark: |
| Seeds | :white_check_mark: |
| Tests | :white_check_mark: |
| Documentation | :white_check_mark: |
| Custom schemas | :x: (see [workaround](https://docs.getdbt.com/reference/warehouse-profiles/firebolt-profile#supporting-concurrent-development)) |
| Custom databases | :x: |
| Source freshness | :white_check_mark: |
| External tables | :white_check_mark: |
| Primary indexes | :white_check_mark: |
| Aggregating indexes | :white_check_mark: |
| Join indexes | :x: (syntax supported, but not effective) |## Constraints support
More on constraints in [Platform constraint support](https://docs.getdbt.com/docs/collaborate/govern/model-contracts#platform-constraint-support)
| Constraint type | Support | Platform enforcement |
|-----------------|---------|----------------------|
| not_null | :white_check_mark: Supported | :white_check_mark: Enforced |
| primary_key | :x: Not Supported | :x: Not enforced |
| foreign_key | :x: Not Supported | :x: Not enforced |
| unique | :white_check_mark: Supported | :x: Not enforced |
| check | :x: Not supported | :x: Not enforced |## Using dbt-firebolt
For information on configuring dbt models and external tables for Firebolt, see the [dbt documentation for Firebolt configurations](https://docs.getdbt.com/reference/resource-configs/firebolt-configs).
## Contributing
See: [CONTRIBUTING.MD](https://github.com/firebolt-db/dbt-firebolt/tree/main/CONTRIBUTING.MD)
## Changelog
See our [changelog](CHANGELOG.md) or our release history for more information.