# Model Materializations

Materializations are strategies that determine how dbt™ persists your models in the data warehouse. Think of them as different ways to store and update your transformed data.

### Available Materialization Types

| Type                                                                                                                          | Description                                | Best For                                     |
| ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | -------------------------------------------- |
| [View](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/view-materialization)               | A saved query that runs on-demand          | Simple transformations, real-time data needs |
| [Table](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/table-materialization)             | A physically stored copy of your data      | BI tools, complex queries, frequent access   |
| [Incremental](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/incremental-materialization) | A table that updates only new/changed data | Large datasets, frequent updates             |
| [Ephemeral](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/ephemeral-materialization)     | Code that's injected into dependent models | Large datasets, frequent updates             |

{% hint style="info" %}
If you don't specify a materialization, dbt™ will create your model as a [view](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/view-materialization) by default.
{% endhint %}

***

### Configuring Materializations

You can configure materializations in two ways:

#### 1. Project Level (dbt\_project.yml)

{% code title="dbt\_project.yml" %}

```yaml
models:
  your_project:
    finance:
      +materialized: table    # All finance models as tables
    staging:
      +materialized: view     # All staging models as views
```

{% endcode %}

#### 2. Model Level (in .sql files)

```sql
{{ 
  config(
    materialized='table'
  )
}}

select * from ...
```

***

### Choosing the Right Materialization

Consider these factors when selecting a materialization:

| Factor              | Consideration                              |
| ------------------- | ------------------------------------------ |
| 🔄 Data Freshness   | How current does the data need to be?      |
| ⚡ Query Performance | How current does the data need to be?      |
| 📊 Data Volume      | How much data are you transforming?        |
| 💰 Resource Cost    | What are your compute/storage constraints? |

***

{% hint style="info" %}
Learn more about each materialization type in their dedicated documentation pages:

* [View Materialization](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/view-materialization)
* [Table Materialization](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/table-materialization)
* [Incremental Materialization](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/incremental-materialization)
* [Ephemeral Materialization](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/ephemeral-materialization)
  {% endhint %}
