Data Warehouse

Business Intelligence, Company, Data Governance, Data Marketing, Data Mining and Data Integration, Data Quality Management, Data Regulations, Data visualisation, Data Warehouse, L'entreprise, Machine Learning, Self-service Analytics, Technology

Entrepôts de Données vs Lacs de Données : plongée comparative dans le monde de la Technologie

Dans le monde de la technologie, en constante évolution, deux termes font des vagues :

les Entrepôts de Données (Data Warehouses) et les Lacs de Données (Data Lakes).

Tous deux sont des outils puissants pour le stockage et l’analyse des données, mais ils servent à des fins différentes et possèdent des forces et faiblesses uniques. Plongeons dans le monde des données pour explorer ces deux géants technologiques.

Les Entrepôts de Données existent depuis un certain temps, offrant un moyen structuré et organisé de stocker des données. Ils sont comme une bibliothèque bien organisée, où chaque livre (donnée) a sa place. Les avancées récentes les ont rendus encore plus efficaces. Par exemple, la convergence des lacs de données et des entrepôts de données a mené à une approche plus unifiée du stockage et de l’analyse des données. Cela signifie moins de mouvements de données et plus d’efficacité – un double avantage !

De plus, l’intégration de modèles d’apprentissage automatique et de capacités d’IA a automatisé l’analyse des données, fournissant des insights plus avancés. Imaginez avoir un bibliothécaire personnel qui non seulement sait où chaque livre se trouve mais peut aussi prédire quel livre vous aurez besoin ensuite !

Cependant, chaque rose a ses épines. Les entrepôts de données peuvent être complexes et coûteux à mettre en place et à maintenir. Ils peuvent également avoir du mal avec les données non structurées ou le traitement des données en temps réel.

Mais ils brillent lorsqu’il est nécessaire d’avoir des données structurées, historiques pour le reporting et l’analyse, ou lorsque les données de différentes sources doivent être intégrées et cohérentes.

D’autre part, les lacs de données sont comme un vaste océan de données brutes, non structurées. Ils sont flexibles et évolutifs, grâce au développement du Data Mesh. Cela permet une approche plus distribuée du stockage et de l’analyse des données. De plus, l’utilisation croissante de l’apprentissage automatique et de l’IA peut automatiser l’analyse des données, fournissant des insights plus avancés.

Cependant, sans une gestion adéquate, les lacs de données peuvent devenir des « marécages de données », avec des données devenant désorganisées et difficiles à trouver et à utiliser.

L’ingestion et l’intégration des données peuvent également être longues et complexes. Mais ils sont le choix par excellence lorsqu’il est nécessaire de stocker de grands volumes de données brutes, non structurées, ou lorsque le traitement des données en temps réel ou quasi temps réel est requis.

En profondeur

ENTREPOTS DE DONNEES

Les avancées

  1. Convergence des lacs de données et des entrepôts de données : Cela permet une approche plus unifiée du stockage et de l’analyse des données, réduisant le besoin de mouvements de données et augmentant l’efficacité.

  2. Streaming plus facile des données en temps réel : Cela permet des insights plus opportuns et une prise de décision plus rapide.

  3. Intégration de modèles d’apprentissage automatique et de capacités d’IA : Cela peut automatiser l’analyse des données et fournir des insights plus avancés.

  4. Identification et résolution plus rapides des problèmes de données : Cela améliore la qualité et la fiabilité des données.

Les limites

  1. Les entrepôts de données peuvent être complexes et coûteux à mettre en place et à maintenir.

  2. Ils peuvent ne pas convenir aux données non structurées ou au traitement des données en temps réel.

 

Meilleurs scénarios pour l’implémentation :

  1. Lorsqu’il est nécessaire d’avoir des données structurées, historiques pour le reporting et l’analyse.

  2. Lorsque les données de différentes sources doivent être intégrées et cohérentes.

LACS DE DONNEES

