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

  1. Dans la barre latérale, sélectionnez Créer, puis Dataflow Gen2 pour créer un flux de données gen2. Screenshot showing the Fabric Create page with the Dataflow Gen2 button highlighted.

  2. Dans le menu nouveau flux de données, sélectionnez Obtenir des données, puis Plus....

    Screenshot showing the Dataflow menu with Get data button highlighted and the More... option highlighted from its menu.

  3. Recherchez et sélectionnez le connecteur Lakehouse .

    Screenshot showing the selection of the Lakehouse data source from the Choose data source menu.

  4. 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.

    Screenshot showing the configuration of the data source settings for your new Lakehouse with your current signed in user, and the Next button selected.

  5. 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 .

    Screenshot showing the Lakehouse browser with the workspace, lakehouse, and table created with the Copy activity in module 1.

  6. (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.

    Screenshot showing the column options selection for your data.

Transformer les données importées à partir de Lakehouse

  1. 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 . Screenshot showing the selection of the Date data type for the IpepPickupDatetime column.

  2. (Facultatif) Sous l’onglet Accueil du ruban, sélectionnez l’option Choisir des colonnes dans le groupe Gérer les colonnes.

    Screenshot showing the Choose columns button on the Home tab of the dataflow editor.

  3. (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

    Screenshot showing the Choose columns dialog with the identified columns deselected.

  4. 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.)

    Screenshot showing the filter and sort dialog for the column.

  5. Sélectionnez « Y » pour afficher uniquement les lignes où une remise a été appliquée, puis sélectionnez OK.

    Screenshot showing the values filter with only 'Y' selected.

  6. 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.

    Screenshot showing the selection of the Date filters option in the column sort and format dropdown.

  7. 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.

    Screenshot showing the selection of the dates in January 2015.

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.

  1. 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.

    Screenshot showing the selection of the Get data menu from the Home tab, with Text/CSV highlighted.

  2. 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.

    Screenshot showing the Text/CSV settings for the connection.

  3. Dans la boîte de dialogue Aperçu des données du fichier, sélectionnez Créer.

    Screenshot showing the Preview file data dialog with the Create button highlighted.

Transformer les données de remise

  1. 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.

    Screenshot showing the selection of the Use first row as headers option from the table context menu.

    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.

  2. 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.

    Screenshot showing the context menu for the VendorID column with the Unpivot other columns selection highlighted.

  3. 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.

    Screenshot showing the table columns after renaming Attribute to Date and Value to Discount.

  4. 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.

    Screenshot showing the selection of the Date data type for the Date column.

  5. 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.

    Screenshot showing the selection of the Divide option to transform data in the Discount column.

  6. Dans la boîte de dialogue Diviser, entrez la valeur 100.

    Screenshot showing the Divide dialog with the value 100 entered and the OK button highlighted.

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é.

  1. Tout d’abord, activez le bouton Vue de diagramme pour voir vos deux requêtes.

    Screenshot showing the Diagram view toggle button with both queries created in this tutorial displayed.

  2. 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.

    Screenshot showing the Merge queries as new selection for the nyc_taxi query.

  3. 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.

    Screenshot showing the configuration of the Merge dialog with suggested column mappings displayed.

    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.

  4. 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.

    Screenshot showing the request to approve combining data from multiple data sources, with the OK button highlighted.

  5. 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.

    Screenshot showing the warning about combining data from multiple data sources with the Continue button highlighted.

  6. 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.

    Screenshot showing the merged query with the column selection menu displayed for the newly generated column Generated-NYC-Taxi-Green-Discounts.

  7. 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 .

    Screenshot showing the Add custom column button highlighted on the General section of the Add column tab.

  8. 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.

    Screenshot showing the Custom column configuration screen with the New column name, Data type and Custom column formula highlighted.

  9. 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....

    Screenshot showing the Round... option on the Transform tab of the editor window.

  10. Dans la boîte de dialogue Arrondir, entrez 2 pour le nombre de décimales, puis sélectionnez OK.

    Screenshot showing the Round dialog with 2 for the number of decimal places and the OK button highlighted.

  11. Modifiez le type de données de l’IpepPickupDatetime de Date à Date/Heure.

    Screenshot showing the selection of the Date/Time data type for the IpepPickupDatetime column.

  12. 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.

    Screenshot showing the renaming of the query from Merge to Output.

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.

  1. 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 .

    Screenshot showing the Add data destination button with Lakehouse highlighted.

  2. 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.

  3. 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.

    Screenshot showing the Choose destination target dialog with Table name nyc_taxi_with_discounts.

  4. 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.

    Screenshot showing the Choose destination settings dialog with the Save settings button highlighted.

  5. 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 ».

  6. (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.

    Screenshot showing the Properties option selected on the menu for a dataflow where it can be renamed.

  7. 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 .

    Screenshot showing the selection of the refresh button to refresh the dataflow.

  8. Vérifiez votre Lakehouse pour afficher la nouvelle table qui y est chargée.

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.