in

Comment suivre les versions des données grâce à Versatile Data Kit – par Angelica Lo Duca – Mai 2023


COMMENT SUIVRE LES VERSIONS DE DONNÉES AVEC VERSATILE DATA KIT (VDK) ?

Les données sont la base de toute organisation et, dans le monde actuel en constante évolution, il est crucial de suivre leurs versions. À mesure que les entreprises grandissent et évoluent, les données subissent de nombreux changements qui peuvent rapidement devenir accablants sans système efficace. La technologie est venue à notre rescousse avec divers outils qui nous aident à gérer les données de manière efficace.

Un de ces outils est Versatile Data Kit (VDK), qui offre une solution complète pour répondre à vos besoins de versioning de données. VDK vous permet d’effectuer facilement des opérations complexes, telles que l’ingestion et le traitement de données provenant de différentes sources, en utilisant SQL ou Python. Vous pouvez utiliser VDK pour construire un lac de données et ingérer des données brutes extraites de différentes sources, y compris des données structurées, semi-structurées et non structurées.

Dans cet article, nous explorerons comment VDK peut faciliter votre vie en fournissant une interface intuitive et des fonctionnalités robustes pour suivre tous les changements effectués sur vos informations commerciales essentielles.

Nous aborderons les sujets suivants :

LES DIMENSIONS À CHANGEMENT LENT

Les types de SCD (Slowly Changing Dimensions)

Comment implémenter le SCD de type 2 dans VDK.

LES DIMENSIONS À CHANGEMENT LENT

Dans un entrepôt de données, une dimension est une structure qui catégorise les faits et les mesures pour permettre aux utilisateurs de répondre aux questions commerciales. Les dimensions couramment utilisées sont les personnes, les produits, les lieux et le temps.

Les dimensions à changement lent (SCD) vous aident à suivre les changements des données de dimension au fil du temps. Ils stockent et gèrent les données actuelles et historiques dans un entrepôt de données. Le mot lent signifie qu’ils changent lentement au fil du temps plutôt que régulièrement. Des exemples de SCD sont l’adresse, le courrier électronique, le salaire, etc.

Les SCD sont importants pour suivre la manière dont les données évoluent au fil du temps. Nous pouvons les utiliser pour suivre les clients, les produits ou d’autres informations qui pourraient changer au fil du temps.

L’utilisation de SCD facilite le suivi des changements dans les données et permet de conserver des enregistrements historiques de la façon dont les données ont évolué. Cela peut être précieux pour analyser les tendances ou répondre à des questions sur comment des données spécifiques ont évolué.

Il existe trois types de SCD : type 1, type 2 et type 3. Pour illustrer le fonctionnement de chaque type de SCD, nous utiliserons l’exemple suivant. Considérons la table de dimension des clients suivante :

Figure 1 – La table de dimension des clients de l’exemple

QUE SE PASSE-T-IL SI JOHN SMITH CHANGE SON NUMÉRO DE TÉLÉPHONE POUR 555-5668 ?

SCD TYPE 1

Ce type de SCD ne suit pas les changements de données ; les nouvelles données écrasent les anciennes données. Ce type convient lorsque l’historique des données est sans importance et que vous avez besoin de connaître l’état actuel des données. Le type 1 est le plus simple et le plus courant des types de SCD.

Considérons l’exemple de la Figure 1. Dans le SCD de Type 1, le nouveau numéro de téléphone remplace l’ancien, et il n’y a pas d’enregistrement du précédent, comme le montre le tableau ci-dessous.

Figure 2 – La table de dimension des clients après l’application du SCD de Type 1

SCD TYPE 2

Ce type suit les changements historiques en ajoutant de nouveaux enregistrements à la table de dimension. Les anciennes données sont toujours disponibles mais marquées comme remplacées par la nouvelle. Chaque enregistrement contient un identificateur unique, une date de début et une date de fin.

Considérons à nouveau l’exemple de la Figure 1. Dans le SCD de Type 2, un nouvel enregistrement est créé avec le nouveau numéro de téléphone, un identificateur unique et une date de début, tandis que l’enregistrement précédent a une date de fin. La date de début représente la date à laquelle le nouvel enregistrement entre en vigueur, et la date de fin représente la date à laquelle l’ancien enregistrement devient obsolète.

Figure 3 – La table de dimension des clients après l’application du SCD de Type 2

SCD TYPE 3

