> ## Documentation Index
> Fetch the complete documentation index at: https://firebolt-aggregate-helm-docs-pr-4.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Use dbt (Data Build Tool) with Firebolt Core to manage and execute SQL-based data transformations.

# dbt

<img src="https://mintcdn.com/firebolt-aggregate-helm-docs-pr-4/XtVBRhHFZ-5lm4mx/assets/images/dbt-logo.png?fit=max&auto=format&n=XtVBRhHFZ-5lm4mx&q=85&s=ac507fc7598c2075146f4fe745736681" alt="DBT" width="536" height="256" data-path="assets/images/dbt-logo.png" />

[DBT](https://www.getdbt.com), or Data Build Tool, is a framework designed for managing and executing data transformations within modern data warehousing architectures. It facilitates the development and deployment of SQL-based transformations in a version-controlled environment, enabling collaboration and ensuring reproducibility of data pipelines. DBT streamlines the process of transforming raw data into analytics-ready datasets, accelerating the delivery of insights.

A detailed walkthrough can be found in Firebolt's DBT documentation.

## Prerequisites

You will need the following:

* Python 3.9+.
* `dbt-core` and `dbt-firebolt>=1.10.0` Python packages installed.
* Firebolt Core running locally.

## Connection

DBT uses a `profiles.yml` file to store the connection information.
The usual place to create this file on Mac and Linux is `~/.dbt/profiles.yml`.

Here's a minimal `profiles.yml` configuration needed to connect to Fireoblt Core:

```yaml theme={null}
jaffle-shop:
target: core
outputs:
    core:
      type: firebolt
      url: "<core-url>"
      database: "<database-name>"
      schema: "<table-prefix>"
```

Replace the placeholders with your account's information:

`<core-url>` The url where Firebolt Core is running. If using a default local dockerised deployment then set this parameter to `http://localhost::3473`.

`<database-name>` With your database in Firebolt Core. If you want to connect to the default database use `firebolt` here.

`<table-prefix>` is a prefix prepended to your table names. Since Firebolt does not support custom schemas, this prefix serves as a [workaround](https://docs.getdbt.com/docs/core/connect-data-platform/firebolt-setup#supporting-concurrent-development) to prevent table name conflicts during concurrent development.

## Further reading

* [Firebolt DBT documentation](/guides/integrations/connecting-with-dbt)
* [GitHub repository](https://github.com/firebolt-db/dbt-firebolt)
* [Configuring Firebolt-specific features](https://docs.getdbt.com/reference/resource-configs/firebolt-configs).