Les avancées

  1. Développement du Data Mesh : Cela permet une approche plus distribuée du stockage et de l’analyse des données, augmentant la scalabilité et la flexibilité.

  2. Utilisation croissante de l’apprentissage automatique et de l’IA : Cela peut automatiser l’analyse des données et fournir des insights plus avancés.

  3. Outils favorisant une approche structurée de développement-test-publication pour l’ingénierie des données : Cela peut améliorer la qualité et la fiabilité des données.

Les limites

  1. Les lacs de données peuvent devenir des « marécages de données » s’ils ne sont pas correctement gérés, avec des données devenant désorganisées et difficiles à trouver et à utiliser.

  2. L’ingestion et l’intégration des données peuvent être longues et complexes.

Meilleurs scénarios pour l’implémentation :

  1. Lorsqu’il est nécessaire de stocker de grands volumes de données brutes, non structurées.

  2. Lorsque le traitement des données en temps réel ou quasi temps réel est requis.

 

En conclusion, les entrepôts de données et les lacs de données ont tous deux leurs avantages et limites. Le choix entre eux dépend des besoins spécifiques et des circonstances de l’organisation.

C’est comme choisir entre une bibliothèque et un océan – les deux ont leur charme, mais le choix dépend de ce que vous recherchez. Ainsi, que vous soyez un passionné de technologie ou un leader d’entreprise, comprendre ces deux outils peut vous aider à prendre des décisions éclairées dans le monde de la technologie.

Après tout, dans le monde des données, la connaissance, c’est le pouvoir !

Cet article vous a inspiré ?
Business Intelligence, Clients, Company, CRM, Data Governance, Data Marketing, Data Mining and Data Integration, Data Quality Management, Data visualisation, Data Warehouse, Machine Learning, Self-service Analytics

DATA: les 7 pièges à éviter. Ep 2/7 – Erreurs techniques : comment sont créées les données?

Après avoir défini quelques concepts primordiaux au regard de la donnée, nous pouvons nous plonger dans les sujets techniques qui peuvent être source d’erreur. Cet article traite des problématiques liées au process permettant d’obtenir les données qui seront par la suite exploitées. Il s’agit de la construction des fondations de nos analyses.

Et il est évident que nous ne souhaitons pas bâtir un château de cartes sur du sable !

Pour rester dans cette métaphore de la construction, si des problèmes de cette nature existent, ceux-ci seront cachés et peu visibles dans l’édifice final. Il est donc nécessaire d’apporter un soin particulier lors des étapes de collecte, de traitement, de nettoyage des données. Ce n’est pas pour rien que l’on estime que 80% du temps passé sur un projet de data science est consommé sur ce type de tâches. 

Afin d’éviter de tomber dans ce piège et de limiter la charge nécessaire à la réalisation de ces opérations qui peuvent être fastidieuses, il faut accepter trois principes fondamentaux :

  • Virtuellement tous les jeux de données ne sont pas propres et doivent être nettoyés et mis en forme
  • Chaque transition (formatage, jointure, liaison, etc.) lors des étapes de préparation est source potentiel d’une nouvelle erreur
  • Il est possible d’apprendre des techniques pour éviter la création des erreurs issues des deux premiers principes.

Accepter ces principes n’enlève pas l’obligation de passer par ce travail préalable à toute analyse mais, bonne nouvelle : savoir identifier ces risques et apprendre au fur et à mesure de nos projets, permet de limiter la portée de ce deuxième obstacle.

1. Le piège des données sales.

Les données sont sales. Je dirais même plus, toutes les données sont sales (voir premier principe énoncé précédemment), problématique de formatage, de saisie, d’unités incohérentes, de valeurs NULL etc.

Quelques exemples de ce piège sont très connus

Nous pouvons citer le crash de la sonde Mars Climate Orbiter de la NASA en 1999, par exemple. Une erreur à 125 millions de dollars qui a été causée par un double système d’unité : unités impériales et unités issues du système métriques. Cela a occasionné un calcul erroné qui a joué sur la puissance envoyée aux propulseurs de la sonde et à la destruction de celle-ci.

Heureusement, toutes les erreurs de cette nature ne vont pas nous coûter autant d’argent ! Mais elles auront malgré tout des impacts significatifs sur les résultats et le ROI des analyses que nous sommes amenés à mener.

