📋 Plan du Cours
- Données & Volume
- Architecture & Distribuée
- Modèles & NoSQL
- Stockage & HDFS
- Traitement & Frameworks
- Requêtes & Cypher
- Graphes & Neo4j
- Performance & CAP
- Cas d’usage & Industrie
- Défis & Limites
🔑 Notions clés & Définitions
- Big Data : Ensemble des technologies, architectures et méthodes permettant de collecter, stocker, traiter et analyser des volumes massifs de données, souvent non structurées, dans un délai raisonnable pour en extraire des connaissances utiles.
- Les 5V du Big Data : Volume (quantité), Vélocité (vitesse), Variété (multiplicité), Véracité (fiabilité), Valeur (exploitation).
- Données structurées : Données organisées selon un schéma fixe (ex : bases SQL).
- Données semi-structurées : Données avec organisation flexible, balises ou paires clé-valeur (ex : JSON, XML).
- Données non structurées : Données sans format défini (ex : images, vidéos, textes).
- Data Lake : Stockage brut de toutes les données dans leur format d’origine, sans schéma prédéfini.
📝 Points essentiels
- La croissance exponentielle des données (ex : réseaux sociaux, IoT, transactions en ligne) a rendu obsolètes les systèmes traditionnels de gestion (SGBD relationnels).
- Le Big Data se caractérise par la gestion de volumes très importants, une grande variété de formats, une vitesse de génération élevée, et la nécessité d’en tirer de la valeur.
- Les types de données dans le Big Data varient : structurées (bases SQL), semi-structurées (JSON, XML), non structurées (images, vidéos).
- L’architecture d’un système Big Data repose sur trois couches principales : collecte/ingestion, stockage distribué, traitement/analyse.
- Technologies clés : Hadoop (HDFS, MapReduce), Spark, bases NoSQL (Cassandra, MongoDB, Neo4j).
- Les enjeux incluent la maîtrise technologique, la sécurité, la gouvernance, ainsi que l’éthique et la conformité (RGPD).
- Le traitement peut être batch (traitement par lots), streaming (temps réel), ou interactif (exploration).
- La tendance actuelle privilégie le traitement en mémoire (Spark) pour des performances accrues.
💡 À retenir
Le Big Data repose sur des architectures distribuées capables de gérer des volumes, variétés et vitesses extrêmes, tout en permettant d’extraire une valeur stratégique à partir de données massives. La maîtrise de ces technologies est essentielle pour transformer la donnée en avantage concurrentiel.
🔑 Notions clés & Définitions
- Architecture distribuée : Organisation d’un système informatique composé de plusieurs nœuds (serveurs) interconnectés, partageant ressources et données pour assurer scalabilité, tolérance aux pannes et performance.
- Cluster : Ensemble cohérent de machines travaillant conjointement pour une tâche commune, souvent utilisé dans le contexte Big Data (ex : Spark Cluster).
- Hadoop : Framework open-source permettant le stockage et le traitement distribué de données massives, basé sur HDFS et MapReduce.
- HDFS (Hadoop Distributed File System) : Système de fichiers distribué conçu pour stocker de très grands volumes de données en blocs répliqués sur plusieurs nœuds, assurant tolérance aux pannes et scalabilité.
- Spark : Framework de traitement distribué en mémoire, offrant rapidité et flexibilité pour le traitement batch et streaming, en complément ou alternative à Hadoop MapReduce.
- Principes fondamentaux : partage de charge, tolérance aux pannes via réplication, scalabilité horizontale, localité des données pour minimiser le transfert réseau.
📝 Points essentiels
- La distribution permet de traiter de très grands volumes de données en répartissant la charge sur plusieurs nœuds, évitant la surcharge d’un seul serveur.
- La tolérance aux pannes est assurée par la réplication automatique des données (ex : 3 copies dans HDFS).
- La scalabilité horizontale facilite l’ajout de nœuds pour augmenter la capacité sans modifier l’infrastructure existante.
- Les modèles d’architecture distribuée incluent :
- Master/Slave (ex : Hadoop, HDFS)
- Peer-to-Peer (ex : Cassandra)
- Cluster (ex : Spark)
- L’écosystème Hadoop se compose de composants comme HDFS, YARN (gestionnaire de ressources), MapReduce, Hive, Pig, Oozie.
- Spark surpasse Hadoop en vitesse grâce au traitement en mémoire, supportant le streaming en temps réel et simplifiant le développement.
- La structure d’un système distribué repose sur la répartition des données, la gestion centralisée (ex : NameNode) et la coordination des tâches.
💡 À retenir
L’architecture distribuée est la clé pour exploiter efficacement le Big Data : elle garantit la scalabilité, la résilience et la performance du traitement en répartissant intelligemment les ressources et en assurant la continuité des opérations malgré les pannes.
🔑 Notions clés & Définitions
- NoSQL : Ensemble de systèmes de gestion de bases de données qui ne reposent pas sur le modèle relationnel traditionnel, conçus pour gérer de gros volumes de données non structurées ou semi-structurées avec une grande scalabilité.
- Modèles de bases NoSQL :
- Clé-valeur : Stockage de paires clé/valeur, très performant pour la récupération rapide (ex : Redis, Riak).
- Colonne : Organisation en colonnes plutôt qu’en lignes, adaptée aux analyses massives (ex : Cassandra, HBase).
- Document : Stockage de documents structurés en JSON, XML, permettant une grande flexibilité (ex : MongoDB, CouchDB).
- Graphe : Représentation des données sous forme de graphes avec des nœuds et des relations, idéale pour analyser réseaux sociaux ou relations complexes (ex : Neo4j).
- Schéma flexible : Capacité à stocker des données sans schéma rigide, permettant une évolution dynamique des structures.
- Consistance éventuelle : Modèle de cohérence où la synchronisation des données sur tous les nœuds peut prendre du temps, privilégiant la disponibilité.
📝 Points essentiels
- Les bases NoSQL ont été conçues pour répondre aux limites des SGBD relationnels face à l’augmentation du volume, de la variété et de la vitesse des données.
- La scalabilité horizontale est une caractéristique clé, permettant d’ajouter facilement des nœuds pour augmenter la capacité.
- La gestion de données non structurées ou semi-structurées est facilitée par ces modèles, notamment via le stockage de documents ou de graphes.
- La cohérence peut être compromise au profit de la disponibilité et de la performance, notamment avec le modèle de cohérence éventuelle.
- Les technologies NoSQL sont souvent utilisées dans des architectures distribuées pour assurer la tolérance aux pannes et la haute disponibilité.
💡 À retenir
Les bases NoSQL offrent une flexibilité et une scalabilité adaptées aux besoins du Big Data, en privilégiant la performance sur la cohérence stricte, ce qui en fait des outils indispensables pour gérer des données massives et hétérogènes dans un environnement distribué.
🔑 Notions clés & Définitions
- HDFS (Hadoop Distributed File System) : système de fichiers distribué conçu pour stocker de très grands volumes de données en les fragmentant en blocs et en les répliquant sur plusieurs nœuds pour assurer la tolérance aux pannes et la scalabilité.
- DataNode : nœud esclave dans HDFS qui stocke et gère les blocs de données.
- NameNode : nœud maître qui gère la métadonnée du système de fichiers, notamment la localisation des blocs.
- Bloc : unité de stockage dans HDFS, généralement de 128 Mo, qui constitue la division des fichiers pour le stockage distribué.
- NoSQL : famille de bases de données non relationnelles, souvent distribuées, adaptées au stockage de données semi-structurées ou non structurées, telles que clés-valeurs, colonnes, documents ou graphes.
- Data Lake : stockage centralisé permettant de conserver toutes les données dans leur format brut, sans schéma prédéfini, facilitant l’analyse et l’IA.
📝 Points essentiels
- Architecture HDFS : repose sur un NameNode qui gère la structure et plusieurs DataNodes qui stockent les blocs de données. La réplication (par défaut 3 copies) assure la tolérance aux pannes.
- Fonctionnement : un fichier est découpé en blocs, répliqué sur plusieurs DataNodes. Lorsqu’un DataNode échoue, le système régénère automatiquement les blocs manquants.
- Commandes de base HDFS : création de répertoires (
-mkdir), transfert de fichiers (-put), listing (-ls), lecture (-cat).
- Stockage NoSQL : adapté pour gérer la variété et la volumétrie des données modernes, avec des modèles clés-valeur, colonnes, documents ou graphes.
- Data Lake : stockage flexible permettant de conserver toutes les données dans leur format natif, facilitant leur exploitation pour l’analyse avancée.
💡 À retenir
Le stockage Big Data s’appuie sur des architectures distribuées comme HDFS et les bases NoSQL pour assurer la scalabilité, la résilience et la gestion efficace de volumes massifs de données variées, structurées ou non.
🔑 Notions clés & Définitions
- Big Data : Ensemble des technologies, architectures et méthodes permettant de collecter, stocker, traiter et analyser des volumes massifs de données, souvent non structurées, pour en extraire des connaissances exploitables.
- Architecture distribuée : Système composé de plusieurs serveurs (nœuds) connectés en réseau, partageant ressources pour stocker et traiter les données de manière parallèle, évolutive et tolérante aux pannes.
- Hadoop : Framework open-source pour le stockage (HDFS) et le traitement distribué de données massives, basé sur le paradigme MapReduce.
- HDFS (Hadoop Distributed File System) : Système de fichiers distribué permettant de stocker de très grands fichiers en blocs, avec réplication pour la tolérance aux pannes.
- Apache Spark : Framework de traitement distribué en mémoire, offrant une vitesse supérieure à Hadoop MapReduce, supportant batch et streaming, avec modules pour SQL, machine learning, graphes.
- MapReduce : Paradigme de traitement par lots décomposé en deux phases (Map et Reduce), permettant un traitement parallèle des données.
- NoSQL : Systèmes de gestion de bases de données non relationnelles, conçus pour la scalabilité horizontale, la flexibilité du schéma et la gestion de données semi-structurées ou non structurées.
📝 Points essentiels
- Le traitement du Big Data repose sur des architectures distribuées, permettant de traiter efficacement des volumes très importants de données en utilisant la parallélisation.
- Hadoop, avec son système HDFS et le modèle MapReduce, constitue la base historique du traitement distribué, mais est souvent complété par Apache Spark pour des traitements en mémoire plus rapides.
- Spark offre une meilleure performance pour le traitement en temps réel ou analytique grâce à son architecture en mémoire, supportant aussi des modules spécialisés (SQL, streaming, machine learning, graphes).
- La gestion des données dans le Big Data implique plusieurs couches : ingestion (Kafka, Flume), stockage (HDFS, Data Lakes, NoSQL), traitement (Spark, Flink), visualisation (Tableau, Power BI).
- La sécurité et la gouvernance (confidentialité, traçabilité, conformité RGPD) sont essentielles dans la gestion des données massives.
- La complémentarité entre Hadoop, HDFS et Spark constitue l’écosystème principal pour le traitement distribué moderne.
💡 À retenir
Le traitement du Big Data s’appuie sur des architectures distribuées et évolutives, combinant des frameworks comme Hadoop et Spark pour exploiter efficacement des volumes massifs de données, tout en intégrant des enjeux de sécurité et de gouvernance pour en assurer la fiabilité et la conformité.
🔑 Notions clés & Définitions
- Cypher : Langage de requête déclaratif spécifique aux bases de données orientées graphe, notamment Neo4j, permettant d’exprimer des motifs de graphes de façon intuitive.
- Noeud (Node) : Entité ou objet dans un graphe, représenté par un cercle, pouvant contenir des propriétés (attributs).
- Relation (Relationship) : Lien entre deux noeuds, représenté par une flèche, avec un type et éventuellement des propriétés.
- Propriétés (Properties) : Attributs ou données associées aux noeuds ou relations, sous forme de paires clé-valeur.
- Pattern (Motif) : Structure ou sous-graphe recherché dans la base, exprimée par une combinaison de noeuds, relations et propriétés.
- Requête Cypher : Instruction permettant de créer, lire, mettre à jour ou supprimer des éléments dans un graphe, en utilisant une syntaxe proche du langage naturel.
📝 Points essentiels
- Requêtes de lecture (MATCH) : Permettent de rechercher des sous-graphes correspondant à un motif précis. Exemple :
MATCH (a:Person)-[:FRIEND_OF]->(b:Person)
RETURN a.name, b.name
- Requêtes de création (CREATE) : Ajout de noeuds et relations. Exemple :
CREATE (p:Person {name: 'Alice'})-[:FRIEND_OF]->(q:Person {name: 'Bob'})
- Requêtes de mise à jour (SET) : Modifier des propriétés ou ajouter de nouvelles propriétés. Exemple :
MATCH (p:Person {name: 'Alice'})
SET p.age = 30
- Requêtes de suppression (DELETE) : Supprimer noeuds ou relations, en respectant la dépendance. Exemple :
MATCH (p:Person {name: 'Alice'})
DELETE p
- Utilisation des index et contraintes : Optimisent la recherche et garantissent l’unicité des propriétés (ex : unique sur un nom).
- Clé de sortie : Cypher facilite la manipulation et l’analyse de graphes complexes en offrant une syntaxe simple et expressive pour interroger et modifier des structures de données relationnelles.
💡 À retenir
Cypher est le langage de requête dédié aux bases de données graphe, permettant d’exprimer facilement des motifs complexes dans un graphe, ce qui en fait un outil puissant pour exploiter la structure relationnelle des données.
🔑 Notions clés & Définitions
- Graphe : Structure composée de nœuds (ou sommets) et d’arêtes (ou liens) représentant des relations entre entités. Utilisé pour modéliser des réseaux complexes (social, transport, etc.).
- Nœud (ou sommet) : Entité ou objet dans un graphe, par exemple une personne, un lieu ou un produit.
- Arête (ou lien) : Relation ou connexion entre deux nœuds, pouvant être orientée (avec direction) ou non.
- Neo4j : Base de données orientée graphe, utilisant un modèle de stockage basé sur des nœuds, relations et propriétés, optimisée pour la gestion de graphes complexes.
- Cypher : Langage de requête déclaratif spécifique à Neo4j, permettant de manipuler et interroger efficacement les graphes.
📝 Points essentiels
-
Modèle de données : Les graphes modélisent des relations complexes de façon naturelle, facilitant la recherche de chemins, la détection de communautés ou la recommandation.
-
Notion de propriétés : Nœuds et relations peuvent avoir des propriétés (attributs), enrichissant la modélisation.
-
Avantages de Neo4j : Performance élevée pour les requêtes de graphes, simplicité d’expression des requêtes relationnelles, gestion efficace des relations complexes.
-
Cas d’usage : Réseaux sociaux, recommandations, détection de fraudes, gestion de réseaux, parcours de graphes.
-
Requêtes Cypher : Syntaxe intuitive pour créer, lire, mettre à jour ou supprimer des nœuds et relations, par exemple :
MATCH (p:Person)-[:FRIEND]->(friend)
WHERE p.name = 'Alice'
RETURN friend
-
Indexation et performance : Neo4j utilise des index pour accélérer la recherche de nœuds ou relations spécifiques.
💡 À retenir
Les graphes, et notamment Neo4j, offrent une modélisation naturelle et performante pour explorer et exploiter des relations complexes dans de grands ensembles de données, ce qui en fait un outil clé pour l’analyse de réseaux et la recommandation.
🔑 Notions clés & Définitions
- Performance : Capacité d’un système à traiter rapidement et efficacement de grandes quantités de données, en minimisant le temps de réponse et en maximisant le débit.
- CAP Theorem : Principe fondamental en systèmes distribués stipulant qu’il est impossible de garantir simultanément Consistance, Disponibilité et Tolérance au Partitionnement dans un système distribué.
- Consistance : Garantie que toutes les copies d’une donnée dans un système distribué sont identiques à un instant donné.
- Disponibilité : Capacité du système à répondre à toutes les requêtes, même en cas de défaillance partielle.
- Tolérance au Partitionnement : Capacité d’un système à continuer de fonctionner malgré la perte de communication entre certains nœuds du réseau.
- Notion de Latence : Délai entre la requête d’un utilisateur et la réception de la réponse, un critère clé pour la performance.
📝 Points essentiels
- Le CAP Theorem impose un compromis : un système ne peut garantir simultanément que deux des trois propriétés (Consistance, Disponibilité, Tolérance au Partitionnement).
- En pratique, les systèmes distribués doivent faire des choix en fonction des besoins :
- CP (Consistance + Tolérance au Partitionnement) : privilégie la cohérence, parfois au détriment de la disponibilité (ex : HBase).
- AP (Disponibilité + Tolérance au Partitionnement) : privilégie la disponibilité, avec une cohérence éventuelle (ex : Cassandra, DynamoDB).
- La performance dépend aussi de la capacité à optimiser la latence, le débit, et la gestion des ressources.
- La scalabilité horizontale (ajout de nœuds) est essentielle pour maintenir la performance face à la croissance des données.
- La gestion de la réplication et du partitionnement influence directement la performance et la cohérence.
💡 À retenir
La performance dans les systèmes distribués repose sur un équilibre entre cohérence, disponibilité et tolérance au partitionnement, selon les besoins spécifiques de l’application. La maîtrise du CAP permet d’orienter le choix des architectures et technologies pour optimiser la performance.
🔑 Notions clés & Définitions
- Big Data : Ensemble des technologies, architectures et méthodes permettant de collecter, stocker, traiter et analyser des volumes massifs de données souvent non structurées, pour en extraire des connaissances exploitables.
- Industrie 4.0 : Transformation numérique de l’industrie, intégrant le Big Data, l’Internet des objets (IoT), l’intelligence artificielle (IA) pour optimiser la production, la maintenance et la gestion des ressources.
- Applications sectorielles : Utilisations concrètes du Big Data dans différents domaines comme la santé (diagnostics, médecine personnalisée), la finance (détection de fraudes), le transport (gestion du trafic, maintenance prédictive), etc.
- Data-driven economy : Modèle économique basé sur la valorisation des données pour créer de la valeur, optimiser les processus et innover.
- Cas d’usage : Situation ou problématique spécifique résolue grâce aux technologies Big Data, illustrant leur impact dans l’industrie ou les services.
📝 Points essentiels
- Le Big Data révolutionne tous les secteurs : santé, finance, commerce, transport, énergie, éducation, en permettant une prise de décision plus rapide, précise et prédictive.
- La maîtrise des cas d’usage permet d’obtenir un avantage concurrentiel stratégique, en optimisant les processus, en améliorant la relation client ou en innovant.
- Les industries adoptent des solutions basées sur l’analyse en temps réel, la maintenance prédictive, la personnalisation des services et la gestion intelligente des ressources.
- La transformation digitale via le Big Data implique aussi des enjeux éthiques (vie privée, sécurité) et stratégiques (gouvernance, compétences).
- La mise en œuvre efficace nécessite une intégration de technologies telles que Hadoop, Spark, NoSQL, et des architectures distribuées adaptées aux besoins spécifiques de chaque secteur.
💡 À retenir
Les cas d’usage du Big Data illustrent sa capacité à transformer l’industrie et les services en exploitant massivement les données pour innover, optimiser et anticiper, faisant du Big Data un levier stratégique incontournable dans l’économie moderne.
🔑 Notions clés & Définitions
- Big Data : Ensemble des technologies, architectures et méthodes permettant de collecter, stocker, traiter et analyser des volumes massifs de données, souvent non structurées, pour en extraire des connaissances utiles.
- 5V du Big Data : Volume, Vélocité, Variété, Véracité, Valeur — caractéristiques fondamentales du Big Data.
- Systèmes NoSQL : Bases de données non relationnelles conçues pour gérer efficacement des données non structurées ou semi-structurées à grande échelle, en offrant scalabilité et flexibilité.
- Architecture distribuée : Organisation de serveurs connectés en réseau partageant ressources, permettant la scalabilité, la tolérance aux pannes et la parallélisation du traitement.
- HDFS : Système de fichiers distribué de Hadoop, conçu pour stocker de très grands volumes de données avec réplication et tolérance aux pannes.
- Spark : Framework de traitement distribué en mémoire, offrant rapidité et flexibilité pour le traitement en batch et streaming.
📝 Points essentiels
- Coûts élevés : Infrastructure, maintenance, compétences spécialisées, sécurité et gouvernance représentent des investissements importants.
- Complexité technologique : Nécessité de maîtriser des outils variés (Hadoop, Spark, NoSQL) et de gérer la compatibilité avec les systèmes existants.
- Qualité et sécurité des données : Difficultés à garantir la véracité, la confidentialité et la conformité réglementaire (ex : RGPD).
- Intégration difficile : Fusion des systèmes Big Data avec les systèmes legacy pose des défis techniques et organisationnels.
- Limitations techniques : Traitements en temps réel encore coûteux ou complexes, gestion des petits fichiers inefficace, latence liée aux disques durs dans Hadoop MapReduce.
- Pénurie de compétences : Expertise rare pour déployer, optimiser et sécuriser ces architectures complexes.
- Dépendance aux architectures distribuées : Risques liés à la réplication, la cohérence et la gestion des nœuds défaillants.
💡 À retenir
Les défis du Big Data ne se limitent pas à la gestion technique des volumes massifs, mais concernent aussi la maîtrise des coûts, la sécurité, la qualité des données, et la nécessité d’adapter l’organisation et les compétences pour exploiter efficacement cette ressource stratégique.
📊 Tableaux de Synthèse
| Critère | Hadoop (HDFS) | Spark |
|---|
| Type | Stockage distribué + traitement batch | Framework de traitement en mémoire |
| Architecture | Master/Slave (NameNode / DataNodes) | Cluster en mémoire, traitement distribué |
| Fonction principale | Stockage (HDFS), traitement (MapReduce) | Traitement rapide, streaming, SQL |
| Performance | Moins rapide, batch | Très rapide, en mémoire |
| Cas d’usage | Stockage massif, traitement batch | Analyse en temps réel, itérations |
| Critère | Bases NoSQL (Clé-valeur, Document, Colonne, Graphe) |
|---|
| Modèle | Flexible, non relationnel |
| Scalabilité | Horizontale (ajout de nœuds) |
| Cohérence | Éventuelle (souvent) |
| Cas d’usage | Données semi-structurées, graphes, haute disponibilité |
⚠️ Pièges & Confusions Fréquentes
- Confondre Big Data avec simple volume de données : Big Data inclut aussi la variété, la vélocité, la véracité et la valeur.
- Croire que Hadoop est uniquement pour le stockage : Hadoop inclut aussi MapReduce, mais Spark offre de meilleures performances en mémoire.
- Confusion entre stockage (HDFS/Data Lake) et traitement (Spark, MapReduce).
- Penser que NoSQL remplace totalement SQL : ils sont complémentaires selon les cas.
- Confusion entre cohérence forte et cohérence éventuelle dans NoSQL.
- Sous-estimer l’importance de la tolérance aux pannes dans l’architecture distribuée.
- Croire que la scalabilité horizontale est automatique : elle nécessite une conception adaptée.
✅ Checklist Examen
- Définir le concept de Big Data et ses 5V.
- Expliquer la différence entre données structurées, semi-structurées et non structurées.
- Décrire l’architecture distribuée et ses avantages.
- Nommer et décrire les composants principaux de Hadoop (HDFS, NameNode, DataNode).
- Comparer Hadoop et Spark en termes de traitement.
- Citer les différents modèles NoSQL et leurs cas d’usage.
- Expliquer le principe de stockage dans HDFS.
- Définir un Data Lake et ses avantages.
- Identifier les principaux défis liés à la gestion du Big Data.
- Nommer des cas d’usage industriels du Big Data.
- Décrire les limites et défis du traitement distribué.
- Connaître les principes CAP et leur impact sur les systèmes distribués.
Crée tes propres fiches de révision
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches