Module 2 : Transformer des données avec un flux de données dans Data Factory
Ce module prend environ 25 minutes pour créer un flux de données, appliquer des transformations et déplacer les données brutes de la table Bronze vers une table Gold Lakehouse.
Avec les données brutes chargées dans votre table Bronze Lakehouse du dernier module, vous pouvez maintenant préparer ces données et les enrichir en les combinant avec une autre table qui contient des remises pour chaque fournisseur et leurs voyages au cours d’une journée donnée. Cette dernière table Gold Lakehouse est chargée et prête à être consommée.
Les étapes générales du flux de données sont les suivantes :
- Obtenez des données brutes à partir de la table Lakehouse créée par l’activité Copy dans Module 1 : Créer un pipeline avec Data Factory.
- Transformez les données importées à partir de la table Lakehouse.
- Connectez-vous à un fichier CSV contenant des données de remises.
- Transformez les données des remises.
- Combinez les données de voyages et de remises.
- Chargez la requête de sortie dans la table Gold Lakehouse.
Importer des données à partir d’un Lakehouse
Dans la barre latérale, sélectionnez Créer, puis Dataflow Gen2 pour créer un flux de données gen2.
Dans le menu nouveau flux de données, sélectionnez Obtenir des données, puis Plus....
Recherchez et sélectionnez le connecteur Lakehouse .
La boîte de dialogue Se connecter à la source de données s’affiche et une nouvelle connexion est automatiquement créée pour vous en fonction de l’utilisateur actuellement connecté. Cliquez sur Suivant.
La boîte de dialogue Sélectionner les données s'affiche. Utilisez le volet de navigation pour rechercher le Lakehouse que vous avez créé pour la destination dans le module précédent, puis sélectionnez la table de données Tutorial_Lakehouse .
(Facultatif) Une fois que votre canevas est rempli avec les données, vous pouvez définir des informations de profil de colonne, car cela est utile pour le profilage des données. Vous pouvez appliquer la transformation appropriée et cibler les valeurs de données appropriées en fonction de celle-ci.
Pour ce faire, sélectionnez Options dans le volet du ruban, sélectionnez les trois premières options sous Profil de colonne, puis sélectionnez OK.
Transformer les données importées à partir de Lakehouse
Sélectionnez l’icône de type de données dans l’en-tête de colonne de la deuxième colonne, IpepPickupDatetime, pour afficher un menu déroulant et sélectionnez le type de données dans le menu pour convertir la colonne du type Date/Heure en Type Date .
(Facultatif) Sous l’onglet Accueil du ruban, sélectionnez l’option Choisir des colonnes dans le groupe Gérer les colonnes.
(Facultatif) Dans la boîte de dialogue Choisir des colonnes, désélectionnez certaines colonnes répertoriées ici, puis sélectionnez OK.
- lpepDropoffDatetime
- puLocationId
- doLocationId
- pickupLatitude
- dropoffLongitude
- rateCodeID
Sélectionnez le filtre et le menu déroulant de tri de la colonne storeAndFwdFlag . (Si vous voyez une liste d’avertissements peut être incomplète, sélectionnez Charger plus pour afficher toutes les données.)
Sélectionnez « Y » pour afficher uniquement les lignes où une remise a été appliquée, puis sélectionnez OK.
Sélectionnez le menu déroulant tri et filtre de colonne IpepPickupDatetime, puis sélectionnez Filtres de date, puis choisissez le filtre Entre… fourni pour les types Date et Date/Heure.
Dans la boîte de dialogue Filtrer les lignes, sélectionnez les dates comprises entre le 1er janvier 2015 et le 31 janvier 2015, puis sélectionnez OK.
Se connecter à un fichier CSV contenant des données de remise
Maintenant, avec les données des voyages en place, nous voulons charger les données qui contiennent les remises respectives pour chaque jour et VendorID, et préparer les données avant de les combiner avec les données de voyages.
Sous l’onglet Accueil du menu de l’éditeur de flux de données, sélectionnez l’option Obtenir des données, puis choisissez Texte/CSV.
Dans la boîte de dialogue Se connecter à la source de données, fournissez les détails suivants :
- Chemin ou URL du fichier -
https://raw.githubusercontent.com/ekote/azure-architect/master/Generated-NYC-Taxi-Green-Discounts.csv
- Type d’authentification - Anonyme
Sélectionnez ensuite Suivant.
- Chemin ou URL du fichier -
Dans la boîte de dialogue Aperçu des données du fichier, sélectionnez Créer.
Transformer les données de remise
En examinant les données, nous voyons que les en-têtes semblent se trouver dans la première ligne. Promouvez-les en-têtes en sélectionnant le menu contextuel du tableau en haut à gauche de la zone de grille d’aperçu pour sélectionner Utiliser la première ligne comme en-têtes.
Remarque
Après avoir promu les en-têtes, vous pouvez voir une nouvelle étape ajoutée au volet Étapes appliquées en haut de l’éditeur de flux de données pour les types de données de vos colonnes.
Cliquez avec le bouton droit sur la colonne VendorID et, dans le menu contextuel affiché, sélectionnez l’option Annuler le tableau croisé dynamique des autres colonnes. Ceci vous permet de transformer des colonnes en paires attribut-valeur, où les colonnes deviennent des lignes.
Une fois la table non pivotée, renommez les colonnes Attribut et Valeur en double-cliquant dessus et en remplaçant Attribut par Date et Valeur par Remise.
Modifiez le type de données de la colonne Date en sélectionnant le menu type de données à gauche du nom de la colonne et en choisissant Date.
Sélectionnez la colonne Remise, puis sélectionnez l’onglet Transformer dans le menu. Sélectionnez Colonne Nombre, puis Transformations numériques standard dans le sous-menu, puis choisissez Diviser.
Dans la boîte de dialogue Diviser, entrez la valeur 100.
Combinez les données de voyages et de remises
L’étape suivante consiste à combiner les deux tables en une seule table disposant de la remise qui doit être appliquée au trajet et du total ajusté.
Tout d’abord, activez le bouton Vue de diagramme pour voir vos deux requêtes.
Sélectionnez la requête nyc_taxi, puis, sous l’onglet Accueil, sélectionnez le menu Combiner et choisissez Fusionner les requêtes, puis Fusionner les requêtes comme étant nouvelles.
Dans la boîte de dialogue Fusionner, sélectionnez Generated-NYC-Taxi-Green-Discounts dans la liste déroulante Droite pour la fusion , puis sélectionnez l’icône « ampoule » en haut à droite de la boîte de dialogue pour voir le mappage suggéré des colonnes entre les deux tables.
Choisissez chacun des deux mappages de colonnes suggérés, un par un, en mappant les colonnes VendorID et date des deux tables. Lorsque les deux mappages sont ajoutés, les en-têtes de colonne correspondants sont mis en surbrillance dans chaque table.
Un message s’affiche vous demandant d’autoriser la combinaison de données provenant de plusieurs sources de données pour afficher les résultats. Sélectionnez OK dans la boîte de dialogue Fusionner.
Dans la zone de table, vous voyez d’abord un avertissement indiquant que « L’évaluation a été annulée, car la combinaison de données de plusieurs sources peut révéler des données d’une source à une autre. Sélectionnez Continuer si la possibilité de révéler des données est acceptable. » Sélectionnez Continuer pour afficher les données combinées.
Notez comment une nouvelle requête a été créée en mode Diagramme montrant la relation entre la nouvelle requête de fusion et les deux requêtes que vous avez créées précédemment. En regardant le volet table de l’éditeur, faites défiler vers la droite de la liste des colonnes de requête de fusion pour voir qu’une nouvelle colonne avec des valeurs de table est présente. Il s’agit de la colonne « Generated NYC Taxi-Green-Discounts » et son type est [Table]. Dans l’en-tête de colonne se trouve une icône avec deux flèches allant dans des directions opposées, ce qui vous permet de sélectionner des colonnes dans la table. Désélectionnez toutes les colonnes à l’exception de Discount, puis sélectionnez OK.
Avec la valeur de remise maintenant au niveau de la ligne, nous pouvons créer une nouvelle colonne pour calculer le montant total après la remise. Pour ce faire, sélectionnez l’onglet Ajouter une colonne en haut de l’éditeur, puis choisissez Colonne personnalisée dans le groupe Général .
Dans la boîte de dialogue Colonne personnalisée, vous pouvez utiliser le langage de formule Power Query (également appelé M) pour définir la façon dont votre nouvelle colonne doit être calculée. Entrez TotalAfterDiscount pour le nouveau nom de colonne, sélectionnez Devise pour le type de données et fournissez l’expression M suivante pour la formule de colonne personnalisée :
si [totalAmount] > 0 alors [totalAmount] * ( 1 -[Discount] ) autre [totalAmount]
Sélectionnez ensuite OK.
Sélectionnez la colonne TotalAfterDiscount nouvellement créée, puis sélectionnez l’onglet Transformer en haut de la fenêtre de l’éditeur. Dans le groupe de colonne Nombre, sélectionnez la liste déroulante Arrondir, puis choisissez Arrondir....
Dans la boîte de dialogue Arrondir, entrez 2 pour le nombre de décimales, puis sélectionnez OK.
Modifiez le type de données de l’IpepPickupDatetime de Date à Date/Heure.
Enfin, développez le volet Paramètres de requête à droite de l’éditeur s’il n’est pas déjà développé, puis renommez la requête fusion en sortie.
Charger la requête de sortie dans une table dans lakehouse
Une fois la requête de sortie entièrement préparée et les données prêtes à être sorties, nous pouvons définir la destination de sortie de la requête.
Sélectionnez la requête de fusion de sortie créée précédemment. Sélectionnez ensuite l’onglet Accueil dans l’éditeur, puis Ajouter une destination de données dans le groupe de requêtes pour sélectionner une destination Lakehouse .
Dans la boîte de dialogue Se connecter à la destination des données, votre connexion doit déjà être sélectionnée. Sélectionnez Suivant pour continuer.
Dans la boîte de dialogue Choisir une cible de destination, accédez au Lakehouse où vous souhaitez charger les données et nommer la nouvelle table nyc_taxi_with_discounts, puis sélectionnez à nouveau Suivant.
Dans la boîte de dialogue Choisir les paramètres de destination, conservez la méthode Remplacer la mise à jour par défaut, vérifiez que vos colonnes sont mappées correctement, puis sélectionnez Enregistrer les paramètres.
De retour dans la fenêtre de l’éditeur principal, vérifiez que vous voyez votre destination de sortie dans le volet Paramètres de la requête pour la table Sortie, puis sélectionnez Publier.
Important
Lorsque le premier Dataflow Gen2 est créé dans un espace de travail, les éléments lakehouse et entrepôt sont approvisionnés, ainsi que leur point de terminaison d’analytique SQL et leurs modèles sémantiques associés. Ces éléments sont partagés par tous les flux de données de l’espace de travail et sont requis pour que Dataflow Gen2 fonctionne. Ils ne doivent pas être supprimés et ne doivent pas être utilisés directement par les utilisateurs. Les éléments sont un détail d’implémentation de Dataflow Gen2. Les éléments ne sont pas visibles dans l’espace de travail, mais peuvent être accessibles dans d’autres expériences telles que les expériences notebook, point de terminaison SQL, lakehouse et entrepôt. Vous pouvez reconnaître les éléments par leur préfixe dans le nom. Le préfixe des éléments est « DataflowsStaging ».
(Facultatif) Dans la page de l’espace de travail, vous pouvez renommer votre flux de données en sélectionnant les points de suspension à droite du nom du flux de données qui apparaît après avoir sélectionné la ligne, puis en choisissant Propriétés.
Sélectionnez l’icône d’actualisation du flux de données après avoir sélectionné sa ligne. Lorsque vous avez terminé, vous devez voir votre nouvelle table Lakehouse créée comme configurée dans les paramètres de destination des données .
Vérifiez votre Lakehouse pour afficher la nouvelle table qui y est chargée.
Contenu connexe
Dans ce deuxième module de notre tutoriel de bout en bout pour votre première intégration de données à l’aide de Data Factory dans Microsoft Fabric, vous avez appris à :
- Créez un nouveau Dataflow Gen2.
- Importer et transformer des exemples de données.
- Importer et transformer des données texte/CSV.
- Fusionner les données des deux sources de données dans une nouvelle requête.
- Transformer des données et générer de nouvelles colonnes dans une requête.
- Configurer une source de destination de sortie pour une requête.
- Renommer et actualiser votre nouveau flux de données.
Passez à la section suivante maintenant pour intégrer votre pipeline de données.