Big Data, un nouveau paradigme et de nouveaux challenges Sebastiao Correia – 21 Novembre 2014 © Talend 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 © Talend 2014 2 Objectifs du jour Mettre en évidence quelques changements de paradigmes Souligner l'importance de la qualité de données © Talend 2014 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 © Talend 2014 4 Présentation de Talend © Talend 2014 5 La plateforme Talend © Talend 2014 6 L'intégration de données (ETL) ● Studio de développement de jobs Talend © Talend 2014 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 © Talend 2014 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 © Talend 2014 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. © Talend 2014 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 © Talend 2014 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/ © Talend 2014 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 © Talend 2014 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 © Talend 2014 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 © Talend 2014 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 © Talend 2014 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 © Talend 2014 – 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... © Talend 2014 18 L'architecture HDFS ● 1 Namenode pour l'adressage (Single-point-of-failure) ● ● Avec éventuellement un backupnode N datanodes pour le stockage © Talend 2014 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 © Talend 2014 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 © Talend 2014 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) © Talend 2014 22 Le modèle MapReduce ● Exemple avec le décompte de mots © Talend 2014 23 Un second paradigme : le système d'exploitation distribué YARN © Talend 2014 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/ © Talend 2014 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/ © Talend 2014 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... © Talend 2014 27 L'écosystème Hadoop ● Contenu d'une distribution © Talend 2014 28 Exemple de distribution avec Hortonworks © Talend 2014 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 © Talend 2014 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 © Talend 2014 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 © Talend 2014 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 © Talend 2014 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 © Talend 2014 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) © Talend 2014 35 Exemple d'implémentation de l'architecture Lambda © Talend 2014 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 © Talend 2014 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 ● ● © Talend 2014 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 © Talend 2014 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 © Talend 2014 40 La qualité des données dans le contexte Big Data © Talend 2014 41 Les challenges de la qualité des données dans le contexte Big Data © Talend 2014 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 © Talend 2014 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/ © Talend 2014 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 © Talend 2014 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 © Talend 2014 46 La qualité de données et le big data à Talend ● Quelques grandes étapes Profiler 2008 © Talend 2014 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 © Talend 2014 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. © Talend 2014 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'; © Talend 2014 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 © Talend 2014 51 Exemple : Utilisation de Map Reduce pour le rapprochement de données ● Processus permettant d'identifier les enregistrements concernant les mêmes objets © Talend 2014 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 © Talend 2014 53 Rapprochement avec Hadoop © Talend 2014 54 Rapprochement avec Hadoop ● Map © Talend 2014 Splitting Mapping 55 Rapprochement avec Hadoop ● Shuffle © Talend 2014 56 Rapprochement avec Hadoop ● Reduce © Talend 2014 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 © Talend 2014 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/ © Talend 2014 – 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 © Talend 2014 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 © Talend 2014 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 © Talend 2014 62 Recommandation de films avec Spark ● Apprentissage du modèle © Talend 2014 63 Recommandation de films avec Spark © Talend 2014 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 © Talend 2014 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 © Talend 2014 66