Modul 2: Transformieren von Daten mit einem Dataflow in Data Factory
Dieses Modul benötigt etwa 25 Minuten, um einen Dataflow zu erstellen, Transformationen anzuwenden und die Rohdaten aus der Bronze-Tabelle in eine Lakehouse-Gold-Tabelle zu verschieben.
Da die Rohdaten aus dem letzten Modul in Ihre Bronze-Lakehouse-Tabelle geladen wurden, können Sie diese Daten jetzt vorbereiten und anreichern, indem Sie sie mit einer anderen Tabelle kombinieren, die Rabatte für jeden Anbieter und seine Reisen an einem bestimmten Tag enthält. Diese finale Lakehouse-Gold-Tabelle wird geladen und kann verwendet werden.
Die allgemeinen Schritte in diesem Dataflow sind wie folgt:
- Abrufen von Rohdaten aus der Lakehouse-Tabelle, die von der Copy-Aktivität in Modul 1: Erstellen einer Pipeline mit Data Factory erstellt wurde.
- Transformieren der aus der Lakehouse-Tabelle importierten Daten.
- Herstellen einer Verbindung mit einer CSV-Datei, die Rabattdaten enthält.
- Transformieren der Rabattdaten.
- Kombinieren von Fahrten und Rabattdaten.
- Laden der Ausgabeabfrage in die Lakehouse-Gold-Tabelle.
Abrufen von Daten aus einer Lakehouse-Tabelle
Wählen Sie in der Randleiste Erstellen und dann Dataflow Gen2 aus, um einen neuen Dataflow gen2 zu erstellen.
Wählen Sie im neuen Datenflowmenü die Option Daten abrufen und dann Mehr... aus.
Suchen Sie nach dem Connector Lakehouse, und wählen Sie ihn aus.
Das Dialogfeld Mit Datenquelle verbinden wird angezeigt. Basierend auf dem aktuell angemeldeten Benutzer wird automatisch eine neue Verbindung für Sie erstellt. Wählen Sie Weiter aus.
Das Dialogfeld Daten auswählen wird angezeigt. Verwenden Sie den Navigationsbereich, um das Lakehouse zu finden, das Sie im vorherigen Modul für das Ziel erstellt haben, und wählen Sie die Datentabelle Tutorial_Lakehouse aus.
(Optional) Nachdem Ihr Canvas mit den Daten aufgefüllt wurde, können Sie Informationen für das Spaltenprofil festlegen, da dies für die Datenprofilerstellung nützlich ist. Sie können die richtige Transformation anwenden und basierend darauf die richtigen Datenwerte festlegen.
Wählen Sie dazu im Menüband Optionen aus. Wählen Sie dann die ersten drei Optionen unter Spaltenprofil und dann OK aus.
Transformieren der aus Lakehouse importierten Daten.
Wählen Sie das Datentypsymbol in der Spaltenüberschrift der zweiten Spalte IpepPickupDatetime aus, um ein Dropdownmenü anzuzeigen. Wählen Sie im Menü den Datentyp aus, um den Typ der Spalte von Datum/Uhrzeit in Datum zu ändern.
(Optional) Wählen Sie auf der Registerkarte Start des Menübands aus der Gruppe Spalten verwalten die Option Spalten auswählen aus.
(Optional) Wählen Sie im Dialogfeld Spalten auswählen einige der hier aufgeführten Spalten ab, und klicken Sie dann auf OK.
- lpepDropoffDatetime
- puLocationId
- doLocationId
- pickupLatitude
- dropoffLongitude
- rateCodeID
Wählen Sie den Spaltenfilter storeAndFwdFlag aus und sortieren Sie das Dropdownmenü. (Wenn die Warnung Die Liste kann unvollständig sein angezeigt wird, wählen Sie Weitere Daten laden aus, um alle Daten anzuzeigen).
Wählen Sie „Y“ aus, um nur Zeilen anzuzeigen, in denen ein Rabatt angewendet wurde, und klicken Sie dann auf OK.
Wählen Sie die Spaltensortierung IpepPickupDatetime aus und filtern Sie das Dropdownmenü. Wählen Sie dann Datumsfilter aus und dann den Filter Zwischen..., der für die Typen Datum und Datum/Uhrzeit bereitgestellt wird.
Wählen Sie im Dialogfeld Zeilen filtern Datumsangaben zwischen dem 1. Januar 2015 und dem 31. Januar 2015 aus, und wählen Sie dann OK aus.
Herstellen einer Verbindung mit einer CSV-Datei, die Rabattdaten enthält.
Nachdem nun die Daten aus den Fahrten vorhanden sind, möchten wir die Daten laden, die die entsprechenden Rabatte für jeden Tag und jede VendorID enthalten, und die Daten vorbereiten, bevor wir sie mit den Fahrtdaten kombinieren.
Wählen Sie auf der Registerkarte Start im Menü des Dataflow-Editors die Option Daten abrufen und dann Text/CSV aus.
Geben Sie im Dialogfeld Mit Datenquelle verbinden die folgenden Details an:
- Dateipfad oder URL -
https://raw.githubusercontent.com/ekote/azure-architect/master/Generated-NYC-Taxi-Green-Discounts.csv
- Authentifizierungsart – Anonym
Wählen Sie Weiteraus.
- Dateipfad oder URL -
Wählen Sie im Dialogfeld Vorschau der Dateidaten anzeigen die Option Erstellen aus.
Transformieren der Rabattdaten
Beim Überprüfen der Daten sehen wir, dass sich die Kopfzeilen in der ersten Zeile befinden. Stufen Sie die ersten Zeilen zu Kopfzeilen herauf, indem Sie oben links im Vorschauraster das Kontextmenü der Tabelle auswählen, um die Option Erste Zeile als Überschriften verwenden auszuwählen.
Hinweis
Nach dem Heraufstufen der Kopfzeilen wird im Bereich Angewendete Schritte oben im Dataflow-Editor ein neuer Schritt für die Datentypen Ihrer Spalten hinzugefügt.
Klicken Sie mit der rechten Maustaste auf die Spalte VendorID und wählen Sie im angezeigten Kontextmenü die Option Andere Spalten entpivotieren aus. So können Sie Spalten in Attribut-Wert-Paare transformieren, bei denen Spalten zu Zeilen werden.
Wenn die Tabelle entpivotiert ist, benennen Sie die Spalten Attribut und Wert um, indem Sie einen Doppelklick darauf ausführen und Attribut in Datum und Wert in Rabatt ändern.
Ändern Sie den Datentyp der Spalte Datum, indem Sie das Datentypmenü links neben dem Spaltennamen auswählen und auf Datum klicken.
Wählen Sie die Spalte Rabatt aus und dann im Menü die Registerkarte Transformieren. Wählen Sie Zahlenspalte aus und dann im Untermenü die Option Standard für numerische Transformationen. Wählen Sie dann Dividieren aus.
Geben Sie im Dialogfeld Dividieren den Wert 100 ein.
Kombinieren von Fahrten und Rabattdaten
Der nächste Schritt besteht darin, beide Tabellen in einer einzelnen Tabelle zu kombinieren, die über den Rabatt verfügt, der auf die Reise angewendet werden soll, und die angepasste Summe.
Schalten Sie zunächst die Schaltfläche Diagrammansicht um, damit Sie beide Abfragen sehen können.
Wählen Sie die Abfrage nyc_taxi aus. Wählen Sie dann auf der Registerkarte Start das Menü Kombinieren aus. Wählen Sie danach Abfragen zusammenführen und dann Abfragen als neue Abfrage zusammenführen aus.
Wählen Sie im Dialogfeld Zusammenführen die Option Generated-NYC-Taxi-Green-Discounts aus der Dropdownliste Rechte Tabelle für Zusammenführung aus. Wählen Sie dann die Glühbirne oben rechts im Dialogfeld aus, um das vorgeschlagene Mapping von Spalten zwischen den beiden Tabellen anzuzeigen.
Wählen Sie die beiden vorgeschlagenen Spaltenzuordnungen einzeln aus, und ordnen Sie die Spalten VendorID und Datum aus beiden Tabellen zu. Wenn beide Mappings hinzugefügt wurden, werden die entsprechenden Spaltenüberschriften in jeder Tabelle hervorgehoben.
Es wird eine Meldung angezeigt, in der Sie aufgefordert werden, die Kombination von Daten aus mehreren Datenquellen zuzulassen, um die Ergebnisse anzuzeigen. Klicken Sie im Dialogfeld Zusammenführen auf OK.
Im Tabellenbereich sehen Sie zunächst eine Warnung: „Die Auswertung wurde abgebrochen, weil das Kombinieren von Daten aus mehreren Quellen dazu führen kann, dass Daten zwischen den Quellen offengelegt werden. Klicken Sie auf „Weiter“, wenn die Möglichkeit des Offenlegens von Daten kein Problem darstellt.“ Wählen Sie Weiter aus, um die kombinierten Daten anzuzeigen.
Beachten Sie, dass eine neue Abfrage in der Diagrammansicht erstellt wurde, die die Beziehung der neuen Merge-Abfrage und den beiden zuvor erstellten Abfragen anzeigt. Scrollen Sie im Tabellenbereich des Editors nach rechts neben der Spaltenliste Merge-Abfrage. Dort sehen Sie, dass eine neue Spalte mit Tabellenwerten vorhanden ist. Dies ist die Spalte „Generierte NYC Taxi-Green-Discounts“ mit dem Typ [Tabelle]. In der Spaltenüberschrift befindet sich ein Symbol mit zwei Pfeilen, die in entgegengesetzte Richtungen zeigen, mit dem Sie Spalten aus der Tabelle auswählen können. Deaktivieren Sie alle Spalten mit Ausnahme von Rabatt, und wählen Sie dann OK aus.
Da der Rabattwert nun auf Zeilenebene vorliegt, können wir eine neue Spalte erstellen, um den Gesamtbetrag nach dem Rabatt zu berechnen. Wählen Sie dazu oben im Editor die Registerkarte Spalte hinzufügen aus. Wählen Sie dann in der Gruppe Allgemein die Option Benutzerdefinierte Spalte aus.
Im Dialogfeld Benutzerdefinierte Spalte können Sie die Power Query Formelsprache (auch als M bezeichnet) verwenden, um zu definieren, wie Ihre neue Spalte berechnet werden soll. Geben Sie TotalAfterDiscount bei Neuer Spaltenname ein. Wählen Sie dann Währung für den Datentyp aus, und geben Sie den folgenden M-Ausdruck für die Benutzerdefinierte Spaltenformel an:
if [totalAmount] > 0 dann [totalAmount] * ( 1 -[Discount] ) else [totalAmount]
Klicken Sie anschließend auf OK.
Wählen Sie die neu erstellte Spalte TotalAfterDiscount aus. Wählen Sie dann oben im Editorfenster die Registerkarte Transformieren aus. Wählen Sie in der Gruppe Zahlenspalte die Dropdownliste Runden aus, und wählen Sie dann Runden... aus.
Geben Sie im Dialogfeld Runden als Anzahl der Dezimalstellen den Wert 2 ein, und wählen Sie dann OK aus.
Ändern Sie den Datentyp von IpepPickupDatetime von Datum in Datum/Uhrzeit.
Erweitern Sie schließlich den Bereich Abfrageeinstellungen auf der rechten Seite des Editors, falls er noch nicht erweitert wurde, und benennen Sie die Abfrage von Zusammenführen in Ausgabe um.
Laden der Ausgabeabfrage in eine Tabelle in Lakehouse
Wenn die Ausgabeabfrage vollständig vorbereitet ist und Daten zur Ausgabe bereitstehen, können wir das Ausgabeziel für die Abfrage definieren.
Wählen Sie die zuvor erstellte Merge-Abfrage Ausgabe aus, die Sie zuvor erstellt haben. Wählen Sie dann die Registerkarte Start im Editor und dann die Option Datenziel hinzufügen aus der Gruppierung Abfrage aus, um ein Lakehouse-Ziel auszuwählen.
Im Dialogfeld Herstellen einer Verbindung mit dem Datenziel sollte Ihre Verbindung bereits ausgewählt sein. Wählen Sie Weiter aus, um fortzufahren.
Navigieren Sie im Dialogfeld Zielort auswählen zu dem Lakehouse, in das Sie die Daten laden möchten. Vergeben Sie den Namen nyc_taxi_with_discounts für die neue Tabelle und wählen Sie dann erneut Weiter aus.
Behalten Sie im Dialogfeld Zieleinstellungen auswählen die Standard-Aktualisierungsmethode Replace bei. Stellen Sie sicher, dass Ihre Spalten ordnungsgemäß zugeordnet sind, und wählen Sie Einstellungen speichern aus.
Vergewissern Sie sich im Hauptfenster des Editors, dass Ihr Ausgabeziel im Bereich Abfrageeinstellungen für die Tabelle Ausgabe angezeigt wird, und wählen Sie dann Veröffentlichen aus.
Wichtig
Bei der ersten Dataflow Gen2-Erstellung in einem Arbeitsbereich werden Lakehouse- und Warehouse-Elemente zusammen mit den zugehörigen SQL-Analyseendpunkten und semantischen Modellen bereitgestellt. Diese Elemente werden von allen Dataflows im Arbeitsbereich gemeinsam verwendet und sind für Dataflow Gen2 erforderlich. Sie sollten nicht gelöscht und nicht direkt von Benutzern verwendet werden. Die Elemente sind ein Implementierungsdetail von Dataflow Gen2. Die Elemente sind im Arbeitsbereich nicht sichtbar, können aber in anderen Oberflächen wie Notebook, SQL-Endpunkt, Lakehouse- und Warehouse-Erfahrungen zugänglich sein. Sie können die Elemente anhand ihres Präfixes im Namen erkennen. Das Präfix der Elemente lautet „DataflowsStaging“.
(Optional) Auf der Seite Arbeitsbereich können Sie Ihren Dataflow umbenennen, indem Sie die Ellipse rechts neben dem Dataflownamen auswählen. Diese wird angezeigt, nachdem Sie die Zeile ausgewählt haben, und dann auf Eigenschaften klicken.
Wählen Sie das Aktualisierungssymbol für den Dataflow aus, nachdem Sie die Zeile ausgewählt haben. Danach sollte Ihre neue Lakehouse-Tabelle wie in den Einstellungen für das Datenziel konfiguriert erstellt werden.
Überprüfen Sie Ihr Lakehouse, um die neue Tabelle anzuzeigen, die dort geladen wurde.
Zugehöriger Inhalt
In diesem dritten Modul unseres End-to-End-Tutorial für Ihre erste Datenintegration mit Data Factory in Microsoft Fabric haben Sie folgendes gelernt:
- Erstellen Sie einen neuen Dataflow Gen2.
- Importieren und Transformieren von Beispieldaten.
- Importieren und Transformieren von Text-/CSV-Daten.
- Zusammenführen von Daten aus beiden Datenquellen in einer neuen Abfrage.
- Transformieren von Daten und Erstellen neuer Spalten in einer Abfrage.
- Konfigurieren einer Ausgabezielquelle für eine Abfrage.
- Umbenennen und Aktivieren Ihres neuen Dataflow.
Fahren Sie jetzt mit dem nächsten Modul fort, um Ihre Datenpipeline zu integrieren.