Outil indispensable au data mining et autres procédés de collecte et de traitement des données, les data warehouses, aussi appelés entrepôts de données, ont été inventés dans les années 90. Ils consistent en un système de stockage centralisé des données collectées grâce aux diverses techniques connues de minage de données. Ils constituent la source dans laquelle les algorithmes vont puiser les données à traiter, les rendant absolument incontournables dans tout processus lié aux big data ou à l'intelligence artificielle. On en trouve donc au cœur de la plupart des systèmes informatiques des entreprises, comme les services financiers, les télécoms, mais aussi le secteur public, l'administration et la santé, sans compter bien entendu le secteur commercial.
Qu'est-ce qu'un data warehouse ?
Il faut imaginer les data warehouses comme des entrepôts virtuels dans lesquels sont stockées toutes les données collectées. En clair, il s'agit ni plus ni moins que d'une base de données colossale, mais structurée d'une certaine manière, organisée et surtout accessible par d'autres logiciels. Il ne sert donc pas uniquement à stocker, mais doit être optimisé pour permettre aux outils de Business Intelligence d'y accéder rapidement pour des analyses ad hoc et ainsi permettre leur exploitation dans des rapports, des tableaux ou des modèles prédictifs, voire des intelligences artificielles.
Il s'agit d'un système centralisé, apte à recevoir, nettoyer et organiser la somme énorme de données brutes extraites en amont. Celles-ci sont virtuellement stockées selon une structure propre à chaque entreprise, en fonction de ses besoins et surtout des outils d'analyse dont elle dispose. Il n'existe donc pas de modèle par défaut d'entrepôt de données, et c'est à un expert informatique engagé par une entreprise de le créer de A à Z en fonction des besoins locaux. C'est là la principale différence avec un data lake.
Quelle est la différence entre un data warehouse et un data lake ?
Il ne faut pas confondre un data warehouse avec un data lake. Si, dans l'idée, il s'agit dans les deux cas de systèmes de stockage de données, leurs structures et leurs finalités sont totalement différentes.
L'analogie est assez claire lorsque l'on parle d'entrepôt de données ou de « lac » de données. On imagine très bien ainsi la différence majeure qui existe entre ces deux systèmes. Le data warehouse, tel un entrepôt physique, est structuré, ordonné, organisé pour permettre l'accès à toutes les informations facilement par les applications et logiciels qui y ont accès. Un data lake, en revanche, est un réservoir de données brutes, non traitées, qu'il faut encore explorer. On utilise ce genre de structure pour les projets de machine learning et de big data. La quantité et le volume massif de données pêle-mêles contenues dans les data lakes ne permettent pas l'utilisation de requêtes SQL comme avec un entrepôt de données.
Comment fonctionne un entrepôt de données ?
Pour comprendre le fonctionnement d'un data warehouse, il faut s'intéresser à sa structure informatique, mais aussi à son interaction avec un opérateur via une interface logicielle.
Fonctionnement informatique d'un entrepôt de données
Du point de vue informatique, un entrepôt de données est une base de données supportée par une très grande mémoire. Un mélange de dispositifs SSD, HDD et RAM est assemblé pour obtenir le meilleur compromis entre puissance de stockage, rapidité d'accès aux informations et surtout coût de l'installation. Le processus de gestion de l'entrepôt est de type ETL, pour collecter, transformer et organiser tout type de données pouvant provenir d'une infinité de sources. Celles-ci sont d'abord extraites comme bases de données opérationnelles sous format CSV avant d'être transformées et formatées pour répondre aux besoins des applications pour la suite. Petit à petit, les informations sont triées, nettoyées, organisées par similarité et en classes selon les demandes, avant d'être mises à disposition des applications pour répondre aux requêtes des analystes. L'accessibilité aux données est garantie par l'utilisation de systèmes de gestion d'entrepôts.
Interface utilisateur d'un entrepôt de données
La partie virtuelle de l'entrepôt de données est ensuite connectée à différentes applications pour être exploitée via une interface. Généralement, on utilise des outils de Business Intelligence pour visualiser et analyser intuitivement toute cette masse de données. Ils prennent la forme de formulaires de requêtes, de tableaux interactifs, de rapports analytiques… Les analystes de données peuvent donc facilement créer des graphiques et diagrammes pertinents selon les besoins de l'entreprise. De nombreux filtres permettent d'affiner les recherches, d'explorer des sous-ensembles, et d'entrer des critères de recherche précis, voire de configurer des alertes et notifications en temps réel sur les flux de données entrants et nouvellement classés.
Éléments clés à inclure dans l'architecture d'un data warehouse
L'architecture d'un entrepôt de données est assez complexe et est donc prise en charge par des experts en informatique et data science. Ils devront mettre en place la partie matérielle et logicielle.
Serveurs et mémoire grande capacité
Tout d'abord, il faudra installer de puissants serveurs pour héberger le système. Ils nécessitent, pour être efficaces et scalables, des processeurs de grande puissance, mais surtout une mémoire importante. Pour une entreprise de taille normale, celle-ci se compte en centaines de téraoctets. Celle-ci devra être un assemblage de différents types de mémoires selon les applications qui y auront accès, pour optimiser le temps de réponse et le coût de l'installation. Par exemple, les données qui nécessitent un accès rapide ou immédiat pourront être stockées sur des disques SSD, voire de la RAM, mais à des coûts importants. Pour les informations d'usage courant, un système de disque dur classique, mais de grande capacité pourra faire l'affaire.
Évolutivité et liaisons de qualité pour la rapidité des transferts
Pour des raisons de scalabilité, il est important de prévoir des emplacements libres sur les racks, pour augmenter la capacité de stockage et la puissance des processeurs, si l'entreprise grandit ou voit ses besoins augmenter. La communication entre les serveurs doit pouvoir être fluide et donc d'excellente qualité. De même, des liaisons parallèles devront être installées, pour prévenir un défaut de l'une d'elles. Ainsi, la rupture d'une liaison réseau n'aura que de faibles conséquences le temps de la réparation. Et puisqu'il est question de perte matérielle, il est indispensable de prévoir un système de sauvegarde. Une mémoire de très grande capacité qui sera régulièrement alimentée pour être une copie miroir de l'entrepôt principal. Elle devra être indépendante et protégée, et servira de système de restauration en dernier recours.
Les applications de Business Intelligence
Tout ce système sera connecté à des applications et logiciels de Business Intelligence pour permettre l'utilisation par les opérateurs. Ces applications devront inclure un système de gestion de base de données, qui fera office d'interface principale, et le processus ETL pour l'extraction et la transformation des données, qui alimenteront l'entrepôt. De nombreuses applications de Business Intelligence existent, et certaines sont développées pour l'usage unique d'une entreprise. On ne peut donc pas les lister ici, mais elles sont nécessaires pour utiliser un data warehouse. Pour parfaire ce tour de l'entrepôt numérique, il est à noter l'importance croissante des métadonnées, véritables cartes d'identité des données brutes, qui devront être gérées par un logiciel dédié.
Comment mettre en place un data warehouse ?
Analyse des besoins et conception d'architecture
La mise en place d'un data warehouse est généralement dirigée par une équipe d'experts en informatique, pouvant être titulaires d'un bachelor en data science par exemple. Un architecte data concevra l'architecture globale du système, un ingénieur data pour la mise en œuvre technique et la configuration initiale… Mais aussi des administrateurs de bases de données, des analystes en Business Intelligence et si possible des experts en cybersécurité. Une fois les objectifs et les besoins de l'entreprise définis, l'architecte data conçoit un système qui répond à un équilibre entre performances et coûts matériels, pour rationaliser l'investissement. Il choisira le type de réseau adapté, et pourra passer commande des différents matériels.
Installation du matériel, processeur et stockage
Serveurs et systèmes de stockage seront ensuite installés par l'ingénieur data selon les spécifications de l'architecte. Une attention particulière doit être apportée à la configuration initiale des logiciels de gestion de base de données, car de cette configuration dépendra la fiabilité des analyses qui suivront. Les outils d'extraction et d'organisation ne seront installés qu'une fois la gestion de la base de données établie et testée.
Sécurisation de l'entrepôt
La dernière étape sera la sécurisation du système. Pour cela, on veillera à tester la mémoire de sauvegarde et la capacité de restauration du système en cas de panne, mais aussi à installer un système de contrôle d'accès pour protéger la masse de données de toute intrusion ou malveillance. En cas de manipulation de données personnelles, c'est en effet la responsabilité de l'entreprise de protéger l'accès à ces données en dernier ressort.
Lancement de l'interface
L'entrepôt de données est enfin prêt à fonctionner et à être testé en conditions réelles. Un opérateur peut lancer les outils ETL pour commencer à collecter les données ciblées, et vérifier le bon déroulement de la collecte, du nettoyage et de l'organisation. Les outils Business Intelligence peuvent être créés ad hoc, ou être fournis par les programmeurs, et seront l'interface entre les analystes et l'entrepôt de données.
Formation continue et responsabilité RGPD
N'oubliez pas de programmer un calendrier de maintenance et de tests de sécurité tout au long de la durée d'utilisation du data warehouse, et de former les équipes amenées à l'utiliser à sa manipulation, mais aussi au cadre légal qui entoure et réglemente l'utilisation et le traitement de certains types de données.