dlt + Cursor/Windsurf + dlt MCP ile agentic ingestion
dlt + AI Copilot
Bu derste neler öğreneceksin
- Cursor da dlt MCP server kurar
- Prompt ile pipeline kurgular
- AI agent ın ürettiği kodu inceler
Yapay zekâ asistanınla pipeline kur!
Hatırlıyor musun? Geçen derslerde dlt ile kendi başına veri alımı yaptın. Bir JSON dosyasından, GitHub API’sinden, hepsinden otomatik tablo oluşturan boru hatları kurdun. Çok iyiydin!
Ama ya bir robot yardımcın olsa? Söylesen: “GitHub’dan repolarımı çek, dlt ile tablo yap, Postgres’e yaz” — o kendisi yazsa? İşte 2026’nın trendi bu: AI asistanla birlikte kodlamak.
Araçlar: Cursor ve Windsurf
İkisi de yapay zekâ destekli kod editörü. Cursor’ı bilgisayarına kur, içine projeni aç. Sağ tarafta bir sohbet kutusu belirir. Oraya İngilizce yazarsın, editör sana kod önerir, hatta senin yerine dosya oluşturur.
Windsurf ise Cursor’ın kardeşi — benzer, biraz daha “agentic” (daha çok kendi başına adım atan).
Peki MCP ne?
MCP = Model Context Protocol. Yani “yapay zekâya ekstra yetenek takma standardı”. Bir düşün: AI asistanın gözleri var (dosyalarını görür), elleri var (kod yazar) — ama alet çantası sınırlı. İşte MCP ile ona yeni aletler verirsin.
dlt MCP server da tam olarak bu: Cursor’a bir eklenti. Taktığında, yapay zekâ artık şunu bilir:
- Hangi dlt kaynakları (sources) var
pipeline.run()nasıl çağrılır- Hangi destination’lar (Postgres, DuckDB, BigQuery) hazır
- Yaygın hatalar ve çözümleri
Kurulum (3 adım)
1) Cursor’ı aç → Settings → MCP sekmesi.
2) + Add new global MCP server butonuna tıkla. Açılan mcp.json dosyasına şunu yapıştır:
{
"mcpServers": {
"dlt": {
"command": "uvx",
"args": ["dlt", "mcp", "run"]
}
}
}
3) Kaydet, Cursor’ı yeniden başlat. Sağ panelde dlt yazan bir araç belirecek — artık hazırsın.
Prompt: ilk sihirli cümle
Asistan kutusuna şunu yaz (İngilizce daha iyi anlıyor):
GitHub API'sinden github.com/<kullanıcı-adın> reposunu çek,
dlt kullanarak Postgres'e yaz. Her repo için: name, stars,
language, created_at kolonları olsun.
Birkaç saniye bekle. Asistan:
github_api_source.pydiye bir dosya açar- dlt pipeline tanımını yazar
requirements.txt’edlt[postgres]ekler- Sana bir terminal komutu önerir
Sen de kopyala-yapıştır ile çalıştırırsın.
Asistanın yazdığı kodu İNCELE
Çok önemli kural: AI’ın her satırını okumadan kabul etme. Kontrol listesi:
- ✅ Hangi API’ye istek atıyor? GitHub’ın gerçek endpoint’i mi?
- ✅ Authentication (token) var mı? Repo gizliyse
auth_tokenparametresi gerekli. - ✅ Rate limit düşünülmüş mü? 60 istek/saat sınırı var; dlt bunu otomatik halleder mi?
- ✅ Hangi tablo şemasını oluşturuyor? Kolon isimleri snake_case mi?
- ✅ Destination doğru mu?
postgresyazdıysa, gerçekten Postgres ayarların~/.dlt/secrets.tomliçinde mi?
Bunları kendi gözünle doğrulamadan asla production’a alma.
Hands-on: sen dene!
- Cursor’a dlt MCP server’ı kur (yukarıdaki 3 adım).
- Asistana şu promptu ver: “JSONPlaceholder API’sinden /users endpoint’ini çek, DuckDB’ye yaz, sadece id, name, email kolonları olsun”.
- Asistanın oluşturduğu
users_pipeline.pydosyasını oku. pip install dlt[duckdb]kurulumunu yap.python users_pipeline.pyile çalıştır.duckdb users.duckdb -c "SELECT * FROM users.users LIMIT 5"ile sonucu gör.
Çalıştı mı? Tebrikler, ilk agentic ingestion pipeline’ını kurdun!
Küçük ipucu
Eğer asistan yanlış kaynak önerirse, promptu düzelt, vazgeçme. Mesela: “REST API source yerine dlt.sources.rest_api kullan, bana baştan yaz” de. AI hata yapar; sen düzeltme mühendisisin.
Sıradaki
Bir dahaki derste Spark öğreneceğiz — milyonlarca satırı pizzacı ekibi gibi bölüştürüp paralel işleyen motor.