Dbt'nin Çözdüğü Sorun

Üç yıl boyunca farklı analistler tarafından yazılan SQL sorgularıyla dolu bir veri ambarı hayal edin. Yüzlerce çağrılan görüntüleme final_v3_DEFINITIVO_bis, hesaplama mantıkları kopyalandı on farklı yer, veri kalitesini sağlamak için test yok ve sıfır belge bu sütunun gerçekte ne anlama geldiği hakkında net_revenue_adjusted.

Bu, 2026'da verilen çoğu takımın başlangıç noktasıdır. sorun şu ki dbt (veri oluşturma aracı) çözmek için tasarlandı.

dbt yeni bir ETL aracı değil, bir boru hattı orkestratörü değil ve bir veri değil depo. Bu bir araç dönüşüm: zaten yüklenmiş olan verileri alır depolar ve bunları SQL ve uygulamaları kullanarak kullanıma hazır analitik modellere dönüştürür yazılım mühendisliği.

ELT ve ETL: Dünya Neden Değişti?

Onlarca yıldır baskın paradigma ETL'ydi: Çıkarmak, Dönüştür, Yük. Veriler kaynaklardan çıkarıldı, bir ara katmana dönüştürüldü (genellikle özel sunucularda) ve daha sonra zaten son haliyle veri ambarına yüklenir.

Bulut veri ambarlarının ortaya çıkışı Kar taneleri, Büyük Sorgu e Amazon Kırmızıya Kayma bu mantığı tersine çevirdi. Bu sistemler bilgi işlem gücüne sahiptir pratik olarak sınırsız ve çok düşük depolama maliyetleri. Artık verileri dönüştürmenin bir anlamı yok Önce onları yüklemek için: ham olarak yüklemek ve dönüştürmek daha iyidir Sonrasında, doğrudan içine depo. Böylece ELT doğdu.

ELT ve ETL: Temel Fark

  • ETL: depo dışında dönüşüm (özel sunucu, Spark, Talend) — pahalı, katı, hata ayıklaması zor
  • ELT: Depo içindeki dönüşüm (yerel SQL) — ölçeklenebilir, uygun maliyetli, test edilmesi ve belgelenmesi daha kolay
  • dbt mükemmel bir ELT aracıdır: ELT'nin T'sini yazılım mühendisliğiyle yönetir

Betonda dbt nedir

dbt şunları yapmanıza olanak sağlayan bir komut satırı (ve bulut) aracıdır:

  • SQL dönüşümlerini şu şekilde yazın: Git'te sürümlenen modeller
  • Tanımlamak otomatik bağımlılıklar makrolu modeller arasında ref()
  • Eklemek kalite testleri doğrudan koddaki verilere
  • Otomatik olarak oluştur dokümantasyon ve soy grafiği
  • Bunların hepsini bir arada yapın CI/CD ardışık düzeni

Bir dbt şablonu, SELECT'e sahip bir SQL dosyasıdır. dbt bunu depoda hayata geçiriyor Yapılandırmanıza bağlı olarak görünüm, tablo veya artımlı tablo olarak.

-- models/marts/finance/orders_daily.sql
-- dbt materializza questo come una tabella nel warehouse

SELECT
    DATE_TRUNC('day', created_at) AS order_date,
    SUM(total_amount) AS revenue,
    COUNT(*) AS order_count,
    AVG(total_amount) AS avg_order_value
FROM {{ ref('stg_orders') }}          -- ref() crea la dipendenza
WHERE status = 'completed'
GROUP BY 1

not edin {{ ref('stg_orders') }}: dbt bu modelin bağlı olduğunu biliyor itibaren stg_orders, bağımlılık grafiğini (DAG) otomatik olarak oluşturur ve garanti eder kalıpların doğru sırada çalışmasını sağlayın.

Analitik Mühendisinin Rolü

DBT'nin yükselişi yeni bir profesyonel figür yarattı:analiz mühendisi. Veri analisti ile veri mühendisi arasındaki profildir:

  • SQL'i bir analist kadar derin biliyor
  • Yazılım mühendisliği uygulamalarını (Git, test, CI/CD) bir mühendis gibi uygulayın
  • Veri ambarı dönüşüm katmanını oluşturur ve korur
  • Veri analistleriyle (modelleri kullanan) ve veri mühendisleriyle (besleme ardışık düzenlerini yöneten) işbirliği yapın

göre Veri Mühendisliğinin Durumu 2025analitik mühendisinin rolü arttı LinkedIn'de son üç yılda %340 oranında artış yaşandı ve bu da LinkedIn'i veri dünyasında en çok aranan profillerden biri haline getirdi.

2026'da dbt Ekosistemi

dbt yalnızca bir araç değildir: iki ana dağıtıma sahip eksiksiz bir ekosistem haline gelmiştir:

dbt Çekirdeği

Sürüm açık kaynak ve ücretsiz dbt'den. Pip üzerinden kurulur, hattan çalışır komut verir ve herhangi bir CI/CD sistemiyle entegre olur. Tüm önemli veri ambarlarını destekler: Snowflake, BigQuery, Redshift, Databricks, DuckDB, PostgreSQL ve çok daha fazlası adaptör aracılığıyla.

dbt Bulut

Yönetilen hizmet dbt Laboratuvarları, dbt'nin arkasındaki şirket. Bir web IDE, zamanlayıcı ekler tutarlı ölçümler için entegre, izleme, dbt Explorer (gelişmiş köken) ve dbt Anlamsal Katman. Geliştiriciler için ücretsiz bir plan ve ekipler için ayda 100 ABD doları değerinde kurumsal planlar mevcuttur.

dbt Projesinin Temelleri

