Base models - base_[sourcename]_[tablename].sql#
Firstly, we start with creation of base models, which are stored in models/staging/[sourcename]/base folder. No transformation (joins) are performed in this stage, only renaming or recasting of columns. Simply put: one source table = one base model.
Use {{ source() }} jinja function
💡 Select from source tables in your models using the {{ source() }} function, which is helping define the lineage of your data.
select * from {{ source(source_name, table_name) }}
Values for each data source are defined in _src_[sourcename].yml which was done in the previous step.
source_name: Thename:defined under asources:keytable_name: Thename:defined under atables:key
📝 example for base_jaffle_shop_customers.sql
with
source as (
select * from {{ source('jaffle_shop','customers') }}
),
customers as (
select
id as customer_id,
first_name,
last_name
from source
)
select * from customers
To create base models in database, run dbt run command in terminal