Ainsi, chez DATANALYSIS, nous menons actuellement plusieurs projets spécifiquement sur la qualité de données dans le cadre de sujet de DATA Marketing et nous faisons face à deux types de sujet :

  • La validation des données qui visent à essayer d’améliorer la qualité de celle-ci grâce aux traitements des données, en :

-Normalisant les champs (numéro de téléphone, email etc.) : +262 692 00 11 22 / 00262692001122 / 06-92-00-11-22 correspondent à la même ligne et nous pouvons grâce à des traitements adaptés automatiser une grande partie de ce travail ;

– Complétant des champs vides grâce aux autres données présentes dans la table. Nous pouvons par exemple déduire le pays de résidence à partir des indicatifs téléphoniques, des codes postaux, des villes etc.

 

  • La déduplication, en :

-Cherchant à identifier grâce à des règles adaptées des lignes potentiellement identiques. Deux enregistrements ayant le même mail, ou le même numéro de téléphone, ou le même identifiant pour les entreprises ;

-Cherchant grâce à des algorithmes de calcul de distance à définir les valeurs proches en termes d’orthographe, de prononciation, de caractères communs etc.

Au regard de ces quelques exemples et de nos propres expériences, il est possible de constater que ce type d’erreur provient principalement des processus de saisie, de collecte ou de « scrapping » des données qu’ils soient mis en œuvre automatiquement ou par des humains. Ainsi outre les solutions que l’on peut mettre en œuvre dans les traitements de préparations de données, l’amélioration de ces étapes préalables permettra également d’améliorer grandement la qualité des données à traiter, et cela passe par l’éducation, la formation et la définition de règles et de normes clairement connues et partager (la data gouvernance n’est jamais loin).

Enfin, il convient également de se demander au regard de cette étape, quand nous pouvons considérer comme suffisamment propre. En effet, nous pouvons toujours faire plus et mieux, mais souvent les coûts engendrés peuvent dépasser les retours espérés.

2. Le piège des transformations des données

Dans le monde informatique, il existe une image visant à résumer ce type de problématique :

Souvent l’erreur se situe entre l’écran et le siège !

Et oui, même les meilleurs data scientists, data analysts ou data engineers peuvent se tromper dans les étapes de nettoyage, de transformation et de préparation des données.

Fréquemment, nous manipulons plusieurs fichiers issus de différentes sources, de différentes applications, ce qui multiplie les risques liés aux problématiques de données sales et les risques lors de la manipulation des fichiers en eux-mêmes :

  • Niveaux de granularités différents
  • Jointure sur des champs dont les valeurs ne sont pas exactement identiques (ST-DENIS vs SAINT DENIS par exemple)
  • Périmètre couverts différents sur les fichiers.

Et ce problème peut être également rendu plus complexe en fonction des outils utilisés dans le cadre de nos analyses :

  • Dans Tableau par exemple nous pouvons faire des jointures, des relations ou des liaisons de données pour lier plusieurs jeux de données entre eux. Chaque type d’opération a ses propres règles, contraintes.
  • Dans Qlik, il est nécessaire de bien comprendre comment fonctionne le moteur associatif et les règles de modélisation associées qui diffèrent de celles d’un modèle décisionnel traditionnel.

Il s’agit dans ce cas souvent de contraintes techniques liées au métier même de préparation de données et prendre le temps d’appréhender les risques et les processus en place permettra de gagner un temps important sur la mise à disposition d’analyse de données fiables et performantes.

Dans le prochain article, nous allons explorer le 3ème type d’obstacle que nous pouvons rencontrer lorsque nous utilisons les données pour éclairer le monde qui nous entoure : Les Erreurs Mathématiques

Cet article est inspiré fortement par le livre ” Avoiding Data pitfalls – How to steer clear of common blunders when working with Data and presenting Analysis and visualisation” écrit par Ben Jones, Founder and CEO de Data Litercy, édition WILEY. Nous vous recommandons cette excellente lecture!

 Pour retrouver l’intégralité des sujets qui seront abordés au cours de cette série par ici : https://www.datanalysis.re/blog/business-intelligence/data-les-7-pieges-a-eviter-intro/

