2.5 Traitement des grands jeux de données
Objectifs d'apprentissage
À la fin de cette section, vous devriez être en mesure de :
- 2.5.1 Reconnaître les défis associés aux données massives, notamment les limites de stockage, de traitement et d'analyse.
- 2.5.2 Mettre en œuvre des techniques pour un stockage et une récupération efficaces des grands jeux de données, notamment la compression, l'indexation et le découpage en blocs.
- 2.5.3 Examiner les systèmes de gestion de bases de données et l'informatique en nuage ainsi que leurs caractéristiques clés par rapport aux grands jeux de données.
Les grands jeux de données, également appelés mégadonnées (big data), sont des ensembles de données extrêmement volumineux et complexes que les méthodes et outils traditionnels de traitement des données ne parviennent pas à gérer. Ces jeux de données se caractérisent généralement par des volumes, une variété et une vélocité considérables, ce qui rend difficiles leur traitement, leur gestion et leur analyse par les méthodes classiques. Les grands jeux de données peuvent être générés par une multitude de sources, notamment les réseaux sociaux, les capteurs et les transactions financières. Ils présentent généralement un degré élevé de complexité et peuvent comporter des données structurées, non structurées ou semi-structurées. Les grands jeux de données sont abordés plus en détail dans la section Autres techniques d'apprentissage automatique.
Nous avons également déjà abordé plusieurs techniques et stratégies utilisées pour dégager des informations pertinentes à partir des mégadonnées. La section Conception et réalisation d'enquêtes a présenté les techniques d'échantillonnage qui permettent aux professionnels des données d'analyser et d'examiner de grands jeux de données en sélectionnant un sous-ensemble représentatif, ou échantillon aléatoire représentatif. Les techniques de prétraitement abordées dans la section Nettoyage et prétraitement des données sont également employées pour nettoyer, normaliser et transformer les données afin de garantir leur cohérence avant toute analyse. Cela comprend la gestion des valeurs manquantes, la suppression des valeurs aberrantes et la standardisation des formats de données.
Dans cette section, nous examinerons plusieurs autres aspects de la gestion des données (data management) qui sont particulièrement utiles pour les mégadonnées, notamment la compression, le stockage, l'indexation et le découpage en blocs des données. De plus, nous aborderons les systèmes de gestion de bases de données — des logiciels qui permettent l'organisation, la manipulation et la récupération de données stockées sous un format structuré — ainsi que l'informatique en nuage.
Compression de données
La compression de données (data compression) est une méthode permettant de réduire la taille des fichiers tout en conservant les informations essentielles ; elle peut être appliquée à de nombreux types de bases de données. La compression de données est classée en deux catégories, avec perte et sans perte :
- La compression avec perte (lossy compression) réduit la taille des données en éliminant définitivement certaines données jugées non pertinentes ou redondantes. Cette méthode peut réduire considérablement la taille des fichiers, mais elle entraîne également la perte d'une partie des données. La compression avec perte est souvent utilisée pour les fichiers multimédias et les images, où de légères modifications de qualité peuvent passer inaperçues à l'œil humain. Des exemples de compression avec perte comprennent le MP3 et le JPEG.
- La compression sans perte (lossless compression) vise à réduire la taille des fichiers sans supprimer la moindre donnée. Cette méthode parvient à comprimer les données en repérant des motifs et des redondances et en les représentant plus efficacement. Cela permet la reconstruction intégrale des données d'origine sans aucune perte de qualité. La compression sans perte est couramment utilisée pour les textes et les données numériques, où chaque élément d'information est crucial. Des exemples de compression sans perte incluent le ZIP, le RAR et le PNG.
Il existe plusieurs méthodes de compression de données sans perte, notamment le codage de Huffman. Le codage de Huffman (Huffman coding) fonctionne en attribuant des codes binaires plus courts aux caractères ou symboles les plus fréquents dans un jeu de données donné, et des codes plus longs aux caractères moins fréquents, comme l'illustre la Figure 2.4. Il en résulte une utilisation plus efficace des chiffres binaires et une réduction de la taille globale des données sans aucune perte d'information lors de la compression. Le codage de Huffman s'applique aux données nécessitant une compression rapide et efficace, comme la compression vidéo, la compression d'images, ainsi que la transmission et le stockage des données.
Stockage des données
Les mégadonnées nécessitent des solutions de stockage capables de gérer d'importants volumes de types de données variés, d'offrir des performances élevées pour l'accès et le traitement des données, de garantir l'évolutivité face à des jeux de données croissants, et d'être parfaitement fiables. Le choix d'une solution de stockage dépendra du volume, de la variété et de la vélocité des données, des exigences de performance, des besoins d'évolutivité, des contraintes budgétaires et de l'infrastructure existante. Les organisations déploient souvent une combinaison de technologies de stockage pour répondre aux différents usages et besoins au sein de leurs environnements de mégadonnées. Parmi les types courants de solutions de stockage utilisées pour les mégadonnées, on trouve :
- Bases de données relationnelles : les bases de données relationnelles (relational databases) organisent les données sous forme de tables et utilisent le langage de requête structuré (SQL) pour la récupération et la gestion des données. Elles sont couramment utilisées pour les données structurées traditionnelles telles que les données financières.
- Bases de données NoSQL (NoSQL databases). Ces bases de données sont conçues pour gérer des données non structurées, comme le contenu des réseaux sociaux ou les données issues de capteurs, et utilisent des modèles de données non relationnels.
- Entrepôts de données. Un entrepôt de données (data warehouse) est un référentiel centralisé de données qui regroupe des données provenant de multiples sources et permet des requêtes et des analyses complexes. Il est couramment utilisé à des fins d'informatique décisionnelle et de production de rapports.
- Stockage en nuage. Le stockage en nuage (cloud storage) consiste à stocker des données sur des serveurs distants accessibles par Internet. Il offre une grande évolutivité, une rentabilité économique et une accessibilité à distance.
- Stockage objet. Avec le stockage objet (object storage), les données sont stockées sous forme d'objets composés à la fois de données et de métadonnées. Cette méthode est souvent utilisée pour stocker de grands volumes de données non structurées, telles que des images et des vidéos.
Indexation des données
L'indexation des données est un aspect important de la gestion des données qui facilite la récupération rapide et efficace de données précises. Il s'agit d'une stratégie cruciale pour optimiser les performances des bases de données et d'autres systèmes de stockage de données. L'indexation de données (data indexing) désigne le processus d'organisation et de sauvegarde des données collectées et générées dans une base de données ou un autre système de stockage, de manière à permettre une restitution rapide et efficace de données spécifiques.
Les techniques d'indexation varient dans leur manière d'organiser et de stocker les données, mais elles visent toutes à améliorer les performances de récupération des données. L'indexation par arbre B est illustrée dans la Figure 2.5. Elle consiste à organiser les données selon une structure arborescente dotée d'un nœud racine et de branches contenant des pointeurs vers d'autres nœuds. Chaque nœud contient une plage de valeurs de données et des pointeurs vers des nœuds enfants, ce qui permet une recherche efficace au sein d'une plage de valeurs spécifique.
L'indexation par hachage consiste à utiliser une fonction de hachage pour associer des données à un index spécifique dans une table. Cela permet un accès direct aux données en fonction de leur valeur hachée, rendant la récupération plus rapide qu'une recherche séquentielle traditionnelle. L'indexation bitmap est une technique qui consiste à créer une table de bits (bitmap) pour chaque valeur distincte d'un jeu de données. Les bitmaps sont ensuite combinés pour identifier rapidement les enregistrements qui correspondent à un ensemble précis de valeurs, permettant ainsi une récupération efficace des données.
Découpage des données en blocs
Le découpage de données en blocs (data chunking), également appelé segmentation des données ou partitionnement des données, est une technique utilisée pour décomposer de grands jeux de données en blocs plus petits et plus maniables afin de faciliter leur gestion, leur traitement, leur analyse et leur stockage. Le découpage en blocs est particulièrement utile lorsque les jeux de données sont trop volumineux pour être traités ou analysés en une seule entité. En divisant les données en blocs plus petits, diverses tâches de traitement peuvent être réparties sur plusieurs nœuds de calcul ou unités de traitement.
Le découpage de données en blocs est utilisé dans les systèmes de stockage de données et pour la transmission de données sur les réseaux ; il s'avère particulièrement utile lors du traitement de grands jeux de données qui dépassent la capacité d'une seule machine ou lors du transfert de données sur un réseau à bande passante limitée. Les données divisées lors du découpage sont appelées un bloc ou un segment. La taille de chaque bloc peut varier selon les besoins, allant de quelques kilo-octets à plusieurs gigaoctets. Ces blocs sont généralement organisés de manière séquentielle, chaque bloc contenant une partie des données de l'ensemble du jeu de données. Le processus de découpage implique également l'ajout de métadonnées (metadata) (des données qui fournissent des informations sur d'autres données) à chaque bloc, telles que le numéro du bloc et le nombre total de blocs. Ces métadonnées permettent de réassembler les blocs pour reconstituer le jeu de données d'origine après avoir été transmis ou stockés séparément. Le découpage de données en blocs présente plusieurs avantages, notamment les suivants :
- Vitesse accrue. En divisant un grand jeu de données en blocs plus petits, le traitement et la transmission des données peuvent être effectués plus rapidement, ce qui réduit le temps global de traitement.
- Meilleure utilisation des ressources. Le découpage en blocs permet de distribuer et de traiter les données sur plusieurs machines, optimisant ainsi l'utilisation des ressources informatiques disponibles.
- Tolérance aux pannes accrue. En cas de corruption ou de perte de données, le découpage en blocs permet de ne récupérer que le bloc affecté plutôt que l'ensemble du jeu de données.
- Flexibilité. Le découpage en blocs permet de ne transférer et de ne traiter que les blocs nécessaires plutôt que l'ensemble du jeu de données, offrant ainsi une grande souplesse dans la gestion des données volumineuses.
Systèmes de gestion de bases de données
La gestion de bases de données (database management) est un aspect crucial des projets de science des données, car elle implique l'organisation, le stockage, la récupération et la gestion de grands volumes de données. Dans un projet de science des données, un système de gestion de bases de données (SGBD) est utilisé pour assurer un stockage et une récupération efficaces des données. Les systèmes de gestion de bases de données sont des outils logiciels servant à gérer les données sous un format structuré. Leurs fonctions sont résumées dans le Tableau 2.9.
| Fonction du SGBD | Description | Avantage |
|---|---|---|
| Stockage des données | Fournit un entrepôt centralisé pour stocker différents types de données sous un format structuré | Facilite la récupération et l'analyse des données |
| Récupération des données | Permet une récupération efficace et rapide des données de la base à l'aide de requêtes et de filtres | Rend les données plus accessibles aux scientifiques des données |
| Organisation des données | Aide à gérer les données sous un format structuré | Rend les données plus faciles à manipuler pour réaliser des analyses et identifier des tendances ou des relations entre différents points de données |
| Sécurité des données | Fournit des mesures de sécurité robustes pour protéger les données sensibles contre tout accès non autorisé | Protège les données sensibles telles que les renseignements personnels ou les données financières contre tout accès non autorisé |
| Intégration des données | Permet l'intégration de données provenant de multiples sources | Permet de combiner et d'analyser des données issues de différents jeux de données |
La mise en œuvre de techniques de gestion de bases de données est devenue essentielle pour les hôpitaux afin d'améliorer les résultats thérapeutiques pour les patients et de réduire les coûts. Cette stratégie implique la collecte et l'analyse de données de patients provenant de différentes sources, notamment les dossiers médicaux électroniques, l'imagerie médicale et les résultats d'analyses en laboratoire. Par exemple, les hôpitaux utilisent cette approche pour améliorer le traitement des patients souffrant de maladies chroniques telles que le diabète et les maladies cardiaques. En s'appuyant sur des enseignements tirés des données et en identifiant des tendances, les professionnels de santé peuvent concevoir des plans de traitement personnalisés pour chaque patient, favorisant ainsi une meilleure santé et un bien-être accru tout en générant des économies pour l'hôpital. Cela illustre l'importance d'intégrer des techniques avancées de gestion des données au sein des systèmes de santé. Grâce à une gestion et une analyse précises et efficaces des données des patients, les hôpitaux et les prestataires de soins sont en mesure de prendre des décisions éclairées, ce qui aboutit en fin de compte à un système de santé globalement plus performant et efficient.
Informatique en nuage
L'informatique en nuage (cloud computing) offre une solution rentable pour stocker de grandes quantités de données, facilitant une collaboration fluide et le transfert de données entre équipes distantes. Cette technologie regroupe des outils d'accès à distance pour le stockage, le traitement et l'analyse, permettant l'accès de multiples utilisateurs indépendamment de leur localisation géographique. De plus, l'informatique en nuage propose un large éventail d'outils de collecte de données, notamment l'apprentissage automatique et les entrepôts de données, rationalisant ainsi les opérations d'assemblage des données et améliorant l'efficacité globale. L'informatique en nuage met à la disposition des scientifiques des données les ressources et la flexibilité nécessaires pour collecter, gérer et analyser efficacement les données dans le cadre de leurs projets. Parmi les exemples de stockage en nuage, on peut citer Amazon AWS, Microsoft Azure et Google Cloud.
Exemple 2.8
Problème
Le PDG d'une grande compagnie d'assurance est confronté au défi de la prolifération des processus et documents numériques, ce qui entraîne un besoin accru de capacité de stockage et une hausse des coûts d'entretien des serveurs et du matériel. Quelles sont toutes les options disponibles pour la compagnie d'assurance confrontée au besoin d'une capacité de stockage supplémentaire à un coût plus élevé, et quelle solution serait la plus efficace pour réduire les coûts et augmenter la capacité tout en garantissant la sécurité des données ?
Solution
- Migrer vers un système de stockage en nuage : cela permettrait à l'entreprise de se décharger de la charge de maintenance des serveurs physiques et du matériel tout en bénéficiant d'une capacité de stockage pratiquement illimitée. Le coût du stockage en nuage est également généralement plus souple et modulable, permettant à l'entreprise de ne payer que pour le stockage dont elle a réellement besoin. De plus, grâce à l'utilisation de systèmes de gestion documentaire dans le nuage, l'entreprise peut rationaliser et automatiser ses processus, réduisant ainsi le recours aux documents papier et améliorant l'efficacité. Cependant, cette décision nécessiterait un examen attentif des mesures de sécurité et potentiellement une formation des employés pour s'adapter au nouveau système.
- Mettre en œuvre une stratégie d'archivage des données : au lieu de migrer immédiatement vers le nuage ou d'investir dans de nouvelles technologies, l'entreprise pourrait envisager de mettre en œuvre une stratégie d'archivage des données. Cela consiste à identifier et à stocker les données peu fréquemment utilisées dans un système de stockage distinct et peu coûteux, libérant ainsi de l'espace sur les serveurs et réduisant les coûts.
- Externaliser le stockage et la gestion des données : l'entreprise pourrait envisager d'externaliser son stockage et sa gestion des données auprès d'un prestataire tiers. Cela éliminerait la nécessité d'entretenir des serveurs physiques et du matériel, et le fournisseur pourrait également proposer des mesures de sécurité avancées et des options de sauvegarde des données.
- Consolider les données et les processus : l'entreprise pourrait évaluer ses processus et systèmes actuels pour identifier les domaines dans lesquels les données et les processus peuvent être regroupés afin de réduire le besoin de systèmes de stockage multiples et de rationaliser les flux de travail.
- Mettre en place une infrastructure de bureaux virtuels : une infrastructure de bureaux virtuels permet aux employés d'accéder à leur bureau et à leurs applications à partir d'un serveur central, réduisant ainsi le besoin d'espace de stockage individuel sur les appareils. Cela peut également améliorer la sécurité et les fonctionnalités de sauvegarde des données.
- Mettre à niveau ou repenser son système de stockage actuel : l'entreprise pourrait investir dans la mise à niveau ou la refonte de son système de stockage actuel pour en améliorer l'efficacité et augmenter sa capacité de stockage.
- Utiliser un stockage en nuage hybride : au lieu de migrer intégralement vers le nuage, l'entreprise pourrait envisager une approche hybride où certaines données sensibles sont conservées sur site, tandis que les données moins critiques sont stockées dans le nuage. Cette démarche permet de cumuler les avantages du stockage sur site et du stockage en nuage.
- Réaliser des audits réguliers de l'utilisation et du stockage des données : l'entreprise pourrait effectuer des audits périodiques de l'utilisation et du stockage de ses données afin d'identifier les redondances ou les inefficacités et d'ajuster ses ressources en conséquence. Cela peut contribuer à optimiser le stockage et à réduire les coûts au fil du temps.
Exemple 2.9
Problème
Quel est l'ordre décroissant de la capacité de stockage dans l'Exemple 2.8, du plus élevé au plus faible, tout en maintenant le même coût et le même niveau de sécurité ?
Solution
Les options de stockage disponibles dans l'Exemple 2.8, classées de la capacité la plus élevée à la plus faible pour un coût et un niveau de sécurité identiques, sont les suivantes :
- Système de stockage en nuage : cette option offrirait une capacité de stockage pratiquement illimitée, car l'entreprise peut l'augmenter en fonction de ses besoins pour un coût relativement faible. Toutefois, la capacité globale et le coût dépendraient de la formule de stockage en nuage choisie.
- Stratégie d'archivage des données : en identifiant et en archivant les données peu fréquemment utilisées, l'entreprise peut libérer de l'espace sur ses serveurs actuels et réduire ses coûts. Toutefois, la capacité de stockage restera limitée à celle des serveurs existants.
- Externalisation du stockage et de la gestion des données : en faisant appel à un prestataire externe, l'entreprise peut potentiellement accéder à une capacité de stockage supérieure à celle de son infrastructure actuelle, car le fournisseur dispose souvent de solutions de stockage plus avancées. Néanmoins, cela dépendrait également du forfait spécifique et des coûts négociés.
- Mise en place d'une infrastructure de bureaux virtuels : cette option peut offrir une capacité de stockage légèrement inférieure à celle de l'externalisation, car elle repose toujours sur un serveur central. Toutefois, elle peut tout de même représenter une amélioration par rapport à la configuration actuelle de l'entreprise.
- Mise à niveau ou refonte du système de stockage actuel : cette option peut également se traduire par une capacité de stockage inférieure à celle de l'externalisation, car elle consiste uniquement à améliorer l'infrastructure de serveurs existante plutôt qu'à recourir à un prestataire externe. Cependant, elle peut tout de même procurer une augmentation sensible de la capacité selon les mises à niveau spécifiques mises en œuvre.
- Stockage en nuage hybride : cette solution peut offrir une combinaison de capacités de stockage plus ou moins importantes selon les données spécifiques stockées dans le nuage et sur site. Les données sensibles peuvent disposer d'une capacité plus restreinte dans le nuage, tandis que les données moins critiques peuvent être stockées à plus grande échelle.
- Consolidation des données et des processus : en rationalisant les processus et en éliminant les redondances, l'entreprise peut potentiellement réduire le besoin d'une capacité de stockage excessive. Cependant, cela dépend également de la configuration actuelle de l'entreprise et de son niveau d'optimisation.
- Audits réguliers de l'utilisation et du stockage des données : cette option peut ne pas avoir d'impact direct sur la capacité de stockage, mais en identifiant et en éliminant les redondances, l'entreprise peut optimiser sa capacité existante et potentiellement réduire ses coûts à long terme.
Jeux de données
Remarque : Les principaux jeux de données mentionnés dans le code du chapitre peuvent également être téléchargés ici.)