_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
References Technologies Blog Know-how Tools
About Collaboration Careers
CS EN
Let's talk

dbt — Data Transformation in Warehouse Using SQL

06. 11. 2022 1 min read intermediate

dbt revolutionized working with data. SQL models that dbt compiles and runs — versioning, testing and documentation as code.

What is dbt

dbt transforms data in warehouse using SELECT statements. Takes care of DDL, dependencies, tests and documentation.

dbt Models

-- models/staging/stg_orders.sql
WITH source AS (
    SELECT * FROM {{ source('raw', 'orders') }}
)
SELECT
    id AS order_id,
    user_id AS customer_id,
    created_at AS order_date,
    amount_cents / 100.0 AS amount_eur,
    status
FROM source
WHERE status != 'test'

Tests

# schema.yml
version: 2
models:
  - name: stg_orders
    columns:
      - name: order_id
        tests: [unique, not_null]
      - name: amount_eur
        tests: [not_null]

Incremental Models

{{ config(materialized='incremental', unique_key='order_id') }}

SELECT * FROM {{ ref('stg_orders') }}
{% if is_incremental() %}
WHERE order_date > (SELECT MAX(order_date) FROM {{ this }})
{% endif %}

Summary

dbt is standard for warehouse transformations. SQL models, tests and documentation as code.

dbtsqltransformationanalytics engineering
Share:

CORE SYSTEMS tým

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.