Big Data, un nouveau paradigme et de nouveaux challenges Sebastiao Correia 21 Novembre 2014 Séminaire Thématique : Traitement et analyse statistique des données massives, Poitiers. 1
Présentation Sebastiao Correia Talend 2007 Directeur du développement du produit Data Quality Background : thèse en Physique Théorique Parcours Recherche opérationnelle : Optimisation, planification MDM & Business Intelligence Qualité des données 2
Objectifs du jour Mettre en évidence quelques changements de paradigmes Souligner l'importance de la qualité de données 3
Agenda Présentation de Talend Définition du Big Data Le framework Hadoop L'architecture lambda La qualité de données et le Big data Applications avec Talend Qualité de données Apprentissage automatique 4
Présentation de Talend 5
La plateforme Talend 6
L'intégration de données (ETL) Studio de développement de jobs Talend 7
La gestion de la qualité des données Profilage des données Définir les critères de qualité Correction des données Suivi de la qualité dans le temps 8
Agenda Présentation de Talend Définition du Big Data Le framework Hadoop L'architecture lambda La qualité de données et le Big data Applications avec Talend Qualité de données Apprentissage automatique 9
Définition du Big Data Définition en cours d'élaboration en même temps que les techno évoluent http://arxiv.org/abs/1309.5821 Gartner : 3 V ou 5 V Intel : 300 TB de données générées par semaine Oracle : extraction de valeur des bases de données augmentées de sources de données non structurées Microsoft : ensembles de données complexes NIST: dépasse les capacités des systèmes actuels. Google trend: Big Data associé à Hadoop, NoSQL, Google, IBM et Oracle. 10
Croissance exponentielle des données En 2012, 90% des données ont été générées durant les 2 années précédentes. Chaque jour de 2012, 2.5 Exaoctets de données sont créés. http://www.martinhilbert.net/worldinfocapacity.html 11
Quelques chiffres sur le déluge de données Par jour 144.8 milliards d'email. 340 millions tweets. 684 000 bits de contenu partagé sur Facebook. Par minute 72 heures (259,200 secondes) de video sont partagées sur YouTube. 2 millions de recherches sur Google. 34 000 likes des marques sur Facebook. 27 000 nouveaux posts sur Tumblr. 3 600 nouvelles photos sur Instagram. 571 nouveaux sites web 2.5 Petaoctects dans les bases de données Wal-Mart 40 To de données générées chaque secondes au LHC 25 Po de données stockées et analysées au LHC chaque année. 10 To produits par les capteurs des avions lors d'un vol pendant 30 minutes 1.25 To ce que peut contenir le cerveau humain Plus encore sur http://marciaconner.com/blog/data-on-big-data/ 12
Une révolution technologique : première étape En 2004, le stockage de 1Go coûtait moins de 1$. => Augmentation des capacités de stockage. Sources: http://www.mkomo.com/cost-per-gigabyte http://ns1758.ca/winch/winchest.html 13
Une révolution technologique : deuxième étape Développement du Cloud. Salesforce 1999 Amazon Web Services 2002 Amazon Elastic Compute Cloud (EC2) 2006 Google Apps 2009 De nouvelles technologies sont apparues dès les années 2000 pour gérer la volumétrie et la variété des données : Hadoop HDFS Map Reduce 14
Agenda Présentation de Talend Définition du Big Data Le framework Hadoop L'architecture lambda La qualité de données et le Big data Applications avec Talend Qualité de données Apprentissage automatique 15
La naissance d'hadoop Quelques dates 2003 : The Google File System, Sanjay Ghemawat, Howard Gobioff, and ShunTak Leung http://research.google.com/archive/gfs.html 2004 : MapReduce: Simplified Data Processing on Large Clusters, Jeffrey Dean et Sanjay Ghemawat http://research.google.com/archive/mapreduce.html 2005 : Naissance d'hadoop chez Yahoo (HDFS et MapReduce), Doug Cutting et Mike Cafarella http://research.yahoo.com/files/cutting.pdf 2006 : Bigtable: A Distributed Storage System for Structured Data, Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, and Robert E. Gruber http://research.google.com/archive/bigtable.html 16
Le framework Hadoop Hadoop projet opensource (Fondation Apache) dédié au calcul distribué, fiable et scalable http://hadoop.apache.org/ Hypothèse de départ : les machines ne sont pas fiables Hadoop la haute disponibilité au niveau applicatif (redondance des données entre machines, pertes de connexions, plantages de machines,...) Modules HDFS : Hadoop Distributed File System (inspiré de GFS) MapReduce : système pour le traitement parallèle des gros volumes de données (inspiré de Google MapReduce) En version 2 : YARN : système de gestion et planification des ressources du cluster 17
L'architecture Hadoop version 1 2 couches MapReduce HDFS En production depuis plus de 5 ans chez Yahoo, Ebay, Facebook... 18
L'architecture HDFS 1 Namenode pour l'adressage (Single-point-of-failure) Avec éventuellement un backupnode N datanodes pour le stockage 19
L'architecture MapReduce 1 Jobtracker : maître Découpe les jobs en tâches MR et les affecte aux tasktrackers N Tasktrackers : esclaves Exécute les mappers et reducers 20
Hadoop : un premier changement de paradigme Localité des Données Auparavant les données étaient déplacées dans une application pour être manipulées (SGBD, ETL, Applications...) Désormais, les applications (sous forme MapReduce) sont déplacées vers les données 21
Le modèle MapReduce Un programme MapReduce est composé de 2 fonctions Map() divise les données pour traiter des sous-problèmes Reduce() collecte et aggrège les résultats des sous-problèmes Fonctionne avec des données sous forme de paires (clé, valeur) Map(k1,v1) list(k2,v2) Reduce(k2, list (v2)) list(v3) 22
Le modèle MapReduce Exemple avec le décompte de mots 23
Un second paradigme : le système d'exploitation distribué YARN 24
L'architecture Hadoop version 2 Yarn : Sépare la planification des tâches de la gestion des ressources (jobtracker) ResourceManager composé de : Scheduler : alloue des ressources aux applications ApplicationsManager : accepte les demandes de tâches et les soumet à l'applicationmaster ApplicationMaster négocie les ressources ; exécute et suit les tâches dans un container NodeManager : suivi de l'utilisation des ressources d'une machine http://hortonworks.com/blog/apache-hadoop-yarn-concepts-and-applications/ 25
L'écosystème autour de Hadoop Connexion aux SGBD externes Base de données orientée colonnes Couche SQL Machine learning Coordination du cluster Scripting Ecosystème exhaustif : http://hadoopecosystemtable.github.io/ 26
Les distributions Rôle d'une distribution Fournir un ensemble de composants cohérents fonctionnant ensemble Assurer la compatibilités et la mise à jour des composants Même principe que les distributions Linux D'autant plus important que les projets évoluent très rapidement De nouveaux composants sont créés D'autres sont améliorés... 27
L'écosystème Hadoop Contenu d'une distribution 28
Exemple de distribution avec Hortonworks 29
Les distributions 3 principales distributions : Hortonworks Cloudera fidèle à la distribution Apache et donc 100% open source. fidèle en grande partie sauf pour les outils d administration. MapR noyau Hadoop mais repackagé et enrichi de solutions propriétaires. https://www.mapr.com/forrester-wave-hadoop-distribution-comparison-and-benchmark-report 30
Agenda Présentation de Talend Définition du Big Data Le framework Hadoop L'architecture lambda La qualité de données et le Big data Applications avec Talend Qualité de données Apprentissage automatique 31
Nouveau paradigme architectural : l'architecture Lambda Nathan Marz de Twitter définit une architecture générique pour être robuste face aux erreurs humaines problèmes matériels Permettant des requêtes ad-hoc, une scalabilité en ajoutant des machines 32
Batch Layer Gère les données brutes Stockage HDFS, Immutabilité des données (pas de mise à jour, seulement des ajouts) Calcule les vues Batch Ces vues sont calculées sur l'ensemble des données grâce à un algorithme de recalcul Vue batch = fonction (toutes les data) Ou algorithme incrémental Vue batch = fonction(new data + old view) Robustesse (tolérance aux erreurs humaines) et scalabilité obtenue grâce à L'immutabilité des données Et la fonction de calcul sur l'ensemble des données 33
Serving Layer Cette couche Indexe les vues calculées par la couche batch Fournit un accès rapide aux données Mais les données ne sont pas récentes Longueur de calcul sur l'ensemble des données 34
Speed Layer Se concentre sur les données récentes Compense la forte latence des vues batch 2 approches : Avec latence Real time view = fonction(new data) Plus rapide car incrémentale Real time view = fonction(new data+real time view) 35
Exemple d'implémentation de l'architecture Lambda 36
Insert or Update : un changement de paradigme Dans cette architecture, les données sont immutables Conséquences : Toutes les données doivent avoir un timestamp Le suivi de l'évolution des données est plus simple. L'utilisation de langages de programmation fonctionnelle est possible La programmation fonctionnelle requiert des données immutables Le traitement parallèle des données est simplifié grâce aux langages de programmation fonctionnelle D'où le succès de Scala avec Spark 37
Paradigme du Schéma à la lecture Schéma fixe (schema-on-write) : les données doivent se conformer au schéma de base prédéfini Schéma à la lecture (schema-on-read) : les schéma sont créés par des vues sur les données Evolution de la structure des données difficile Pas de contrainte sur la structure des données ingérées par le système La structure de sortie est générée par le code 38
Agenda Présentation de Talend Définition du Big Data Le framework Hadoop L'architecture lambda La qualité de données et le Big data Applications avec Talend Qualité de données Apprentissage automatique 39
Les dimensions de la qualité de données La recherche a conduit à définir des critères concernant les données. Des Dimensions : L'exactitude : dans quelle mesure les données sont-elles correctes? La validité (ou pertinence) : dans quelle mesure les données répondent aux besoins des utilisateurs? La complétude : dans quelle mesure des données sont-elles manquantes? La cohérence : dans quelle mesure les données collectées de diverses manières à différents instants se recoupent-elles? L'actualité : les données sont-elles suffisamment «fraîches»? L'accessibilité (ou facilité d'utilisation) : l'information est-elle facilement accessible, suffisamment claire, documentée? On dénombre plus de 179 dimensions 40
La qualité des données dans le contexte Big Data 41
Les challenges de la qualité des données dans le contexte Big Data 42
Le partitionnement des données Le théorème CAP (théorème de Brewer) Dans un système partitionné, on peut garantir soit la disponibilité, soit la cohérence des données Au bout d'un temps, la cohérence est assurée (eventual consistency) Ce temps peut être suffisamment court pour passer inaperçu Néanmoins la cohérence est sacrifiée 43
Challenge : assurer la qualité des données Les dimensions particulièrement importantes La provenance (attention au Data Lake, conserver une traçabilité des données) La crédibilité (quelle confiance accorder aux données du web? ) La fraîcheur (en partie résolue par l'architecture lambda) L'obsolescence (doit-on définir un horizon des événements? ) L'unicité (Attention à la duplication d'information à des instants différents) La cohérence (théorème CAP) L'exactitude (certains algorithmes donnent une réponse probabiliste http://en.wikipedia.org/wiki/hyperloglog ) Projet Falcon pour la gouvernance des données (en incubation) http://falcon.incubator.apache.org/ 44
Challenge : Le couplage des données avec les algorithmes Schéma à la lecture => évolution des données en entrée Etape de création des vues Batch : Nettoyage des données Evolution de la structure des données du Master Dataset => adaptation des algorithmes de recalcul Cleaning 45
Agenda Présentation de Talend Définition du Big Data Le framework Hadoop L'architecture lambda La qualité de données et le Big data Applications avec Talend Qualité de données Apprentissage automatique 46
La qualité de données et le big data à Talend Quelques grandes étapes Profiler 2008 Déduplication Sur Hadoop 2011 Profilage Sur Hive 2012 Framework Map/Reduce Nettoyage 2013 47
Profilage in situ avec Talend Le profilage est une étape importante de la qualité de données Echantillonner les données pour analyser la qualité? Qualité de l'échantillon? Représentativité? 1. Talend offre un profilage in situ de données sur HDFS en utilisant 1. Hive 2. Impala 2. Le profilage peut être fait au niveau des vues Batch ou Real Time 48
Exemple avec Hive Hive projet Apache initié par Facebook Langage de requêtage de type SQL Traduit les requêtes HiveQL en jobs map/reduce Hadoop. 49
Application du principe de Schema-on-read avec Hive Exemple de création d'une table Hive à partir d'un fichier csv Exemple de création d'une table Hive à partir d'un fichier de logs. CREATE EXTERNAL TABLE ACCESS_LOGS ( ip_address string, date_string string, request string, response string ) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.regexserde' WITH SERDEPROPERTIES ("input.regex" = "^([\\d.]+) \\S+ \\S+ \\[(.+?)\\] \\\"(.+?)\\\" (\\d{3}) (\\d+)" ) LOCATION '/user/data/accesslogfixed'; 50
Exemple de profilage pour la détection de fraude Loi de Benford 208023 lignes nb étudiants/commune ou dépt ou pays Suspect OK 51
Exemple : Utilisation de Map Reduce pour le rapprochement de données Processus permettant d'identifier les enregistrements concernant les mêmes objets 52
Le rapprochement de données Optimisation en réduisant le nombre de comparaisons Stratégie de blocking partitionnement des données Exemple : 1.000 nouveaux clients à comparer aux 10.000 clients référencés => 10.000.000 de comparaisons!! Blocking : 100 x blocs de 10 enregistrements en entrée à comparer à 100 blocs de 100 enregistrements. Nb comparaisons : 100 x (10 x 100) = 100 000 Approche idéale pour Hadoop Map Reduce 53
Rapprochement avec Hadoop 54
Rapprochement avec Hadoop Map Splitting Mapping 55
Rapprochement avec Hadoop Shuffle 56
Rapprochement avec Hadoop Reduce 57
Rapprochement avec Talend Cluster 9 noeuds (Cloudera CDH 4.5 avec Yarn) Modèle quadratique dépend de la stratégie de blocking t ~ 16 + 1,6x10-5 N + 2,5x10-11 N2 58
Outiller les data scientists l'apprentissage automatique Composants Mahout pour le clustering Composants Spark http://spark.apache.org pour le filtrage collaboratif Implémenter son architecture lambda pour l'analytique Spark Streaming (micro-batch) Framework pour Storm https://storm.apache.org/ Traiter des millions de tuples par seconde sur chaque noeud. Tolérance à la panne Garantit le traitement des données 59
Clustering Algorithmes disponibles (basés sur Mahout) Canopy (souvent utilisé pour initialiser les clusters du k-means) K-means Fuzzy k-means Dirichlet Et plusieurs distances Euclidienne Manhattan Chebyshev Cosinus 60
Les futurs outils de fouille de données sur Hadoop - Spark Spark (projet Apache) Tourne sur un cluster Hadoop 2 100x plus rapide que Hadoop (en mémoire) Mllib K-means Régression linéaire Régression logistique Classification naïve bayesienne Descente de gradient stochastique 61
Spark Application Spark Programme principal : le Driver planifie l'exécution des tâches sur le cluster Connexion à plusieurs clusters managers (standalone ou Mesos/YARN) Le driver envoie des jobs (plusieurs tâches à exécuter) Les données peuvent être conservées dans un cache Source : http://spark.apache.org/docs/latest/cluster-overview.html 62
Recommandation de films avec Spark Apprentissage du modèle 63
Recommandation de films avec Spark 64
Conclusion 2 révolutions technologiques ont conduit à une explosion des données Prix du stockage de l'information, le cloud De nouveaux paradigmes Les algorithmes sont déplacés auprès des données Naissance d'un OS distribué autour des données avec Yarn/HDFS L'architecture lambda pour la robustesse et la scalabilité L'immutabilité des données permet une approche plus mathématique des transformations de donnnées Le schéma à la lecture (schema-on-read) relaxe les contraintes imposées sur les données en entrée 65
Conclusion Les challenges La gestion de la qualité des données La gestion des algorithmes (complexité) Construire les outils pour gérer cette évolution 66