Cursor, yeniden üretilebilir ortamlar, notebook desteği ve yapay zekâ destekli kod yardımıyla veri bilimi geliştirme için entegre araçlar sunar. Bu kılavuz, Python, R ve SQL iş akışları için temel kurulum kalıplarını kapsar.

Notebook geliştirme

Tam not defteri desteği için ms-toolsai tarafından yayımlanan Jupyter (id: ms-toolsai.jupyter) uzantısını indir.
Cursor, entegre hücre çalıştırma özelliğiyle hem .ipynb hem de .py dosyalarını destekler. Sekme, Satır İçi Düzenleme ve Agent’lar, not defterlerinde de diğer kod dosyalarında olduğu gibi çalışır. Temel yetenekler:
  • Satır içi hücre çalıştırma, kodu doğrudan düzenleyici arayüzünde çalıştırır
  • Sekme, Satır İçi Düzenleme ve Agent, pandas, NumPy, scikit-learn ve SQL magic komutları da dahil olmak üzere veri bilimi kütüphanelerini anlar

Veritabanı entegrasyonu

Veritabanları Cursor’a iki ana mekanizmayla entegre edilebilir: MCP sunucuları ve uzantılar.
  • MCP sunucuları, agent’lerinin veritabanlarına bağlanmasını sağlar
  • Uzantılar, IDE’ni veritabanlarınla entegre eder

MCP ile

MCP sunucuları, agent’inin doğrudan veritabanında sorgular çalıştırmasına izin verir. Böylece agent’in, devam eden bir görevin parçası olarak veritabanını sorgulamayı seçebilir, uygun sorguyu yazabilir, komutu çalıştırıp çıktıları analiz edebilir. Örneğin, aşağıdaki MCP yapılandırmasını Cursor’a ekleyerek bir Postgres veritabanını Cursor instance’ına bağlayabilirsin:
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://localhost/mydb"
      ]
    }
  }
}
MCP hakkında daha fazlası için MCP dokümantasyonumuza göz at.

Uzantılar ile

Editörden doğrudan sorgu çalıştırmak için veritabanına özel uzantıları (PostgreSQL, BigQuery, SQLite, Snowflake) yükle. Bu, araçlar arasında bağlam değiştirmeyi ortadan kaldırır ve sorgu optimizasyonu için yapay zekâ desteği sağlar.
-- Cursor, dizinler, window fonksiyonları ve sorgu optimizasyonu için öneriler sunar
SELECT
    user_id,
    event_type,
    COUNT(*) as event_count,
    RANK() OVER (PARTITION BY user_id ORDER BY COUNT(*) DESC) as frequency_rank
FROM events
WHERE created_at >= NOW() - INTERVAL '7 days'
GROUP BY user_id, event_type;
Yavaş sorguları analiz etmek, performans iyileştirmeleri önermek veya sorgu sonuçları için görselleştirme kodu üretmek için agent’leri kullan. Cursor, SQL bağlamını anlar ve veri yapına göre uygun grafik türlerini önerebilir.
Snowflake Uzantısı

Veri görselleştirme

Cursor’un yapay zekâ desteği, Matplotlib, Plotly ve Seaborn gibi veri görselleştirme kütüphanelerine de uzanır. Aracı, veri görselleştirme için kod üretebilir; bu sayede veriyi hızlı ve kolayca keşfetmene yardımcı olurken, tekrarlanabilir ve paylaşılabilir bir çıktı oluşturur.
import plotly.express as px
import pandas as pd

# Yapay zekâ, veri sütunlarına göre ilgili grafik türlerini önerir
df = pd.read_csv('sales_data.csv')
fig = px.scatter(df, x='advertising_spend', y='revenue',
                 color='region', size='customer_count',
                 title='Revenue vs Advertising Spend by Region')
fig.show()

Sık sorulan sorular

Mevcut Jupyter notebook’larını kullanabilir miyim? Evet, Cursor .ipynb dosyalarını tam hücre yürütme ve yapay zeka ile tamamlama desteğiyle açar. Belleğe sığmayan büyük veri kümelerini nasıl işlerim? Dask gibi dağıtık hesaplama kütüphanelerini kullan ya da Remote-SSH bağlantılarıyla daha büyük makinelerdeki Spark kümelerine bağlan. Cursor, R ve SQL dosyalarını destekliyor mu? Evet, Cursor R betikleri (.R) ve SQL dosyaları (.sql) için yapay zeka yardımı ve sözdizimi vurgulama sunar. Geliştirme ortamlarını paylaşmanın önerilen yolu nedir? .devcontainer klasörünü sürüm kontrolüne ekle. Ekip üyeleri projeyi açtığında ortam otomatik olarak yeniden oluşturulabilir. Veri işleme boru hatlarını nasıl hata ayıklarım? Cursor’un tümleşik hata ayıklayıcısını Python betiklerinde kesme noktalarıyla kullan, ya da Agent’i adım adım karmaşık veri dönüşümlerini analiz edip açıklaması için kullan.

Ortamın yeniden üretilebilirliği

Geliştirme konteynerleri

Geliştirme konteynerleri, ekip üyeleri ve dağıtım ortamları arasında tutarlı çalışma zamanları ve bağımlılıklar sağlamana yardımcı olur. Ortama özgü hataları ortadan kaldırabilir ve yeni ekip üyeleri için işe alıştırma süresini azaltabilir. Bir geliştirme konteyneri kullanmak için önce depo kökünde bir .devcontainer klasörü oluştur. Ardından devcontainer.json, Dockerfile ve requirements.txt dosyalarını oluştur.
// .devcontainer/devcontainer.json
{
  "name": "ds-env",
  "build": { "dockerfile": "Dockerfile" },
  "features": {
    "ghcr.io/devcontainers/features/python:1": { "version": "3.11" }
  },
  "postCreateCommand": "pip install -r requirements.txt"
}
# .devcontainer/Dockerfile
FROM mcr.microsoft.com/devcontainers/python:3.11
COPY requirements.txt .
RUN pip install --upgrade pip && \
    pip install -r requirements.txt
# requirements.txt
pandas==2.3.0
numpy
# projen için gereken diğer bağımlılıkları ekle
Cursor, devcontainer’ı otomatik olarak algılar ve projeni bir konteyner içinde yeniden açman için seni yönlendirir. Alternatif olarak, Komut Paleti’ni (Ctrl+Shift+P) kullanıp Reopen in Container komutunu aratarak elle de konteyner içinde yeniden açabilirsin. Geliştirme konteynerlerinin birkaç avantajı vardır:
  • Bağımlılık izolasyonu projeler arasında çakışmaları önler
  • Yeniden üretilebilir derlemeler geliştirme ve üretim ortamlarında tutarlı davranış sağlar
  • Basitleştirilmiş işe alıştırma yeni ekip üyelerinin manuel kurulum olmadan hemen başlamasını sağlar

SSH ile uzaktan geliştirme

Analizin ek hesaplama kaynakları, GPU’lar veya özel veri kümelerine erişim gerektirdiğinde, yerel geliştirme ortamını korurken uzak makinelerine bağlan.
  1. Gerekli kaynaklara sahip bir bulut örneği sağla veya şirket içi bir sunucuya eriş
  2. Depoyu, .devcontainer yapılandırması dahil, uzak makineye klonla
  3. Cursor üzerinden bağlan: Ctrl+Shift+P → “Remote-SSH: Connect to Host”
Bu yaklaşım, ihtiyaç oldukça hesaplama kaynaklarını ölçeklendirirken tutarlı araç setini korur. Aynı geliştirme konteyneri yapılandırması yerel ve uzak ortamların tümünde çalışır.