Transformation avancée des données
Les transformations de données dans le cycle de vie de la donnée
1. La création de valeur de l’étape de transformation
La transformation de données est une étape cruciale dans une chaîne data, où les données brutes sont converties en formats analytiques plus utilisables. Cela inclut des processus tels que le nettoyage des données, la normalisation, la consolidation et l’enrichissement, permettant ainsi aux entreprises de tirer des informations précieuses de leurs données.
a. Un travail nécessaire pour exploiter les données
Dans une chaîne de traitement de données, les transformations avancées jouent un rôle essentiel pour affiner la qualité et la pertinence des données. Ces transformations peuvent inclure des techniques de Machine Learning pour la prédiction et la classification, des algorithmes de déduplication sophistiqués pour éliminer les redondances, et des méthodes d’analyse de sentiment pour extraire des insights des réseaux sociaux. L’intégration de données provenant de multiples sources, la création de nouvelles variables dérivées et l’application de règles métier complexes sont également des exemples de transformations avancées qui enrichissent et affinent les ensembles de données pour des analyses plus approfondies. L’image de cet article HackerNoon (https://go.fabricbook.fr/ch6-1) résume bien ces besoins.
b. La place de la transformation de données
Dans le cycle de vie de l’ingénierie de données, comme illustré dans l’image ci-après, la transformation des données occupe une position centrale et critique. Nous avons déjà abordé la phase d’ingestion (cf. chapitre Ingérer des données dans Fabric), où les données brutes sont collectées et introduites dans OneLake. Les chapitres suivants, tels que le chapitre Concevoir des modèles sémantiques et le chapitre Analyse et reporting d’entreprise, traiteront de la présentation des données sous forme de modèles sémantiques et de leur utilisation pour l’analyse et le reporting. De plus, le chapitre Utiliser l’IA dans Fabric...
Transformations low-code avec Dataflow Gen2
1. Création d’un dataflow
a. Créer et gérer ses sources de données
Comme nous l’avons vu dans le chapitre Du Lakehouse à la première analyse, les dataflows peuvent utiliser des connecteurs pour importer des données de nombreuses sources. La liaison entre un dataflow et une source de données spécifique est appelée connexion. Ces connexions peuvent être créées lors de la conception d’un dataflow, mais sont en réalité gérées de manière centralisée. Vous pouvez accéder à l’interface de gestion en cliquant sur le lien Gérer des connexions et des passerelles dans le menu Paramètres.
Cette interface centralisée est utile pour les administrateurs de la plateforme, afin d’avoir une vue d’ensemble des connexions et de leur état. Si pour certains types de connexion, tels que des fichiers Excel dans un dossier OneDrive, les créateurs des dataflows peuvent créer la connexion sans problème, d’autres types de connexion, nécessitant des comptes de services ou des accès spécifiques, peuvent être mis en place par des administrateurs, puis partagés aux utilisateurs qui ont besoin de les utiliser.
b. Conception d’un dataflow
Comme nous l’avons vu au chapitre Ingérer des données dans Fabric, pour démarrer la création d’un dataflow, il suffit de cliquer sur le bouton Nouveau > Flux de données Gen2 sur l’expérience Data Factory. L’éditeur de flux de données s’affiche alors. Il est organisé en différentes zones :
-
Sources de données : à gauche, vous pouvez voir l’ensemble des requêtes qui sont les sources de données de votre transformation.
-
Au centre, vous trouverez le Diagramme des requêtes et étapes ainsi que l’aperçu du résultat.
-
Étapes de transformation : ce panneau contient l’ensemble des étapes de transformation. Il contient des informations...
Transformations avec SQL
1. Introduction aux transformations SQL
a. Avantages des transformations SQL
L’un des principaux atouts des transformations SQL réside dans leur simplicité et leur standardisation. SQL, étant une norme largement adoptée pour interagir avec les bases de données relationnelles, est bien maîtrisé par la majorité des professionnels des données. Cette adoption universelle réduit la courbe d’apprentissage et simplifie l’intégration des nouvelles équipes, tout en garantissant une utilisation cohérente des outils d’analyse et de transformation.
En termes de performance, les transformations SQL bénéficient d’une optimisation intrinsèque, car elles sont exécutées directement au niveau de la base de données. Cela permet d’exploiter pleinement les capacités des moteurs de base de données, telles que l’utilisation d’index et de partitions, ce qui accélère considérablement le traitement des requêtes. Avec des moteurs comme T-SQL et Spark SQL intégrés dans Microsoft Fabric, les transformations sont non seulement rapides mais également adaptées aux exigences des grandes charges de travail.
Les fonctionnalités offertes par SQL sont particulièrement riches et variées. Elles permettent de réaliser des transformations complexes allant des opérations de filtrage et de jointure aux agrégations sophistiquées et aux fonctions de fenêtrage. Cette polyvalence permet aux utilisateurs d’effectuer des transformations avancées sans recourir à des langages de programmation supplémentaires, ce qui simplifie le processus de gestion des données.
Un autre avantage notable des transformations SQL est leur intégration transparente avec d’autres outils de Microsoft Fabric. SQL s’harmonise parfaitement avec divers composants de la plateforme, tels que les dataflows, les entrepôts de données et les Lakehouses. Cette intégration fluide permet de créer des workflows cohérents et automatisés, facilitant la combinaison des transformations SQL avec d’autres processus de gestion de données.
Enfin, les transformations SQL profitent des solides fonctionnalités de sécurité...
Transformations avec Spark
1. Introduction à Apache Spark
Le moteur Spark est un moteur d’analyse unifié open source pour le traitement de données à grande échelle. Il est conçu pour être rapide, facile à utiliser et pour offrir des analyses sophistiquées.
Spark est bien plus rapide que Hadoop pour le traitement de données à grande échelle grâce à l’utilisation de la mémoire et d’autres optimisations. Il dispose d’API simples pour travailler avec de grands ensembles de données et est livré avec des bibliothèques pour le support de requêtes SQL, le traitement de données en flux continu, l’apprentissage automatique et le traitement de graphes.
Apache Spark est intégré nativement dans Microsoft Fabric et devient l’un des moteurs standards de la plateforme.
Dans Apache Spark, les executors sont des processus lancés pour une application Spark sur les nœuds du cluster qui exécutent le code et stockent les données pour l’application. Chaque application Spark a ses propres executors. L’architecture de Spark est conçue pour être hautement scalable, permettant le traitement de données à grande échelle en parallèle.
Voici une description générale de l’architecture de Spark :
-
Spark Driver : c’est le programme principal de l’application Spark qui crée le contexte Spark, déclare les transformations ainsi que les actions et soumet les tâches aux executors.
-
Executors : ce sont les processus qui exécutent les tâches et stockent les données pour l’application. Ils sont gérés par le Spark Driver.
-
Cluster Manager : c’est le composant qui gère les ressources du cluster et alloue les ressources aux applications Spark. Spark peut utiliser différents gestionnaires de cluster tels que YARN, Mesos ou Kubernetes.
Microsoft contribue activement au projet Apache Spark de plusieurs manières. Par exemple, lors du Spark Summit Europe 2018, Microsoft Research a présenté « Apache Spark Serving: Unifying Batch, Streaming, and RESTful Serving », démontrant une API simple, mais puissante pour SparkSQL, SparkML et le déploiement de réseaux...
Orchestration des transformations
Jusqu’à présent, nous avons vu les différents outils de transformation de données utilisés séparément. Dans de nombreux projets, il n’est pas rare de voir ces différents moyens combinés. On peut utiliser un pipeline pour importer massivement des données depuis les bases de données opérationnelles, et les combiner avec des dataflows pour facilement importer des données provenant d’applications SaaS. Le cœur des phases de transformations peut être une combinaison de Notebooks Spark et de requêtes SQL, et enfin certaines extractions pour le métier peuvent de nouveau faire appel à des dataflows.
Une manière "naive" de résoudre ce problème serait d’utiliser les planifications de ces différents éléments, et de prévoir « les bonnes horaires » afin de réaliser le bon enchaînement de tâches. Mais que se passe-t-il si une tâche échoue ? Comment faire si on a besoin d’exécuter une requête de rattrapage ou un scénario alternatif en cas d’erreur ? C’est là que le besoin d’orchestration apparaît.
1. Pipelines
L’outil principal pour orchestrer des transformations dans Fabric sont les Pipelines. Ils permettent de créer des orchestrations relativement complexes en combinant dataflow, bloc-notes, scripts SQL et procédures stockées, actualisation de modèles sémantiques, mais également un ensemble d’autres activités de copie de données ou de transformations.
Dans le flux d’exemple ci-dessous, nous importons tout d’abord des données avec l’activité Copier les données ainsi qu’un flux de données. En cas d’erreur sur l’une de ces deux sources, un message d’alerte est envoyé sur Teams et le processus s’arrête. L’étape de préparation des données est réalisée via un notebook, et cette fois c’est un e-mail qui est envoyé en cas d’erreur. Si tout se passe bien, une dernière transformation des données a lieu en SQL avant d’actualiser le modèle sémantique....