What are the different types of materializations in DBT?

Materilizations – define how a model persists or does not persist data.

Generally a model is just SQL, so based on the type of materialization you choose for a model, then objects are created to utilize that model. For example, a view model always creates a view based on the SQL in the model.

Here is a link to good documentation on the subject:

https://docs.getdbt.com/docs/build/materializations

To summarize the link above here are the general types:

  • table – do this when you are querying data over and over or just want to persist the data returned by the query as is – creates a table
  • view – quick queries and transformations – not repeated many times – creates a view
  • incremental – appends new records to existing tables
  • ephemeral – usually used with CTE Common Table Expression – in otherwords – no materialization SQL just specified in model file
  • materialized view – creates Materialized View

Note: Materializations can be specified in the project.yml file (by folder etc) or in each model in a “config” section.

Here’s how this kind of model – that is not necessarily intuitive came into being:

https://docs.getdbt.com/community/resources/viewpoint

Scroll to Top