Ce type ne suit que le changement le plus récent en ajoutant une colonne à la table de dimension pour contenir la nouvelle valeur. Utilisez ce type lorsque le suivi de l’historique complet des changements n’est pas nécessaire.

Considérons à nouveau l’exemple de la Figure 1. Dans le SCD de Type 3, l’enregistrement est mis à jour avec deux nouvelles colonnes : new_phone_number, pour contenir la nouvelle valeur, et effective_date.

Figure 4 – La table de dimension des clients après l’application du SCD de Type 3

VDK est un framework très puissant publié par VMware en open source. Utilisez VDK pour construire un lac de données et fusionner plusieurs sources. Si vous êtes nouveau dans VDK, lisez sa documentation officielle ou cet article d’introduction.

VDK prend en charge le SCD de Type 1 et de Type 2. Pour implémenter un SCD dans VDK, utilisez le modèle de traitement SQL. Un modèle de traitement SQL est un modèle de chargement de données, une structure conceptuelle fournie par VDK. Selon la documentation officielle de VDK, “un modèle de chargement de données consomme une source_view située dans un source_schema et charge les données source dans une target_table située dans un target_schema” (extraite de la documentation officielle de VDK).

En pratique, le modèle simplifie la façon dont les données sont extraites d’une source et chargées dans une table cible. VDK fournit les modèles de données de traitement SQL pour les bases de données Impala et Trino.

Pour illustrer comment VDK gère le SCD de Type 2, considérons le scénario suivant.

Figure 5 – Comment utiliser VDK pour gérer le SCD de Type 2

En partant de la gauche, il y a la source de données (par exemple, la table de dimension des clients de la Figure 1), qui doit définir un schéma source et une vue source. VDK ingère les données provenant de la source de données. Pour gérer le SCD de Type 2, VDK utilise le modèle SCD2, un modèle de traitement SQL. Grâce au plugin vdk-trino, VDK enregistre les données à l’aide d’une base de données Trino dans un lac de données. Le lac de données doit contenir le schéma cible, qui est le schéma qui stockera le SCD de Type 2.

VDK implémente le modèle SCD2 en tant que méthode supplémentaire de l’Input Job. Le code suivant montre comment utiliser le modèle SCD2 :

def run(job_input: IJobInput) -> None:
# …
job_input.execute_template(template_name=’scd2′,
template_args={‘source_schema’: ‘customer_schema’,
‘source_view’: ‘customer_view’,
‘target_schema’: ‘customer_target_schema’,
‘target_table’: ‘customer_target_table’,
‘id_column’: ‘customer_id’,
‘sk_column’: ‘SID’,
‘value_columns’: [‘name’, ‘address’, ‘phone_number’],
‘tracked_columns’: [‘phone_number’],
},
)

Le code est extrait directement de la documentation de VDK et adapté à l’exemple de la Figure 3, donc référez-vous à celle-ci pour plus de détails. En pratique, le modèle reçoit les schémas source et cible en entrée ainsi que d’autres paramètres, tels que la colonne ID et les colonnes à suivre.

Grâce à VDK, vous pouvez facilement gérer SCD dans votre base de données ! Référez-vous à la documentation de VDK pour un exemple complet et détaillé.

Pour expliquer comment fonctionne le modèle SCD2, considérez de nouveau la table de dimension des clients. Le code précédent ne suivait que la colonne phone_number, donc si cette colonne change, le système stocke le changement dans une nouvelle ligne, comme le montre la figure suivante :

Figure 6 – Si une colonne suivie change, le système la stocke comme une nouvelle ligne.

Cependant, si une colonne non suivie change, le système l’écrase, comme le montre la figure ci-dessous :

Figure 7 – Si une colonne non suivie change, le système l’écrase.

Félicitations ! Vous venez d’apprendre ce que sont les SCD et comment les implémenter dans VDK.

Les SCD sont importants pour les organisations qui veulent gérer et analyser leurs données efficacement. En identifiant les attributs d’un ensemble de données qui changent rarement ou peu souvent, vous pouvez rationaliser votre traitement et stockage de données et réduire la probabilité d’erreurs ou d’incohérences dans vos analyses.

Pour identifier et gérer facilement les SCD, vous pouvez utiliser VDK, qui vous aide à automatiser les changements d’attributs à changement lent au fil du temps.

Dans l’ensemble, les SCD peuvent sembler être un détail

What do you think?

Written by Barbara

Leave a Reply

Your email address will not be published. Required fields are marked *

Avatar Infini.

Passkeys – Connexion sans mot de passe | Product Hunt