Business Intelligence, Data Governance, Data Marketing, Data Mining and Data Integration, Data Warehouse, Machine Learning

Vous avez dit Data Engineer ??

La Data Engineering (ingénierie des données) c’est quoi ?

Encore un mot tendance ? On ne partage pas cet avis !

Bien que l’ingénierie des données ne soit pas un domaine nouveau, cette discipline semble être aujourd’hui sortie de l’ombre et propulsée au-devant de la scène.

Nous avions justement envie de parler « métier » comme on dit dans le jargon. Vous apprendrez donc dans cet article en quoi consiste le métier de « Data Engineer », et par conséquent ce que fait une partie de notre équipe au quotidien.

Un jour, un métier : ingénieur de données

La Data Engineering consiste au développement, à l’exploitation et à la maintenance d’une infrastructure de données, sur site ou dans le Cloud (ou hybride ou multicloud), comprenant des bases de données et des pipelines pour extraire, transformer et charger des données.

Une définition, please ?

La Data Engineering étroitement liée à la Data Science, fait partie de l’écosystème du Big Data. Bien que les data engineers (ingénieurs de données) ne reçoivent pas le même niveau d’attention que les data scientists, ils sont essentiels au processus de la science des données. Leur rôles et responsabilités varient en fonction du niveau de maturité des données et de l’organisation de l’entreprise.

Cependant, certaines tâches comme l’extraction, le chargement et la transformation des données, sont fondamentales et incontournables dans le métier du data engineer.

En général en ingénierie des données, on déplace des données d’un système vers un autre, ou on transforme des données dans un format vers un autre. En d’autres termes, le data engineer interroge les données d’une source (extract/extraire), effectue des traitements sur ces données (transform/transformer), et enfin place ces données d’un niveau de qualité de production, à un emplacement où les utilisateurs peuvent y accéder (load/charger). Les termes Extract, Transform et Load (ETL) correspondent aux étapes du processus présent dans les logiciels appartenant à la catégorie des ETL (comme Talend, très connu dans le milieu).

Toutefois, cette définition de l’ingénierie des données est large et simpliste.

A partir d’un exemple, voyons plus en détails en quoi consiste le métier, ça vous parlera sûrement un peu plus :

Un site web de e-commerce de détail vend des gadgets « high-tech » dans une grande variété de couleurs. Le site fonctionne avec une base de données relationnelle, et chaque transaction est stockée dans la base de données.

La problématique du moment : combien de gadgets bleus le détaillant a-t-il vendus au cours du dernier trimestre ?

Pour répondre à cette question, vous pouvez exécuter une requête SQL sur la base de données (SQL : Structured Query Language ; langage de requête structuré. Il s’agit c’est le langage qui est utilisé pour dialoguer et faire des traitements sur les bases de données relationnelles). Il est clair que pour une tâche simple comme celle-ci, vous n’avez pas besoin d’un data engineer mais à mesure que le site se développe, exécuter des requêtes sur la base de données de production n’est plus pratique. De plus, il peut y avoir plus d’une base de données qui enregistre les transactions, et ces bases peuvent se trouver à différents emplacements géographiques.

Par exemple, le site de e-commerce pourrait très bien avoir une base de données en Amérique du Nord, une autre en Asie, une autre en Afrique et enfin une autre en Europe.

Dans le domaine de l’ingénierie des données (la data engineering) ce genre de pratique est courante !

Pour répondre à la question précédente concernant les ventes de gadgets « high-tech » de couleurs bleus, le data engineer va créer des connexions à chacune des bases de données réparties dans les différentes régions, extraire les données, et les chargera dans un entrepôt de données. A partir de là, l’ingénieur peut maintenant effectuer une requête pour compter le nombre de gadgets bleus vendus.

Plutôt que de trouver le nombre de gadgets bleus vendus, les entreprises ont plus souvent tendance à chercher des réponses aux questions suivantes :

  • Quelle région vend le plus de gadgets ?
  • Quelles sont les heures où on observe un pic des ventes sur ce type de produit ?
  • Combien d’utilisateurs mettent ce produit dans leur panier et le suppriment plus tard ?
  • Quels sont les gadgets vendus ensemble ?

