MongoDB toplama boru hattı derinlemesine
Toplama boru hattının aşamalarını ve ifade işleçlerini derinlemesine kullanarak raporlar, pencere hesapları, zaman serisi analizleri ve veri dönüşümleri üretirsin.
Seviye 301 · 17 ders · 15 pratik lab
Dersler
Aşamalar
- $match, $project ve $addFields
- $group ve biriktiriciler
- Dizilerle çalışmak: $unwind, $filter, $map
- Boru hatlı $lookup
- Aşama sırası ve performans
- Kısa görev: kategoriye göre satış raporu
İfadeler
- Koşullu ifadeler: $cond ve $switch
- Tarih ifadeleri ve saat dilimleri
- Metin ifadeleri ve düzenli ifadeler
- $setWindowFields ile pencere hesapları
- $densify ve $fill ile boşlukları doldurmak
- Kısa görev: haftalık kullanıcı elde tutma raporu
Çıktı ve işletim
- $out, $merge ve görünümler
- Önceden hesaplanmış özet koleksiyonları
- Bellek sınırları ve diske taşma
- Toplama sorgusunun planını okumak
- Bitirme görevi: bir teslimat şirketinin operasyon panosu
Pratik lablar
- Sepetteki ürün sayısını hesapla: Sepet belgelerinde $size ve $sum ile her sepetin kalem ve adet sayısını yeni alan olarak ekle.
- İndirimli kalemleri $filter ile ayır: Siparişleri açmadan yalnızca indirimli kalemleri $filter ile ayıkla ve $map ile net tutarı hesapla.
- $unwind'in şişirdiği raporu düzelt: İki diziyi peş peşe açtığı için yanlış toplam veren bir boru hattını bul ve dizi ifadeleriyle yeniden yaz.
- Kargo kayıtlarına şube adını ekle: Basit bir $lookup ile gönderi belgelerine şube koleksiyonundan şube adını getir.
- Koşullu birleştirme yap: Pipeline'lı $lookup ile her müşteriye yalnızca son 30 gündeki teslim edilmemiş siparişlerini ekle.
- Yavaş birleştirmeyi aşama sırasıyla hızlandır: $match'i $lookup'tan sonra yapan bir boru hattını yeniden sırala, birleşen tarafa indeks ekle ve süreyi ölç.
- Sipariş tutarına göre segment ata: $switch ile müşterileri harcamalarına göre bronz, gümüş ve altın segmentlere ayır.
- Saat dilimine göre günlük rapor al: UTC saklanan sipariş tarihlerini İstanbul saatine göre güne bölen bir rapor yaz ve gece yarısı kaymasını göster.
- Serbest metinden alan çıkar: Kargo notlarındaki takip kodunu ve şehir adını $regexFind ile çıkarıp ayrı alanlara yaz.
- Hareketli ortalama hesapla: $setWindowFields ile günlük satışların 7 günlük hareketli ortalamasını ekle.
- Eksik günleri doldurup grafiğe hazırla: Satış olmayan günleri $densify ile ekle, $fill ile sıfırla ve kesintisiz bir zaman serisi üret.
- Kohort tutma oranını hesapla: Kayıt haftasına göre kullanıcıların sonraki dört haftada geri gelme oranını tek boru hattıyla hesapla.
- Rapor sorgusunu görünüm olarak kaydet: Sık kullanılan aylık satış boru hattını görünüm olarak tanımla ve uygulamaya yalnızca görünümü aç.
- Özet koleksiyonu $merge ile artımlı güncelle: Her gece yalnızca dünkü siparişleri işleyip günlük özet koleksiyonunu $merge ile güncelleyen boru hattı yaz.
- Bellek sınırına takılan toplamayı düzelt: Bellek sınırı hatası veren büyük bir $group işleminin planını oku, aşamaları düzenle ve diske taşmayı ölç.
Kurs hakkında
Toplama boru hattının aşamalarını ve ifade işleçlerini derinlemesine kullanarak raporlar, pencere hesapları, zaman serisi analizleri ve veri dönüşümleri üretirsin.
Ne öğreneceksin
- Aşamalar
- İfadeler
- Çıktı ve işletim
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 301 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.