0Pricing
SQL Academy · Ders

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 1

dbt'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 + test

Kaynaklar

Kaynaklar, ham tableleri belgeler ve bunlara başvurur:

# models/sources.yml
sources:
  - name: raw
    database: warehouse
    tables:
      - name: orders

Artı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_id

Anlı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

  1. DBT (Data Build Tool) Temelleri
  2. SQLFluff ve Kod Denetleme
  3. SQL Testleri: dbt testleri, Great Expectations
  4. Şema Değişiklikleri için CI (GitHub Actions)
← SQL Academy Sayfasına Dön