Matière
Traitements et données large échelle
Description
Cet enseignement a pour objectif d'enseigner les principes du développement d’applications de calcul et de manipulation des données profitant des avantages offerts par les architectures distribuées modernes en terme de robustesse, de fiabilité et de scalabilité. Les systèmes de gestion de données NoSQL ainsi que les méthodes d'indexation efficaces pour des recherches optimisées sur des masses de données seront introduits. Les stratégies de fragmentation et de réplication de données adaptées aux architectures fortement distribuées seront présentées. La mise en place et la configuration d’architecture distribuées pour le calcul réparti seront traitées dans ce cours. Le paradigme de programmation map/reduce pour la répartition des traitements sera présenté et mis en pratique par l’utilisation des framework de calcul distribué Hadoop et Spark.
Compétences requises
À l'entrée de cet enseignement, un étudiant devrait savoir
- Les mécanismes fondamentaux d’architecture des ordinateurs (principes des processeurs et des mémoires)
- Les bases du fonctionnement des réseaux informatique.
- Les principes du modèle relationnel pour les bases de données.
- Utiliser un système de gestion de bases de données relationnels.
- Les bases du langages SQL.
- Les bases de la programmation en Python et en C++.
Compétences visées
À l'issue de cet enseignement un étudiant saura :
- Modéliser un système d'information réparti, en intégrant les concepts clés de fragmentation et de réplication des données.
- Analyser et distinguer les caractéristiques des différents systèmes de gestion de données regroupés sous l'appellation NoSQL, en comprenant leurs spécificités et avantages en fonction des cas d'utilisation.
- Comprendre l'importance du choix du type de traitement transactionnel et son impacts sur la cohérence des données et les performances des opérations de manipulation de données dans des architectures distribuées.
- Développer une application se basant sur le paradigme Map/Reduce.
- Utiliser les applications de traitements répartis modernes comme Hadoop ou Spark.
- Concevoir et mettre en place une architecture de calcul et de stockage de données distribuées.
Discipline(s)
- Informatique
Syllabus
- Présentation des différents modèles de bases de données, en particulier des modèles dit NoSQL :
- ◦ Bases de données clé-valeur.
- ◦ Bases de données documents.
- ◦ Bases de données graphes.
- ◦ Autres modèles.
- Contrainte de la répartition sur la cohérence des données et sur les performances des opérations de manipulation de données. Théorème CAP.
- Architecture multi-maîtres. Architecture nœud primaire – nœuds secondaires.
- Fragmentation des données. Fragmentation horizontale et verticale. Fragmentation par intervalle, par fonction de hachage. Fragmentation dynamique : intervalle dynamique et hachage cohérent.
- Réplication. Écritures synchrone/synchrone. Mécanismes de résistances aux pannes.
- Paradigme de programmation Map/Reduce. Traduction d’algorithmes standards dans le paradigme de programmation Map/Reduce.
- Architecture pour le calcul répartie utilisant Map/Reduce :
- ◦ Systèmes de fichiers HDFS.
- ◦ Présentation des framework Hadoop et Spark.