DBT (Data Build Tool) Temelleri
Ambar verilerini dbt içinde refs, sources ve artımlı modellerle SELECT ifadeleri olarak modelleyin.
DBT (Data Build Tool) Temelleri, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.
dbt Nedir
dbt, ELT'nin "T" harfidir: SELECT ifadelerini kullanarak verileri ambarınızın içinde dönüştürür. Modeller (SELECT ifadeleri) tanımlarsınız; dbt bunları tablo veya görünüm olarak gerçekleştirir, bağımlılıkları yönetir ve sınamaları çalıştırır.
dbt Neden Kullanılır
dbt'den önce dönüşümler, geçici SQL betiklerinde, saklı yordamlarla veya Python işlerinde bulunuyordu. dbt şunları sağlar:
- Git'te sürümlenen, kod olarak modüler SQL
- Elle sıralama yerine bağımlılık grafiği (ref())
- Birinci sınıf nesneler olarak sınamalar
- Belge oluşturma
Proje Yapısı
Bir dbt projesi:
my_project/
dbt_project.yml
models/
staging/
stg_orders.sql
marts/
fct_revenue.sql
tests/
seeds/
macros/Model Dosyası
Bir .sql dosyasında yalnızca bir SELECT:
-- models/staging/stg_orders.sql
{{ config(materialized='view') }}
SELECT
id,
user_id,
total,
created_at
FROM {{ source('raw', 'orders') }}Gerçekleştirme Türleri
- view — dbt bir VIEW oluşturur; güncellemesi hızlı, sorgulaması daha yavaştır
- table — tam tablo; her çalıştırmada yeniden oluşturulur
- incremental — yalnızca yeni satırlar eklenir
- ephemeral — satır içine yerleştirilmiş CTE, veritabanı nesnesi yoktur
ref() ve Bağımlılıklar
Bir modele başka bir modelden başvurun:
-- models/marts/fct_revenue.sql
SELECT
date_trunc('day', created_at) AS day,
SUM(total) AS revenue
FROM {{ ref('stg_orders') }}
GROUP BY 1dbt'yi Çalıştırma
Projenin tamamını oluşturun:
dbt run # build all models
dbt run --select staging # subset
dbt run --select +fct_revenue # this model and upstream
dbt build # run + testKaynaklar
Kaynaklar, ham tableleri belgeler ve bunlara başvurur:
# models/sources.yml
sources:
- name: raw
database: warehouse
tables:
- name: ordersArtımlı Modeller
Çok büyük olgu tabloları için:
{{ 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 Şablonlama
dbt, SQL + Jinja kullanır; bu nedenle SQL'i döngülerle ve koşullu olarak oluşturabilirsiniz:
{% 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_idAnlık Görüntüler
Yavaş değişen boyutlar otomatik olarak yakalanır:
{% snapshot user_snapshot %}
{{ config(
target_schema='snapshots',
unique_key='id',
strategy='timestamp',
updated_at='updated_at',
) }}
SELECT * FROM {{ source('raw','users') }}
{% endsnapshot %}Belgeleme
Modellerinizden ve YAML açıklamalarınızdan taranabilir belgeleri otomatik olarak oluşturun:
dbt docs generate
dbt docs serve # opens browserÖzet
dbt, veri dönüşümlerini SQL kodu olarak modeller.
- Model = .sql dosyasındaki SELECT
- ref(), DAG'yi oluşturur
- Gerçekleştirmeler: view / table / incremental / ephemeral
- Sınamalar ve belgeler birinci sınıf özelliklerdir
Hızlı Kontrol
dbt'nin {{ ref('stg_orders') }} ifadesi ne yapar?
Sıkça Sorulan Sorular
“DBT (Data Build Tool) Temelleri” dersi ücretsiz mi?
Evet — “DBT (Data Build Tool) Temelleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.
“DBT (Data Build Tool) Temelleri” dersinde ne öğreneceğim?
Ambar verilerini dbt içinde refs, sources ve artımlı modellerle SELECT ifadeleri olarak modelleyin. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
SQL Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“DBT (Data Build Tool) Temelleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- DBT (Data Build Tool) Temelleri
- SQLFluff ve Kod Denetleme
- SQL Testleri: dbt testleri, Great Expectations
- Şema Değişiklikleri için CI (GitHub Actions)