Ana içeriğe geç
Kesit SQL
Orta · Büyük Veriyle Çalışmak

Büyük tabloyla tanışma: profil çıkarmak ve örneklemek

Yüz binlerce satırlık bir tabloyu körlemesine sorgulamadan önce satır sayısı, tarih aralığı, boş değerler ve dağılımlarla tanımak; tekrarlanabilir örnekleme.

Uygulamada aç, 6 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

Pedal İzmir

Bu modülde İzmir'de hayali bir bisiklet paylaşım sisteminin üç aylık verisiyle çalışacaksın. Yolculuk tablosu (bk_trips) yaklaşık 116.000 satırdır: şimdiye kadarki tabloların çok üstünde. Büyük tabloda iki şey değişir: her sorgunun bir maliyeti vardır ve sonuca bakarak hatayı görmek zorlaşır, çünkü satırları tek tek okuyamazsın.

Önce profil

Sorgulamaya başlamadan önce tabloyu tek bir sorguyla “fotoğrafla”: kaç satır, hangi aralık, ne kadar boşluk?

SELECT COUNT(*)                          AS satir,
       MIN(started_at)                   AS ilk,
       MAX(started_at)                   AS son,
       COUNT(*) - COUNT(ended_at)        AS kapanmamis,
       COUNT(DISTINCT user_id)           AS kullanici,
       COUNT(DISTINCT bike_id)           AS bisiklet,
       ROUND(AVG(distance_km), 2)        AS ort_km
FROM bk_trips;

Önce küçükte dene

Karmaşık bir sorguyu yazarken tüm tabloda değil, küçük ve tekrarlanabilir bir örneklemde dene. ORDER BY RANDOM() her çalıştırmada farklı satır verir ve tüm tabloyu sıralar; bunun yerine anahtar üzerinden deterministik örnek al:

SELECT * FROM bk_trips WHERE trip_id % 100 = 0;   -- yaklaşık %1, her seferinde aynı satırlar

Ya da bir zaman dilimiyle sınırla: WHERE started_at >= '2024-06-01' AND started_at < '2024-06-08'. Sorgu doğru çalışınca filtreyi kaldır.

AlışkanlıkBüyük tabloda SELECT * yerine ihtiyacın olan sütunları seç ve sonuç ekranına yüz binlerce satır getirme; önce özetle.
Alıştırmalara geç (6)