L'analyse des données a remplacé l'acquisition des données en tant que goulot d'étranglement de la prise de décision fondée sur des données probantes - nous nous noyons dans ces données. L'extraction de connaissances à partir d'ensembles de données volumineux, hétérogènes et bruyants nécessite non seulement des ressources informatiques puissantes, mais aussi des abstractions de programmation permettant de les utiliser efficacement. Les abstractions qui ont émergé au cours de la dernière décennie combinent des idées provenant de bases de données parallèles, de systèmes distribués et de langages de programmation pour créer une nouvelle classe de plateformes d'analyse de données évolutives qui constituent la base de la science des données à des échelles réalistes. Dans ce cours, vous découvrirez le paysage des systèmes pertinents, les principes sur lesquels ils reposent, leurs compromis et la façon d'évaluer leur utilité par rapport à vos besoins. Vous apprendrez comment les systèmes pratiques ont été dérivés de la frontière de la recherche en informatique et quels sont les systèmes qui se profilent à l'horizon. Le cloud computing, les bases de données SQL et NoSQL, MapReduce et l'écosystème qu'il a engendré, Spark et ses contemporains, et les systèmes spécialisés pour les graphes et les tableaux seront couverts. Vous apprendrez également l'histoire et le contexte de la science des données, les compétences, les défis et les méthodologies que le terme implique, et comment structurer un projet de science des données. A la fin de ce cours, vous serez capable de : Objectifs d'apprentissage :
1. Décrire les modèles communs, les défis et les approches associés aux projets de science des données, et ce qui les différencie des projets dans des domaines connexes. 2. Identifier et utiliser les modèles de programmation associés à la manipulation de données évolutives, y compris l'algèbre relationnelle, mapreduce, et d'autres modèles de flux de données. 3. Utiliser la technologie des bases de données adaptée à l'analyse à grande échelle, y compris les concepts de bases de données parallèles, de traitement parallèle des requêtes et d'analyse dans la base de données. 4. Évaluer les magasins de valeurs clés et les systèmes NoSQL, décrire leurs compromis avec des systèmes comparables, les détails d'exemples importants dans l'espace et les tendances futures. 5. "Penser en MapReduce pour écrire efficacement des algorithmes pour des systèmes tels que Hadoop et Spark. Vous comprendrez leurs limites, les détails de leur conception, leur relation avec les bases de données et l'écosystème d'algorithmes, d'extensions et de langages qui leur est associé. écrire des programmes dans Spark 6. Décrivez le paysage des systèmes Big Data spécialisés pour les graphes, les tableaux et les flux