dataiotech Labs
dbaguidedataxtoolsdataopspheredataopsphereDataOps
dataopsphere.com
dbt & CI/CD
12 dk / 12 min
2026-09-15

Zero-Downtime dbt Deploy: Slim CI ile Kesintisiz Üretim

Büyük ölçekli kurumsal veri ambarlarında dbt modellerini dakikalar içinde test edip sıfır kesintiyle canlıya almanın yöntemi: State deferral, AST graph diffing ve geçici ephemeral PR şeması mimarisi.

#dbt#Slim CI#GitHub Actions#DataOps#Snowflake#BigQuery#Cost Optimization

1. Kurumsal Veri Ambarlarında CI/CD Tıkanıklığı ve Maliyet Krizi

Kurumsal ölçekli modern veri ambarlarında (Snowflake, Google BigQuery, Databricks, Redshift) 500'den fazla dbt modeli bulunması sıradan bir durumdur. Veri mühendisleri veya analistler yeni bir özellik eklediğinde ya da tek bir SQL modelinde filtreleme mantığını güncellediğinde, tüm projeyi sıfırdan derleyip çalıştırmak şu kritik krizlere yol açar:

  • Aşırı Uzun Pipeline Süreleri: 500+ modelin full rebuild edilmesi 45 ila 90 dakika sürebilir.
  • Yüksek Bulut İşlem Maliyetleri: Her PR için tüm tarihsel tabloların baştan taranması binlerce dolarlık gereksiz warehouse kredisi harcar.
  • Deploy Kuyrukları: Uzun süren CI kuyrukları geliştirme hızını yavaşlatır.

2. Slim CI ve State Deferral'ın Çalışma Mantığı

Slim CI, dbt'nin state:modified+ seçicisi ve --defer bayrağıyla çalışan akıllı bir grafik farkı (DAG diff) optimizasyonudur.

  1. 1
    Üretim Durumunun İndirilmesi: CI pipeline'ı başladığında, ana daldaki (main) son başarılı derleme sonucu oluşan manifest.json dosyası S3 veya GCS deposundan indirilir.
  2. 2
    Değişen Düğümlerin Tespiti: dbt derleyicisi, mevcut PR dalındaki kod ile üretim manifestini karşılaştırarak yalnızca değiştirilen modelleri ve direct downstream bağımlılıkları işaretler.
  3. 3
    Upstream Modellerin Ertelenmesi: Değişmeyen upstream tablolar için yeni bir derleme yapılmaz; dbt --defer sayesinde bu modelleri doğrudan canlı üretim tablolarına bağlar.
ÖzellikGeleneksel Full CIdbt Slim CI
Ortalama Çalışma Süresi45 - 90 Dakika2 - 5 Dakika
İşlenen Model SayısıTüm Proje (500+)Yalnızca Değişenler (1 - 10)
Bulut Hesaplama Maliyeti%100 (Yüksek)%10 - %15 (Düşük)
Geliştirici Geri BildirimiYavaşAnlık (< 5 dk)

3. GitHub Actions ile Üretim Düzeyinde Slim CI Pipeline'ı

yaml
name: dbt Slim CI Pipeline on: pull_request: branches: [main] paths: - 'models/**' - 'macros/**' - 'dbt_project.yml' jobs: slim_ci: name: Run Slim CI & Tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.11' - name: Install dbt run: pip install dbt-snowflake==1.8.4 - name: Download Production State run: aws s3 cp s3://company-dbt-artifacts/prod/manifest.json ./state/manifest.json - name: Execute dbt Slim Build run: dbt build --select state:modified+ --defer --state ./state --target pr_ci

4. Ephemeral (Geçici) PR Şemaları ve Otomatik Teardown

Her PR için ci_pr_${PR_NUMBER} adında izole bir şema oluşturulur. PR birleştirildiğinde (merged) veya kapatıldığında bir GitHub Actions hook'u tetiklenerek bu geçici şema tamamen temizlenir (DROP SCHEMA IF EXISTS ci_pr_142 CASCADE).

Topluluk Katkısı & Benchmark

Restore Tatbikatı & Kurtarma Deneyiminizi Paylaşın

Altyapınızdaki gerçek tatbikat sonuçlarını, RTO/RPO hedeflerinizi ve karşılaştığınız operasyonel engelleri anonim veya isimli olarak paylaşın. Sektör benchmark'ına katkıda bulunun.

Bu mimariyi üretimde test etmek ister misiniz?

DataOpsphere CI/CD şablonlarını ve Docker Compose ortamlarını kopyalayıp hemen çalıştırabilirsiniz.