Vous avez des problématiques similaires ?

Pour répondre à ces questions, il ne suffit pas d’extraire les données et de les charger dans un système. Une transformation est requise entre l’extraction et le chargement. Il y a aussi la différence de fuseaux horaires dans les différentes régions. Par exemple, les Etats-Unis ont à eux seuls quatre fuseaux horaires. Pour cela, il faudra transformer les champs de date dans un format normalisé. Il faudra également trouver un moyen de distinguer les ventes dans chaque région. Cela pourrait se faire en ajoutant un champ « région » aux données. Ce champ doit-il être spatial, en coordonnées, ou sous forme de texte, ou s’agira-t-il simplement de texte qui pourrait être transformé dans un traitement d’ingénierie des données ?

Dans ce cas présent, le data engineer devra extraire les données de chaque base de données, puis transformer ces données en y ajoutant un champ supplémentaire pour la région. Pour comparer les fuseaux horaires, le data engineer doit être familiarisé avec les normes internationales de standardisation des données. Aujourd’hui, l’Organisation Internationale de Normalisation (ISO) a la norme – ISO 8601 pour faire face à cette problématique.

Donc pour répondre aux questions précédentes, l’ingénieur devra :

  1. Extraire les données de chaque base de données
  2. Ajouter un champ pour localiser la région de chaque transaction dans les données
  3. Transformer la date de l’heure locale dans la norme ISO 8601
  4. Charger les données dans l’entrepôt de données.

La suite d’étapes (extraction -> transformation -> chargement) est réalisée par la création de ce qu’on appelle un Pipeline (ou encore Job). Ce pipeline est une série de traitements successifs qui récupère en amont les données « brutes », pouvant contenir des fautes de frappe ou des données manquantes. Au fur et à mesure des traitements, les données sont nettoyées de sorte qu’à la fin du processus, ces dernières sont stockées dans un entrepôt de données et prêtes à être exploitées. Le schéma suivant illustre le pipeline requis pour accomplir les quatre tâches précédentes :

Figure 1: Pipeline qui ajoute une région et modifie la date

Après ce petit tour d’horizon sur ce qu’est l’ingénierie des données et ce que font les ingénieurs de données, vous devriez commencer à avoir une idée des responsabilités et des compétences que les ingénieurs de données doivent acquérir. Vrai ?

Quelles sont les connaissances et compétences requises pour être Data engineer ?

L’exemple précédent montre bien que le data engineer doit être familiarisé avec différentes technologies, et nous n’avons même pas encore mentionné les processus ou les besoins de l’entreprise.

Pour démarrer la première étape du processus d’un pipeline (l’extraction), le data engineer doit savoir comment extraire des données depuis des fichiers pouvant être en différents formats, ou depuis différents types de bases de données. L’ingénieur doit donc connaître plusieurs langages de programmation tels que SQL et Python, afin de pouvoir effectuer ces différentes tâches. Lors de la phase de transformation des données, il devra également maîtriser la modélisation et les structures de données. De plus, il doit aussi être en mesure de comprendre les besoins de l’entreprise et les informations ou connaissances qu’elle souhaite extraire des données, afin d’éviter les erreurs de conception du ou des modèles de données.

Le chargement des données dans l’entrepôt de données nécessite aussi que le data engineer connaisse les bases de conception d’un entrepôt de données, ainsi que les types de bases de données utilisés dans leur construction.

Enfin, l’ensemble de l’infrastructure sur laquelle le pipeline de données s’exécute peut également être sous la responsabilité de l’ingénieur de données. Il doit savoir comment administrer des serveurs Linux, et comment installer et configurer des logiciels tels qu’Apache Airflow ou NiFi.

Les entreprises ont de plus en plus tendance aujourd’hui à migrer vers le cloud, et incitent donc les Data engineer à se familiariser avec la mise en place de l’infrastructure sur des plateformes cloud comme Amazon, Google Cloud Platform ou Azure.

Nous sommes heureux de vous avoir partagé le métier data engineers et on espère que vous y voyez plus clair désormais !

Cet article vous a inspiré ?