C1: Capstone — sıfırdan uçtan uca pipeline
C1 end-to-end capstone
Bu derste neler öğreneceksin
- Kendi veri setini seçer (NYC taxi yasak)
- Ingest lake warehouse dbt dashboard kurar
- 0-4 x 7 kriter rubric ile kendini değerlendirir
Production Capstone
Bu, kursun portfolyo parçan. 34 dersin sonunda, gerçek bir veri mühendisi gibi sıfırdan bir end-to-end pipeline kuracaksın. Mülakatta “ne yaptın?” sorusuna GitHub linki ile cevap vereceksin; mülakatçı repoya girip kodu, lineage’ı, test sonuçlarını okuyacak.
Bu capstone başarıyla tamamlandığında:
- 5+ dbt modeli, 3+ test, lineage görselleştirmesi olan bir repo.
dbt docspublic URL’i (GitHub Pages veya dbt Cloud).- 7 kriterlik rubric puan tablosu (toplam 28 üzerinden).
- LinkedIn Featured bölümüne eklenebilecek bir proje.
Adım 0: Veri Seti Seçimi (NYC Taksi Yasak)
NYC taksi verisi yasak — DataTalksClub capstone’ında en yaygın kullanılan veri, mülakatçı gözünde sıfır özgünlük puanı. Kendi verinizi seçin.
İyi veri seti kriterleri:
- 5K-500K satır arası (ne çok az, ne çok fazla).
- Yapılandırılmış (CSV, JSON, API, SQL tablo).
- Düzenli güncellenebilir (API veya manuel weekly ingest).
- Gerçek bir problemi çözüyor (dashboard, alert, tahmin, segmentasyon).
- Sizi motive eden bir domain (9-12 hafta yaşayacaksınız).
Adım 1: Problem Definition (1 paragraf)
README.md’nin ilk 20 satırı:
# `<Proje Adı>`
## Problem
`<Somut bir soru. "Veri analizi" değil, ölçülebilir bir hedef.
Örnek: "Hangi günler düşük satış yapıyorum ve nedenini
lokasyon, ürün kategorisi, hava durumu verileriyle açıklayabilir miyim?">`
## Success Criteria
- 3+ actionable insight (sadece "göster" değil, "ne yapmalıyım?" cevabı)
- Pipeline daily run, %99 success
- P95 query latency < 5s
## Out of Scope
- ML model (Modül 6 sonrası opsiyonel)
- Real-time streaming (batch yeterli)
Adım 2: Mimari Karar
Modül 1-7 öğrendiğin araçlardan hangilerini neden seçtiğini yaz:
| Karar | Seçenekler | Seçim | Neden |
|---|---|---|---|
| Cloud | GCP / AWS / Azure / local-only | … | … |
| Ingest | dlt / Fivetran / Airbyte / custom | … | … |
| Warehouse | BigQuery / Snowflake / DuckDB / Postgres | … | … |
| Transform | dbt / SQLMesh / Bruin | … | … |
| Orchestrate | Kestra / Airflow / Prefect / cron | … | … |
| Dashboard | Metabase / Streamlit / Looker / Superset | … | … |
| CI/CD | GitHub Actions / GitLab CI | … | … |
Neden önemli? Mülakatta “neden dbt seçtin?” sorusuna cevabınız olsun. “Hocam öyle dedi” değil, “alternatif X, Y’yi değerlendirdim, şu trade-off’lar nedeniyle Z’yi seçtim” olsun.
Adım 3: Pipeline Kurulumu
Minimum viable pipeline:
[API/CSV] -> dlt -> [raw schema (BigQuery/DuckDB)]
|
[dbt staging (views)]
|
[dbt intermediate (ephemeral)]
|
[dbt marts (tables, tested)]
|
[Dashboard: Metabase / Streamlit]
Kabul kriterleri:
make uptek komutla infrastructure ayağa kalksın.make ingest && make transform && make testile sıfırdan tablolar oluşsun.make dqile data quality check’leri çalışsın..env.exampleile secret’lar template’lensin.- GitHub Actions ile CI’da dbt run + test otomatik çalışsın.
Adım 4: 7 Kriter Rubric (0-4 × 7 = 28)
README’de bir tablo olarak yayınlayın:
| # | Kriter | 0 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|---|
| 1 | Problem | Tanımsız | Var ama vague | Net ama dar | Net + measurable | Net + business value + user |
| 2 | Cloud | Local | Docker | 1 cloud service | Multi-service | IaC (Terraform) + state |
| 3 | Ingestion | Manuel | Script ama non-idempotent | dlt + schedule | dlt + retry + backoff | dlt + observability + alerting |
| 4 | Warehouse | CSV | SQLite | DuckDB | BigQuery | BigQuery + partition + cluster |
| 5 | Transformations | Yok | Raw kullanım | 1 dbt model | 3+ model + test | 5+ model + test + macros + packages |
| 6 | Dashboard | Yok | 1 static chart | 1 dashboard, 2 viz | 3 viz + filter | 3 viz + filter + scheduled email |
| 7 | Reproducibility | Yok | README ama boş | README + basic steps | Docker compose | make all + CI green |
Hedef: 20+/28 iyi capstone, 24+/28 işe alım hazır seviye.
Adım 5: Portfolyo Yayınlama
- GitHub repo public + MIT license + topics.
- dbt docs public URL (GitHub Pages veya dbt Cloud).
- 5 dakikalık Loom videosu çekin: dashboard’u gez, pipeline’ı anlat.
- LinkedIn Featured bölümüne ekleyin; “Project:
<Ad>— End-to-end DE pipeline” yazın. - Blog yazısı: mimari kararları, trade-off’ları, ne öğrendiğinizi anlatın.