APIs, projets et intégration Big Data

Se connecter pour s'inscrire

Votre progression

Continuez pour débloquer la suite !
0 / 0 étapes complétées 0
%

Syllabus

  1. Description

  2. Objectifs

  3. Validations de compétences

  4. Public cible

    Aucun public cible spécifié pour ce module.

  5. Besoins techniques

  6. Prérequis

    • Aucun prérequis
  7. Niveau

  8. Historique du module

    Aucune action enregistrée

APIs, projets et intégration Big Data

  1. API RESTful et développement

    1. Création d'API RESTful avec MongoDB

      Choix des technologies

      • Node.js (Express.js) : très populaire pour les APIs modernes, facile à connecter à MongoDB via mongoose ou mongodb.
      • Python (Flask) : simple et efficace, connexion à MongoDB via pymongo.

      Architecture REST

      • Endpoints : /utilisateurs, /produits, etc.
      • Méthodes HTTP : GET (lecture), POST (création), PUT (mise à jour), DELETE (suppression)

      Exemple de routes Express.js

      // GET tous les utilisateurs
      app.get('/utilisateurs', async (req, res) => {
        const users = await db.collection('utilisateurs').find().toArray();
        res.json(users);
      });
      // POST un nouvel utilisateur
      app.post('/utilisateurs', async (req, res) => {
        const result = await db.collection('utilisateurs').insertOne(req.body);
        res.json(result);
      });
      

      Gestion des erreurs

      • Utiliser des middlewares pour capturer les erreurs.
      • Retourner des codes HTTP adaptés (400, 404, 500…)
    2. Consommation de l'API MongoDB

      Clients et bibliothèques

      • JavaScript (fetch, axios), Python (requests), Java, etc.

      Authentification et sécurité

      • Authentification par JWT (JSON Web Tokens) pour sécuriser les endpoints.
      • Protection avancée avec OAuth2 pour les APIs publiques ou multi-clients.
    3. API GraphQL avec MongoDB

      Introduction

      • GraphQL : alternative à REST, permet de requêter précisément les données voulues.
      • Réduit le sur-fetching et le under-fetching.

      Mise en œuvre

      • Utilisation de Apollo Server (Node.js) ou Graphene (Python) avec MongoDB.
      • Définition d’un schéma fort (types, queries, mutations).

      Exemple de requête GraphQL

      query {
        utilisateurs {
          nom
          age
          email
        }
      }
      
    4. Quiz interactif


      1. A. Django
        B. Express.js
        C. Spring Boot

      2. A. JWT
        B. CSV
        C. XML

      3. A. Requêtes typées et ciblées
        B. Plus rapide
        C. Moins sécurisé

      4. A. 200
        B. 404
        C. 500

      5. A. Postman
        B. GraphiQL
        C. Les deux
  2. Projets et études de cas

    1. Application e-commerce avec MongoDB

      Modélisation des données

      • Collections : produits, utilisateurs, commandes
      • Documents imbriqués pour les adresses, historiques de commandes, paniers

      API REST complète

      • Endpoints CRUD pour chaque collection
      • Sécurité : authentification JWT, validation des entrées

      Intégration frontend

      • Connexion à un frontend (React.js, Vue.js, Angular…)
      • Affichage dynamique des produits, gestion du panier en temps réel

      Mini-lab

      1. Créer une collection produits et y insérer plusieurs documents
      2. Développer un endpoint GET /produits qui retourne tous les produits
      3. Tester l’API avec Postman ou curl
    2. Analyse de données IoT

      Collecte et stockage temps réel

      • Stocker les données capteurs dans une collection iot_data
      • Utiliser des timestamps et des champs géospatiaux

      Visualisation et analyses

      • Connexion à Grafana ou Tableau pour visualiser la donnée en temps réel
      • Exemple d’agrégation : température moyenne par heure, par capteur

      Mini-lab

      1. Importer un jeu de données IoT (CSV ou JSON)
      2. Créer un pipeline d’agrégation pour calculer la moyenne d’une mesure
      3. Afficher le résultat dans Grafana/Tableau
    3. Moteur de recommandations

      Stockage des interactions utilisateur

      • Collection interactions : stocke les clics, achats, notes

      Algorithme de recommandation

      • Collaborative filtering : suggestions basées sur les comportements similaires
      • Pipeline d’agrégation pour extraire les items populaires ou similaires

      Déploiement

      • Déploiement avec Docker et Kubernetes pour la scalabilité

      Mini-lab

      1. Insérer des interactions simulées dans la collection
      2. Écrire une requête pour recommander les produits les plus populaires
    4. Quiz interactif


      1. A. Table relationnelle
        B. Document imbriqué
        C. Fichier texte

      2. A. Grafana
        B. MongoDB Compass
        C. Postman

      3. A. Tri à bulles
        B. Collaborative filtering
        C. K-means

      4. A. Docker/Kubernetes
        B. Excel
        C. Mongoimport

      5. A. Aggregation Pipeline
        B. Trigger
        C. Index
  3. Intégration avec les outils Big Data

    1. Intégration de MongoDB avec les outils Big Data

      Connecteurs et écosystème

      • Connecteur MongoDB pour Hadoop : permet d’utiliser HDFS comme source ou destination, et d’exécuter des jobs MapReduce sur des collections MongoDB.
      • Connecteur MongoDB pour Spark : lecture/écriture directe entre Spark DataFrame et MongoDB. Idéal pour l’analytics distribué et le machine learning.
      • Intégration avec Kafka : MongoDB Kafka Connector pour consommer ou produire des messages en temps réel (Change Streams, CDC, ETL temps réel).
      • Utilisation comme stockage pour ETL : MongoDB s’intègre dans les pipelines ETL modernes (Talend, NiFi, Airflow, etc.).

      Change Streams et traitement temps réel

      • Change Streams : permet d’écouter en temps réel les modifications sur une collection ou une base (insert/update/delete) et de déclencher des traitements.
      • Cas d’usage : synchronisation de données, analytics en streaming, déclenchement de workflows.

      Comparatif MongoDB vs Cassandra vs Elasticsearch

      • MongoDB : orienté document, requêtes riches, agrégation, flexibilité du schéma.
      • Cassandra : clé-valeur/colonne, scalabilité extrême, écritures rapides, modèle AP (CAP).
      • Elasticsearch : indexation et recherche plein texte, analytics sur logs, modèle orienté documents mais optimisé pour la recherche.
    2. Projet pratique : Pipeline temps réel Clickstream

      Objectif

      Construire un pipeline temps réel qui collecte, traite et stocke des données de navigation web (clickstream) :

      • Kafka (ingestion des événements)
      • Spark Streaming (traitement temps réel, enrichissement)
      • MongoDB (stockage et visualisation)

      Étapes du projet

      1. Déployer un cluster Kafka, Spark et MongoDB (locaux ou cloud).
      2. Configurer le connecteur Kafka-MongoDB.
      3. Simuler des événements clickstream (producteurs Kafka).
      4. Traiter les événements avec Spark Streaming (filtres, enrichissement, agrégation).
      5. Stocker les résultats dans MongoDB et visualiser avec MongoDB Charts ou un outil BI.

      Mini-lab

      1. Lancer un producteur Kafka qui envoie des événements de clics simulés.
      2. Configurer Spark Streaming pour consommer le topic Kafka et écrire dans MongoDB.
      3. Vérifier les données dans MongoDB : db.clicks.find()
    3. Quiz interactif


      1. A. MapReduce
        B. Change Streams
        C. Aggregation Pipeline

      2. A. Faire du machine learning distribué
        B. Faire du backup
        C. Indexer du texte

      3. A. MongoDB
        B. Cassandra
        C. Elasticsearch

      4. A. Spark
        B. Kafka
        C. MongoDB

      5. A. Stockage flexible et requêtes riches
        B. Indexation temps réel
        C. Scalabilité extrême
  4. MongoDB pour le Big Data

    1. Scalabilité et haute disponibilité

      1. Sharding : partitionnement horizontal pour les bases de données massives
        Note : Le sharding permet de répartir les données sur plusieurs serveurs pour absorber de très gros volumes.
      2. Réplication : configuration d'un Replica Set pour la tolérance aux pannes
        Note : Un Replica Set assure la haute disponibilité et la reprise automatique en cas de panne d'un serveur.
      3. Indexation : optimisation des requêtes (createIndex, types d'index, compound indexes)
        Note : Bien choisir ses index est crucial pour les performances sur de gros volumes.
    2. Intégration avec des outils Big Data

      1. Connecteurs MongoDB pour Hadoop et Spark
        Exemple : Utilisez le MongoDB Connector for Spark pour analyser de grandes quantités de données.
      2. Utilisation avec Kafka pour le streaming de données
        Note : Le Kafka Connector permet d'intégrer MongoDB dans des architectures temps réel.
      3. Utilisation comme stockage pour les pipelines ETL
        MongoDB est souvent utilisé comme zone de transit ou de stockage intermédiaire dans les workflows Big Data.
    3. Cas d'usage Big Data

      1. Stockage de logs applicatifs massifs
      2. Analyse de données IoT à grande échelle
      3. Reporting et BI sur de très gros volumes
    4. Quiz

      Quelles sont les deux principales stratégies pour gérer de très gros volumes de données dans MongoDB ?
    5. QCM

      Quel composant permet de répartir les données sur plusieurs serveurs MongoDB ?




Exercices, examens et projets

Exercice

Atelier MongoDB

Concevoir un schéma documentaire et manipuler une collection.

Obligatoire Consulter
Examen

Examen MongoDB

Évaluer les requêtes, agrégations, indexations et transactions.

Obligatoire Consulter
Projet

Projet MongoDB

Développer une API documentaire avec données de démonstration.

Livrables :

  • Schéma
  • API
  • Jeu de données
Obligatoire Consulter