Introduction à MongoDB
- Introduction au SDBG NoSQL MongoDB.
- Les caractéristiques du NoSQL.
- La modélisation sous MongoDB.
- Les différents formats utilisés par MongoDB : JSON, BSON.
- Préparation à l'installation de MongoDB.
- Connexion et test de MongoDB.
Travaux pratiques
Installation de MongoDB sur un poste de développement et intégration d'une base de données exemple.
Connexion et utilisation de MongoDB
- Utilisation du Shell Mongo.
- Manipulation des objets et données : les opérations CRUD.
- Utilisation des objets : collections, documents...
- Utilisation des API (PHP, JAVA...).
Travaux pratiques
Utilisation du Shell Mongo et manipulation des objets et des données.
Modélisation et indexation
- Le schéma design : réflexion sur la modélisation à utiliser.
- L'indexation sous MongoDB.
- Le profiling et l'optimisation des requêtes.
- Fonctionnement de MongoDB : transaction, isolation, verrou...
- Gestion des performances sous MongoDB.
Travaux pratiques
Modélisation d'un cas pratique et indexation des données.
Gestion des drivers
- Les drivers disponibles pour MongoDB. Modèle d'API.
- Utilisation de l'API PHP ou Java.
Travaux pratiques
Manipulation des données à travers des API (PHP ou JAVA).
Introduction à la réplication et au Sharding
- Principes de la réplication sous MongoDB.
- Notions et principes de fonctionnement des Replica Set.
- Le Sharding : concept, fonctionnement, limite...
- Couple Replica Set et Sharding.
- Mise en œuvre du Replica couplé à du Sharding.
- Suivi des performances liées au Sharding.
Travaux pratiques
Mise en place du Sharding des données de manière automatique ou manuelle.
Gestion des performances et diagnostic
- L'analyse des plans d'exécution.
- Les logs MongoDB.
- Le suivi des indicateurs et des performances.
- Les outils de suivi des performances : explain, mongostat, mongotop.
- L'agrégation Pipeline : présentation et concept.
Travaux pratiques
Analyse des plans d'exécution et optimisation des requêtes.
Extension de MongoDB
- Indexer les requêtes géospatiales.
- GridFS nécessaire au stockage de "large objects".
- Agréger.