MongoDB ileri düzey: toplama, çoğaltma ve güvenlik
MongoDB’de raporlama sorguları, indeks ve şema desenleri, replika kümeleri ile erişim denetimi ve şifrelemeyi öğrenirsin.
Seviye 301 · 23 ders · 21 pratik lab
Dersler
Toplama boru hatları
- $group, $unwind ve hesaplanmış alanlar: Belgeleri gruplayıp toplam ve ortalama almayı, dizileri $unwind ile açmayı ve yeni alanlar hesaplamayı öğrenirsin.
- $facet ve $bucket ile çok yönlü raporlar: Tek sorguda hem aralıklara bölünmüş dağılımı hem de özet sayıları üretebileceksin.
- $lookup, $graphLookup ve sonucu $merge ile yazmak: Koleksiyonları birleştirmeyi, hiyerarşik ilişkileri gezmeyi ve sonucu başka koleksiyona kaydetmeyi öğrenirsin.
- Kısa görev: aylık satış raporu boru hattı
Performans ve şema
- Bileşik indeksler ve ESR kuralı: Eşitlik, sıralama, aralık (ESR) kuralıyla bileşik indekste alan sırasını doğru seçmeyi öğrenirsin.
- Özel indeksler: TTL, kısmi ve metin: Süresi dolan belgeleri otomatik silen, yalnızca bazı belgeleri kapsayan ve metin arayan indeksleri kurabileceksin.
- explain ve profiler ile yavaş sorguları bulmak: Sorgunun kaç belge taradığını explain ile okuyup profiler ile yavaş sorguları yakalamayı öğrenirsin.
- Şema desenleri: gömme, referans, kova ve sürümleme: Veri büyüklüğüne ve okuma biçimine göre gömülü mü referanslı mı model seçeceğini gerekçesiyle belirleyebileceksin.
- Kısa görev: yavaş bir sorgu için indeks tasarla
Güvenilirlik ve ölçekleme
- Çok belgeli işlemler: Birkaç belgeyi ya hep birlikte ya hiç değiştiren işlem oturumu açmayı ve sınırlarını bilmeyi öğrenirsin.
- Replika kümesi: birincil, ikincil ve seçim: Üç üyeli bir replika kümesi kurup birincil çökünce yeni birincilin nasıl seçildiğini görebileceksin.
- Yazma ve okuma güvencesi (write/read concern): Verinin kaç üyeye yazılınca onaylanacağını seçip hız ile dayanıklılık arasındaki dengeyi ayarlayabileceksin.
- Değişiklik akışları (change streams): Koleksiyondaki değişiklikleri anında izleyip başka bir sisteme haber vermeyi öğrenirsin.
- Parçalama (sharding) temelleri: Verinin birden çok sunucuya bölündüğü yapıyı ve iyi bir parça anahtarının nasıl seçildiğini anlayacaksın.
- Kısa görev: replika kümesinde yazma güvencesini sına
Güvenlik ve yedek
- Kimlik doğrulamayı açmak: SCRAM ve ilk yönetici: Kimlik doğrulamasız çalışan bir MongoDB’yi SCRAM ile kapatıp ilk yönetici hesabını güvenle oluşturabileceksin.
- Rol tabanlı erişim: yerleşik ve özel roller: Yerleşik rolleri tanıyıp bir uygulamaya yalnızca gereken koleksiyon ve işlemleri veren özel rol yazmayı öğrenirsin.
- TLS ve ağ sertleştirme: bindIp ve güvenlik duvarı: Dinlenen adresi daraltmayı, 27017 portunu güvenlik duvarıyla kısıtlamayı ve bağlantıyı TLS ile şifrelemeyi öğrenirsin.
- Diskte şifreleme ve alan düzeyinde şifreleme (CSFLE): Depolama şifrelemesini ve hassas alanı istemci tarafında şifreleyen CSFLE’yi, anahtar yönetimi sorusuyla birlikte kavrayacaksın.
- MongoDB denetim günlüğü: Kimlik doğrulama ve yetki olaylarını denetim günlüğüne yazdırıp süzerek şüpheli girişleri bulabileceksin.
- NoSQL enjeksiyonuna karşı savunma: Kullanıcı girdisindeki $ne gibi işleçlerin sorguyu nasıl bozduğunu görüp türü sınırlayan doğrulamayla kapatmayı öğrenirsin.
- mongodump, mongorestore ve oplog ile yedekleme: Veritabanını mongodump ile yedeklemeyi, mongorestore ile geri yüklemeyi ve oplog ile belirli ana dönmeyi öğrenirsin.
- Bitirme görevi: bir MongoDB kümesini raporla, ölçekle ve koru
Pratik lablar
- Aylık ciroyu kategoriye göre hesapla: Sipariş kalemlerini $unwind ile açıp ay ve kategoriye göre ciro toplayan bir rapor yaz.
- Tek sorguda çok yönlü özet çıkar: $facet ile fiyat aralıkları, marka dağılımı ve toplam ürün sayısını aynı yanıtta döndür.
- Organizasyon şemasını $graphLookup ile çöz: Bir yöneticinin altındaki tüm çalışanları kademe bilgisiyle bul ve sonucu $merge ile özet koleksiyona yaz.
- Profiler ile en yavaş sorguyu yakala: Profiler'ı 50 ms eşiğiyle aç, uygulamayı çalıştır ve en pahalı sorgu biçimini belirle.
- ESR kuralıyla bileşik indeks tasarla: Eşitlik, sıralama ve aralık içeren bir sipariş sorgusu için alan sırasını ESR'ye göre seç ve farkı ölç.
- Süreli ve kısmi indeksle koleksiyonu düzenle: Oturum belgelerini TTL indeksiyle otomatik sil, yalnızca aktif kayıtları kapsayan kısmi indeksle indeks boyutunu küçült.
- İki koleksiyonu tek işlemde güncelle: Hesaplar arası para transferini çok belgeli işlemle yap ve hata anında hiçbir değişikliğin kalmadığını göster.
- Değişiklik akışıyla stok uyarısı kur: Stok 5'in altına düştüğünde mesaj yazan bir change stream dinleyicisi kur ve test et.
- Kesintiden sonra akışı kaldığı yerden sürdür: Dinleyici çöktükten sonra resume token ile kaldığı yerden devam et ve hiçbir olayın kaçmadığını kanıtla.
- Replika kümesinin durumunu oku: rs.status çıktısından birincil üyeyi, gecikmeyi ve sağlıksız üyeyi bul.
- Yazma garantisini w:majority ile ölç: w:1 ve w:majority ile yazıp birincili düşür; hangi yazmaların kaybolduğunu karşılaştır.
- Bir koleksiyonu iki parçaya böl: Küçük bir parçalı kümede günlük koleksiyonunu parçala ve verinin parçalara dağılımını doğrula.
- Kimlik doğrulamayı açıp ilk yöneticiyi oluştur: Kimlik doğrulamasız çalışan sunucuda ilk yönetici hesabını oluştur ve yetkisiz bağlantının reddedildiğini göster.
- Sunucuyu yalnızca uygulama ağına aç: bindIp ve güvenlik duvarı kurallarıyla sunucuya yalnızca uygulama sunucusundan erişilebildiğini sağla.
- TLS'i zorunlu kıl: Kendi CA'nla sertifika üret, sunucuyu requireTLS ile yapılandır ve şifresiz bağlantının başarısız olduğunu göster.
- Denetim günlüğünde silme işlemlerini izle: Denetim günlüğünü yalnızca silme ve kullanıcı yönetimi olaylarını kaydedecek şekilde süz ve test et.
- Kimlik numarasını istemci tarafında şifrele: Alan düzeyinde şifreleme ile müşteri kimlik numarasını şifrele ve veritabanında açık metin kalmadığını göster.
- Oplog ile belirli bir ana geri dön: Gece yedeğini geri yükle ve oplog'u yanlış silme komutundan hemen öncesine kadar oynatarak veriyi kurtar.
- Operatör enjeksiyonunu yeniden üret: Laboratuvardaki giriş formuna $ne operatörü göndererek parola kontrolünün atlandığını göster.
- Girdiyi türe göre doğrula: Açık uygulamada istek gövdesindeki alanların yalnızca metin olabildiğini denetleyen doğrulama ekle ve saldırıyı tekrar dene.
- $where ve sunucu tarafı JavaScript riskini kapat: Kullanıcı girdisini $where içine koyan raporu güvenli boru hattıyla yeniden yaz ve sunucu tarafı JavaScript'i kapat.
Kurs hakkında
MongoDB’de raporlama sorguları, indeks ve şema desenleri, replika kümeleri ile erişim denetimi ve şifrelemeyi öğrenirsin.
Ne öğreneceksin
- Toplama boru hatları
- Performans ve şema
- Güvenilirlik ve ölçekleme
- Güvenlik ve yedek
Ö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.