Il s’agit d’un article collaboratif entre Databricks et Matillion. Nous remercions David Willmer, Product Marketing chez Matillion, pour ses contributions.
Alors que de plus en plus de clients modernisent leurs anciens entrepôts de données d’entreprise et leurs anciennes plateformes ETL, ils cherchent à adopter une pile de données cloud moderne à l’aide de Databricks Lakehouse Platform et de Matillion pour l’ETL basé sur l’interface graphique. La plateforme ELT visuelle à faible code de Matillion permet à quiconque d’intégrer facilement des données provenant de n’importe quelle source dans Databricks SQL Warehouse, ce qui rend ainsi les données d’analytique et d’IA prêtes pour l’entreprise, et plus rapidement.
Ce blog vous montrera comment créer un pipeline ETL qui charge une dimension à évolution lente (SCD) de type 2 à l’aide de Matillion dans Databricks Lakehouse Platform. Matillion possède une interface utilisateur moderne basée sur navigateur avec une fonctionnalité ETL/ELT push-down. Vous pouvez facilement intégrer vos entrepôts ou clusters SQL Databricks à Matillion. Maintenant, si vous vous demandez comment vous connecter à Matillion à l’aide de Databricks, la façon la plus simple de le faire est d’utiliser Partner Connect, ce qui simplifie le processus de connexion d’un entrepôt ou d’un cluster SQL existant dans votre espace de travail Databricks à Matillion. Voici les étapes détaillées.
Une SCD de type 2 est une technique courante pour préserver l’historique dans une table de dimension utilisée dans toute architecture d’entrepôt/de modélisation de données. Les lignes inactives ont un indicateur booléen tel que la colonne ACTIVE_RECORD définie sur « F » ou une date de début et de fin. Toutes les lignes actives sont affichées en retournant une requête où la date de fin est null ou ACTIVE_RECORD n’est pas égal à « F ».
Matillion ETL for Delta Lake on Databricks utilise une approche en deux étapes pour gérer les dimensions à évolution lente de type 2. Cette approche en deux étapes consiste d’abord à identifier les modifications dans les enregistrements entrants et à les signaler dans une table ou une vue temporaire. Une fois que tous les enregistrements entrants sont signalés, des actions peuvent être entreprises sur la table de dimension cible pour effectuer la mise à jour.
Maintenant, examinons de plus près l’implémentation des transformations SCD de type 2 à l’aide de Matillion, où votre cible est une table Delta Lake, et l’option de calcul sous-jacente utilisée est un Databricks SQL Warehouse.
Comme nous le voyons à l’étape 1 ci-dessous, le pipeline ETL lit les données de notre table de dimension Delta Lake existante et identifie uniquement les enregistrements les plus récents ou actifs (il s’agit du flux de données inférieur). En même temps, nous allons lire toutes nos nouvelles données, en nous assurant que la clé primaire prévue est unique afin de ne pas interrompre le processus de détection des modifications (il s’agit du flux de données supérieur). Ces deux chemins convergent ensuite vers le composant de détection des modifications.
Dans Matillion ETL, le composant de détection des modifications est un mécanisme central pour déterminer les mises à jour et les insertions pour les enregistrements modifiés. Il compare un ensemble de données entrant à un ensemble de données cible et détermine si les enregistrements sont identiques, modifiés, nouveaux ou supprimés en utilisant une liste de colonnes de comparaison configurées dans le composant. Chaque enregistrement du nouvel ensemble de données est évalué et reçoit un champ d’indicateur dans la sortie du composant de détection des modifications : « I » pour identique, « C » pour modifié, « N » pour nouveau et « D » pour supprimé.
L’action finale de l’étape 1 de cette approche en deux étapes consiste à ajouter une date de chargement à chaque enregistrement avant d’écrire chaque nouvel enregistrement, maintenant signalé avec son indicateur de modification, dans une table Delta Lake de dimension temporaire. Cela deviendra l’entrée de l’étape 2.
Alors que nous passons à l’étape 2, nous commençons par lire la table de dimension intermédiaire ou temporaire dans notre lakehouse. Nous utiliserons le champ d’indicateur qui a été dérivé du composant de détection des modifications et créerons 3 chemins distincts à l’aide d’un simple composant de filtre. Nous ne ferons rien pour les enregistrements identiques (identifiés par un « I ») car aucune modification n’est nécessaire, de sorte que ces enregistrements sont filtrés. Pour être explicite dans notre explication dans ce blog, nous avons laissé ce chemin. Pourtant, il serait inutile à des fins pratiques, à moins que quelque chose de spécifique ne doive être fait avec ces enregistrements.
Le chemin suivant, pour les enregistrements nouveaux ou modifiés, générera un nouvel enregistrement actuel pour chaque enregistrement nouveau ou modifié identifié. Le composant de filtre traite uniquement les enregistrements avec un « N » (pour nouveau) ou un « C » (pour modifié) tel qu’identifié par le composant de détection des modifications. Le composant de renommage agit comme un mappeur de colonnes pour mapper les données modifiées des champs des nouveaux enregistrements (identifiés par le préfixe compare_) aux noms de colonnes réels tels que définis par la table de dimension cible Delta Lake. Enfin, le composant « Nouveaux champs » est un composant de calcul configuré pour définir l’horodatage d’expiration des enregistrements actifs sur « infini », les identifiant ainsi comme l’enregistrement le plus récent.
Le chemin final consiste à fermer ou à faire expirer les enregistrements existants identifiés comme étant modifiés ou supprimés. N’oubliez pas que dans SCD2, les modifications sont ajoutées en tant que nouvel enregistrement (comme décrit dans le chemin Nouveau ou Modifié ci-dessus) et, par conséquent, chaque enregistrement précédent doit être marqué comme expiré ou inactif. De même, les enregistrements supprimés ont besoin d’une date d’expiration afin qu’ils ne soient plus identifiés comme étant actifs. Ici, le chemin Modifié ou Supprimé traite chaque « C » (pour Modifié) ou « D » (pour Supprimé) en mappant les colonnes appropriées qui identifient de manière unique l’enregistrement pour l’expiration. Une fois identifiée, la date d’expiration est définie sur l’horodatage actuel et la mise à jour est effectuée dans la table de dimension cible Delta Lake.
Nous vous avons montré comment implémenter des dimensions à évolution lente sur la plateforme Databricks Lakehouse à l’aide de l’intégration de données à faible code/sans code de Matillion. Il s’agit d’une excellente option pour toutes les organisations qui préfèrent les outils ETL basés sur l’interface graphique, comme Matillion, pour implémenter et maintenir l’ingénierie des données, la science des données et les pipelines de machine learning sur le cloud. Il libère véritablement la puissance de Delta Lake sur Databricks et améliore la productivité des données, vous offrant les performances, la vitesse et l’évolutivité nécessaires pour alimenter votre analytique des données cloud.
Si vous souhaitez en savoir plus sur l’intégration de Matillion et Databricks, n’hésitez pas à consulter la documentation détaillée ici.
Essayez Databricks gratuitement pendant 14 jours.
(Cet article de blog a été traduit à l'aide d'outils basés sur l'intelligence artificielle) Article original
