DBT:n (Data Build Tool) perusteet
Mallinna tietovaraston tiedot dbt:n SELECT-lausekkeina käyttäen refs- ja sources-viittauksia sekä inkrementaalisia malleja.
DBT:n (Data Build Tool) perusteet on ilmainen SQL Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu SQL Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. SQL Academy-kurssilla on yhteensä 4 oppituntia.
Mikä dbt on
dbt on ELT:n ”T”: se muuntaa tietoja tietovarastossa SELECT-lauseiden avulla. Määrittelette malleja eli SELECT-lauseita, ja dbt materialisoi ne tauluiksi tai näkymiksi, hallitsee riippuvuuksia ja suorittaa testit.
Miksi dbt
Ennen dbt:tä muunnokset sijaitsivat tilapäisissä SQL-komentosarjoissa, tallennetuissa proseduurikutsuissa tai Python-töissä. dbt tuo mukanaan:
- Modulaarisen SQL:n koodina, versionhallittuna Gitissä
- Riippuvuusgraafin (ref()) manuaalisen järjestyksen sijaan
- Testit ensiluokkaisina objekteina
- Dokumentaation luonnin
Projektin rakenne
dbt-projekti:
my_project/
dbt_project.yml
models/
staging/
stg_orders.sql
marts/
fct_revenue.sql
tests/
seeds/
macros/Mallitiedosto
Pelkkä SELECT .sql-tiedostossa:
-- models/staging/stg_orders.sql
{{ config(materialized='view') }}
SELECT
id,
user_id,
total,
created_at
FROM {{ source('raw', 'orders') }}Materialisointityypit
- view — dbt luo VIEW-näkymän; nopea päivittää, hitaampi kysellä
- table — kokonainen taulu, joka rakennetaan uudelleen jokaisella ajokerralla
- incremental — vain uudet rivit lisätään
- ephemeral — sisällytetty CTE, ei tietokantaobjektia
ref() ja riippuvuudet
Viitatkaa yhteen malliin toisesta mallista:
-- models/marts/fct_revenue.sql
SELECT
date_trunc('day', created_at) AS day,
SUM(total) AS revenue
FROM {{ ref('stg_orders') }}
GROUP BY 1dbt:n suorittaminen
Rakentakaa koko projekti:
dbt run # build all models
dbt run --select staging # subset
dbt run --select +fct_revenue # this model and upstream
dbt build # run + testLähteet
Lähteet dokumentoivat raakadataa sisältävät taulut ja viittaavat niihin:
# models/sources.yml
sources:
- name: raw
database: warehouse
tables:
- name: ordersInkrementaaliset mallit
Suuria faktatauluja varten:
{{ config(materialized='incremental', unique_key='id') }}
SELECT *
FROM {{ source('raw','orders') }}
{% if is_incremental() %}
WHERE created_at > (SELECT MAX(created_at) FROM {{ this }})
{% endif %}Jinja-mallinnus
dbt on SQL:ää ja Jinjaa, joten SQL:ää voi tuottaa silmukoilla ja ehtolauseilla:
{% set tiers = ['free','pro','enterprise'] %}
SELECT user_id,
{% for t in tiers %}
COUNT(*) FILTER (WHERE tier = '{{ t }}') AS {{ t }}_count {% if not loop.last %},{% endif %}
{% endfor %}
FROM users GROUP BY user_idSnapshotit
Hitaasti muuttuvat dimensiot tallennetaan automaattisesti:
{% snapshot user_snapshot %}
{{ config(
target_schema='snapshots',
unique_key='id',
strategy='timestamp',
updated_at='updated_at',
) }}
SELECT * FROM {{ source('raw','users') }}
{% endsnapshot %}Dokumentaatio
Luokaa malleista ja YAML-kuvauksista automaattisesti selattava dokumentaatio:
dbt docs generate
dbt docs serve # opens browserKertaus
dbt mallintaa tietojen muunnokset SQL-koodina.
- Malli = SELECT .sql-tiedostossa
- ref() rakentaa suunnatun asyklisen graafin
- Materialisoinnit: view / table / incremental / ephemeral
- Testit ja dokumentaatio ensiluokkaisina ominaisuuksina
Pikatarkistus
Mitä dbt:n {{ ref('stg_orders') }} tekee?
Opi SQL tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 46
- Oppitunnit
- 183
Usein kysytyt kysymykset
Onko oppitunti ”DBT:n (Data Build Tool) perusteet” ilmainen?
Kyllä – oppitunnin ”DBT:n (Data Build Tool) perusteet” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko SQL Academy-kurssin, päivitä CoddyKit PROhon. SQL Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”DBT:n (Data Build Tool) perusteet”?
Mallinna tietovaraston tiedot dbt:n SELECT-lausekkeina käyttäen refs- ja sources-viittauksia sekä inkrementaalisia malleja. Harjoittelet SQL Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni SQL Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin SQL Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”DBT:n (Data Build Tool) perusteet”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä SQL Academy-oppitunnilla?
Kyllä. Jokainen SQL Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- DBT:n (Data Build Tool) perusteet
- SQLFluff ja linttaus
- SQL:n testaaminen: dbt-testit ja Great Expectations
- Skeemamuutosten CI (GitHub Actions)