hands-on lab

Create and Execute Your First dbt Models

Up to 1h
Get guided in a real environmentPractice with a step-by-step scenario in a real, provisioned environment.
Learn and validateUse validations to check your solutions every step of the way.
See resultsTrack your knowledge and monitor your progress.
Lab description

Models are the core components of dbt. dbt models are the materialization of the data modeling and transformations you want to apply to data. So, dbt designed them in a simple way to let data engineers be able to work on them with no headaches.

When working with models, you can start modeling data from sources, or you can start transforming data available in other dbt models you have already defined. To let dbt understand which data start from, you use the ref and source macros. 

When applying transformations to your data, you may want to define multiple steps of transformations, and you may want some transformations to be materialized in a different way than others. Because of that, dbt allows you to materialize models in different ways such as views, tables, and with no materialization (ephemeral). The last one means that the model you are building is only available when dbt is executing, so no data is persisted on the database.

Learning Objectives

Upon completion of this lab, you will be able to:

  • Understand how to work with dbt models
  • Create and execute dbt models leveraging sources and other models

Intended Audience

  • Data engineers with a focus on data modeling and transformations methodologies
  • Developers who need a powerful tool to get insights from raw data


To get the most from this lab, you should have basic knowledge of dbt. To get ready, you can use the following labs:

About the author
Learning paths

Stefano studies Computer Science and is passionate about technology. He loves working with Cloud services and learning all the best practices for them. Google Cloud Platform and Amazon Web Services are the cloud providers he prefers. He is a Google Cloud Certified Associate Cloud Engineer. Node.js is the programming language he always uses to code. When he's not involved in studying or working, Stefano loves riding his motorbike and exploring new places.

Covered topics
Lab steps
Connecting to the dbt Web IDE
Create a dbt Model Based on Sources
Create a dbt Model Based on Existing Model
Building the dbt Models