Dans cet article, je vous présente les principales transformations des données que vous ferez dans un projet data.
Contexte
Lorsque vous traitez les données d’un projet data vous allez faire une succession de transformation pour obtenir votre résultat final.
Par exemple la chaine de traitement dans le cadre d’un projet datawarehouse est la suivante :
On retrouve un ensemble de traitement permettant la transformation des données d’une zone à l’autre :
- Dans la zone bronze, un maelstrom de données brut.
- Dans la zone silver, des données préparées sous forme de table structurée.
- Dans la zone gold, des données à forte valeur ajoutée comme par exemple des tables modéliser en étoile pour de reporting avec potentiellement des données pré agrégé.
Mais, quels que soient les outils que vous utiliserez pour votre projet, vous utiliserez presque toujours les mêmes transformations de données.
Je vous propose de passer en revue ces transformations.
Structuration des données
La phase de structuration des données va vous permettre de transformer vos données en données structurées sous forme de table.
La table
La table est la structure de données que vous allez utiliser pour toutes vos transformations de données.
Une table a les caractéristiques suivantes :
- Les données sont stockées en ligne
- Chaque colonne d’une table contient des valeurs cohérentes
- De nature : une colonne contient des données métier de même nature. Par exemple dans une colonne contenant le nom d’une personne on ne met pas sa date de naissance.
- De type : une colonne ne contient que des valeurs ayant le même type ou pas de valeur. Par exemple une colonne de date ne contient que des dates.
- De format : une colonne de date ne contient que des dates au même format, par exemple on ne stocke pas le 31 décembre 2022 sous ces 2 formes dans la même colonne :
- 31/12/2022
- 2022-12-31
Nommage des colonnes
Le nommage des colonnes d’une table est une phase très importante dans un projet BI. En général vous avez des données dont le nom n’est pas adapté à la création d’un modèle métier. La phase de renommage des colonnes d’une table vous permet d’apporter cette cohérence métier.
Prenez grand soin à avoir un nommage cohérent et d’utiliser le bon vocabulaire du modèle métier cible, en effet si votre modèle de données doit être utilisé par des personnes d’un métier parlé leur langage et masquer tous les éléments techniques inutiles.
Typage de données
Le typage des données permet de conserver la cohérence d’une table. Parmi les types de données disponibles dans votre outil, choisissez toujours des types de données vous apportant une forte garantie sur le contenu de la colonne.
Par exemple, si vous stockez vos dates dans une colonne stockant du texte, vous n’aurez pas la garantie d’avoir des dates dedans.
Les principaux types de données que l’on utilise sont :
- Le texte ou chaine de caractères
- Les nombres
- Entier
- Décimaux
- Le temps
- Date
- Date/Heure
- Date/Heure/Fuseau horaire
- Les booléens (vrai/faux)
Attention, chaque type de données a ses propres pièges et on rencontre souvent les mêmes problèmes. Par exemple :
- Les formats de date ou de nombre décimaux différents entre les systèmes français et américain
- L’encodage du texte, si les termes ASCII, UTF-8 ou UNICODE ne vous sont pas familiers vous risquez des ennuis lors du traitement de données avec des caractères spéciaux.
Sélection des colonnes
Ne sélectionnez que les colonnes utiles d’un point de vue métier ou technique à votre modèle de données. Il est en général plus simple d’ajouter une nouvelle colonne à un modèle existant pour répondre à un nouveau besoin que de créer un modèle cohérent avec un grand nombre de colonnes inutile.
Préparation des données
Nous allons maintenant passer en revue les principales transformations que vous ferez sur vos données lors d’un projet data.
Filtrage des données
Un filtre permet de sélectionner les lignes que l’on souhaite conserver en fonction de critères prédéfinis.
Remplacer des données
Le remplacement de données permet de remplacer une valeur par une autre valeur.
Attention, certains outils sont sensibles à la casse, il différencie minuscules et majuscules. Par exemple, rouge sera différent de Rouge.
Tri des données
Le tri des données permet d’imposer l’ordre des lignes les unes par rapport aux autres. Le tri peut être ascendant ou descendant et peu porter sur plusieurs colonnes afin de forcer le tri des lignes sur des sous-critères.
Attention, tant que vous n’avez pas trié vos données ne préjugé pas du tri de celle-ci.
Partitionnement des données
Le partitionnement des données permet de séparer physiquement vos données. On utilise cette technique sur les gros volumes de données en général pour améliorer les performances.
Pivoter Dépivoter et Transposer
Ces 3 opérations permettent de faire des transformations sur la structure de la table. Elles sont souvent utilisées pour transformer des données formatées pour la saisie utilisateur dans Excel en données sous la forme d’une table utilisable.
Pivoter
Permets de basculer des valeurs stockées dans les lignes d’une colonne en valeur stockée en colonne. Une opération d’agrégation de données peut aussi être réalisée lors du pivot pour regrouper les valeurs sources identiques en une seule valeur cible.
Dépivoter
Permets de basculer des valeurs stockées dans les noms de colonne d’une table en valeur stockée en ligne. C’est l’opération inverse de pivoter.
Transposer
Permets de réaliser une rotation à 90° de votre table.
Si vous transposez une table déjà transposée vous retrouvez la table initiale.
Créer des colonnes
- Par fractionnement, vous divisez une colonne en plusieurs autres colonnes à l’aide d’un séparateur.
- Par calcul, vous créer une colonne en vous basant sur des informations en provenance d’autres colonnes de la même ligne.
- Par extraction d’un terme, vous créer une colonne en extrayant un sous-ensemble d’information d’une colonne.
Les jointures
Les jointures sont une transformation de données très puissantes. Elles peuvent avoir plusieurs usages, notamment :
- L’enrichissement d’une table via une autre table.
- La suppression de ligne d’une table par une autre table.
- La création de ligne dans une table.
Jointure externe gauche
La jointure externe gauche permet d’intégrer dans la table de gauche toutes les valeurs de la table de droite correspondant à la relation de jointure.
Avec ce tpe de jointure on à la garantie de conserver TOUTES les lignes de la table de gauche.
Par contre s’il existe plusieurs occurrences d’une même valeur dans la table de droite pour la relation, cela va créer des lignes dans la table de gauche.
La valeur null représente par convention une absence de valeur dans la table de droite.
Jointure externe droite
La jointure externe droite permet de filtrer les lignes de table de gauche à l’aide des données de la table de droite.
Jointure externe entière
La jointure externe entière permet de conserver toutes les lignes des 2 tables.
Jointure interne
La jointure interne permet de ne conserver que les lignes appartenant aux 2 tables.
L’union
L’union permet de cumuler les lignes de 2 tables ou plus en une seule table. Suivant les outils les tables doivent avoir la même structure de colonnes ou non.
Le dédoublonnage
Le dédoublonnage est une opération qui permet de supprimer les lignes identiques. On à deux types d’opération de dédoublonnage :
- Dédoublonage pur pour les lignes complètement identiques.
- Dédoublonage partiel, sur un critère choisi d’une ou plusieurs colonnes, dans ce cas il faut faire attention à quelle valeur est conservé.
Agrégation
L’agrégation est une opération qui permet de réduire le nombre de lignes d’une table. On supprime certaines colonnes, et en perdant ce détail, on peut regrouper les lignes en faisant une opération mathématique sur les colonnes numériques, en général une somme.
Les opérations d’agrégations classiques sont :
- Somme
- Minimum
- Maximum
- Moyenne
- Écart type
- Compter le nombre de lignes agrégé
L’opération d’agrégation est une opération qui modifie la granularité de la table. La table résultante a un niveau de détail moins important que la table source, on perd donc de l’information.
Merci de votre attention.