Örnek sorular
Pe Dbt Models Materializations TestsZorluk 1
dbt'de bir model, sabit tablo adı yerine {{ ref('orders') }} kullandığında, modelin DAG içindeki konumunu ne belirler?
- aGeliştiricinin yazdığı manuel bir
depends_on bloğu - bModel dosyalarının proje içindeki sırası
- cdbt'nin ref() çağrılarından kenarları otomatik kurması✓
- dGeliştiricinin elle tuttuğu ayrı bir bağımlılık graf dosyası
Açıklama:dbt her modeldeki ref()/source() çağrısını ayrıştırır ve DAG'ı bu çağrılardan kurar — manuel bağımlılık tanımlama adımı yoktur.
Pe Dbt Models Materializations TestsZorluk 2
Belirli bir model için dbt compile ile dbt run arasındaki temel fark nedir?
- a
dbt compile SQL'i warehouse'a karşı çalıştırır; dbt run sadece Jinja'yı render eder - b
dbt compile sadece SQL render eder; dbt run ayrıca çalıştırır✓ - cİkisi de SQL çalıştırır, ama farklı şemalara karşı
- d
dbt compile sadece test'lerde çalışır; dbt run sadece modellerde çalışır
Açıklama:dbt compile Jinja/makroları düz SQL'e render eder, veritabanına hiçbir şey göndermez. dbt run aynı render işlemini yapar ve ardından oluşan SQL'i fiilen çalıştırır.
Pe Dbt Models Materializations TestsZorluk 1
dbt'nin view materialization'ı warehouse'da ne oluşturur?
- aHer sorguda modelin SELECT'ini yeniden çalıştıran bir veritabanı view'ı✓
- bBir kere doldurulup asla yenilenmeyen fiziksel bir tablo
- cdbt'nin kendi metadata'sında tutulan önbelleğe alınmış bir sonuç kümesi
- ddbt runner'ın yerel diskinde geçici bir dosya
Açıklama:view materialization'ı modelin SELECT'ini CREATE VIEW içine sarar, veri saklanmaz — her downstream sorgu SELECT'i yeniden çalıştırır.
Pe Dbt Models Materializations TestsZorluk 2
materialized='table' olarak ayarlanmış bir dbt modeli her dbt run'da ne olur?
- aYalnızca son çalıştırmadan beri değişen satırlar eklenir
- bTablo zaten varsa dbt onu atlar
- cİlk build'den sonra otomatik olarak view'a dönüştürülür
- dTüm sonuç yeniden hesaplanıp tablo yeniden kurulur✓
Açıklama:table materialization'ı her seferinde tüm SELECT'i yeniden çalıştırır ve tabloyu tamamen yeniden kurar — kısmi yenileme yoktur.
Pe Dbt Models Materializations TestsZorluk 2
dbt'nin incremental materialization'ının temel fikri nedir?
- aİkinci çalıştırmadan sonra tabloyu bir view ile değiştirir
- bİlk çalıştırmadan sonra yalnızca yeni/değişen satır işlenir✓
- cHer satırın tüm geçmiş versiyonlarını otomatik olarak saklar
- dDoğrulama için modelin SQL'ini iki kere çalıştırır
Açıklama:Incremental modeller, ilk tam build'den sonraki koşularda tüm veriyi yeniden hesaplamak yerine yalnızca yeni/değişen satırları işleyip yüklemek üzere tasarlanmıştır.
Pe Dbt Models Materializations TestsZorluk 3
dbt'nin ephemeral materialization'ının view/table/incremental'a göre ayırt edici özelliği nedir?
- a
unique_key'i destekleyen tek materialization'dır - bVeriyi doğrudan ayrı bir arşiv şemasına yazar
- cKendi veritabanı nesnesi olmaz, CTE olarak gömülür✓
- dMERGE deyimini destekleyen bir warehouse gerektirir
Açıklama:Ephemeral bir modelin warehouse'da tablosu ya da view'ı hiç yoktur; dbt onun derlenmiş SQL'ini kendisine referans veren her yere CTE olarak gömer.