Bir dbt projesi, daha önce kaosun olduğu yere düzen getiren standart bir yapıya sahiptir:

jaffle_shop/                    # nome del progetto
├── dbt_project.yml             # configurazione del progetto
├── profiles.yml               # credenziali di connessione (locale)
├── models/
│   ├── staging/               # modelli vicini alla sorgente
│   │   ├── stg_orders.sql
│   │   ├── stg_customers.sql
│   ├── marts/                 # modelli business-oriented
│       ├── finance/
│       │   └── orders_daily.sql
│       └── marketing/
│           └── customer_ltv.sql
├── tests/                     # test SQL personalizzati
├── seeds/                     # CSV statici come reference data
├── macros/                    # funzioni SQL riutilizzabili
└── analyses/                 # query ad hoc (non materializzate)

Bu katmanlı yapı (aşama → orta → pazarlar) en iyi uygulamadır dbt çağrısı katmanlı mimari:

  • Evreleme: Kaynaklarla 1'e 1, yalnızca türleri yeniden adlandırın ve yayınlayın
  • Orta seviye: aşamalandırma modelleri arasındaki karmaşık birleştirmeler ve toplamalar
  • Martlar: İş zekası ve analitik tarafından kullanıma hazır son modeller

Test ve Dokümantasyon: dbt'nin Harika Özellikleri

Veri geliştirme döngüsünü tamamen dönüştüren iki dbt özelliği:

Otomatik Test

Testleri doğrudan her şablona eşlik eden YAML dosyasında tanımlayın:

# models/staging/schema.yml
models:
  - name: stg_orders
    columns:
      - name: order_id
        tests:
          - unique
          - not_null
      - name: status
        tests:
          - accepted_values:
              values: ['completed', 'pending', 'cancelled']
      - name: customer_id
        tests:
          - not_null
          - relationships:
              to: ref('stg_customers')
              field: customer_id

İle dbt testdbt bu testleri ambarda SQL sorguları olarak çalıştırır ve işlem hattında başarısız olur eğer bir şeyler yanlışsa. Sıfır Python kodu, sıfır harici çerçeve.

Kendiliğinden Oluşturulan Dokümantasyon

Açıklamaları aynı YAML dosyasına ekleyin:

# models/marts/schema.yml
models:
  - name: orders_daily
    description: "Aggregazione giornaliera degli ordini completati"
    columns:
      - name: order_date
        description: "Data dell'ordine, troncata al giorno"
      - name: revenue
        description: "Totale ricavi per il giorno, al netto dei resi"

dbt docs generate && dbt docs serve dokümantasyon içeren statik bir site oluşturur tamamlandı ve tüm modeller arasındaki bağımlılıkları gösteren etkileşimli DAG. Her sütun belgelenmiş ve kaynağına kadar izlenebilir.

Modern Veri Yığınında dbt

dbt tipik olarak yığının T katmanıdır Modern ELT:

  • Yutma: Airbyte, Fivetran, Stitch veya Python komut dosyaları ham verileri depoya yükler
  • Depolamak: Snowflake, BigQuery, Redshift, Databricks Delta Lake
  • Dönüşüm: dbt ham verileri analitik modellere dönüştürür
  • İş Zekası ve Analitik: Looker, Metabase, Tableau veya dizüstü bilgisayarlar dbt modellerini kullanır

2026 yılında dbt, start-up'lardan 30.000'den fazla şirketin veri yığınında (dbt Labs verileri) mevcut GitLab, JetBlue, Conde Nast ve Shopify gibi devlere.

Neden 2026'da DBT'yi Öğrenin?

DDT öğrenmeye zaman ayırmanın somut nedenleri:

  • Pazar talebi: Veri mühendisi iş ilanlarının %45'inde “dbt” görünüyor ve Avrupa'da LinkedIn'de analiz mühendisi
  • Verimlilik: dbt ekipleri harcanan sürede %60-70 azalma bildirdi otomatik testler sayesinde veri hatlarında hata ayıklamaya
  • Ekosistem: dbt Hub'da dbt-utils (kütüphane) dahil 200'den fazla dbt paketi standart) ve gelişmiş testler için dbt beklentileri
  • gözlemlenebilirlik: Elementary, re_data ve araçlarla yerel entegrasyon Üretimde kalite denetimi için veri gözlemlenebilirliği

dbt Herkes İçin Değil

Zaten bir bulut veri ambarınız varsa ve birincil diliniz olarak SQL ile çalışıyorsanız dbt mantıklıdır. Yapılandırılmamış veriler üzerinde büyük dönüşümler için Spark'ın yerini almaz ve uygun da değildir. gerçek zamanlı bir akış hattı (Flink, Kafka Streams veya Spark Structured Streaming kullananlar için). Dbt'nin en tatlı noktası SQL deposundaki toplu analizdir.

Sonuçlar ve Sonraki Adımlar

dbt, veri ekiplerinin analitik işlem hatlarını oluşturma ve sürdürme biçimini yeniden tanımladı ve yazılım mühendisliğinin olgun uygulamaları (test etme, sürüm oluşturma, belgeleme, CI/CD) Onlarca yıldır onlarsız yaşayan bir dünya.

Temel çıkarım: dbt büyük şirketler için uygun bir araç değildir. Erişilebilir, açık kaynaklıdır ve hatta arka uç olarak DuckDB ile tek bir dizüstü bilgisayarda bile çalışır. SQL bilenlerin öğrenme eğrisi düşük, ödülü ise yüksektir.

Serinin bir sonraki yazısında sıfırdan bir dbt Core projesi kuracağız: dbt kuracağız, yazacağız the profiles.yml, ilk modellerimizi oluşturacağız ve göreceğiz ref() makro iş başında gerçek bir veri kümesi üzerinde.