Freigeben über


Transformationsfunktionen in Power Query für datenwrangling

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Tipp

Data Factory in Microsoft Fabric ist die nächste Generation von Azure Data Factory mit einer einfacheren Architektur, integrierter KI und neuen Features. Wenn Sie mit der Datenintegration noch nicht vertraut sind, beginnen Sie mit Fabric Data Factory. Vorhandene ADF-Workloads können auf Fabric aktualisieren, um auf neue Funktionen in data Science, Echtzeitanalysen und Berichterstellung zuzugreifen.

Das Wrangling von Daten in Azure Data Factory ermöglicht es Ihnen, codefreie Agile-Datenvorbereitung und -wrangling im Cloudmaßstab zu erledigen, indem Sie Power Query M-Skripts in Datenfluss Skript übersetzen. ADF ist in Power Query Online integriert und stellt Power Query M Funktionen für die Datenverknrangung über spark-Ausführung mithilfe der Spark-Infrastruktur zur Verfügung.

Derzeit werden nicht alle Power Query M-Funktionen für das Wrangieren von Daten unterstützt, obwohl sie während der Dokumenterstellung verfügbar sind. Beim Erstellen Ihrer Mash-Ups wird die folgende Fehlermeldung angezeigt, wenn eine Funktion nicht unterstützt wird:

UserQuery : Expression.Error: The transformation logic is not supported as it requires dynamic access to rows of data, which cannot be scaled out.

Nachfolgend finden Sie eine Liste der unterstützten Power Query M-Funktionen.

Spaltenverwaltung

Zeilenfilterung

Verwenden Sie die M-Funktion Table.SelectRows, um Zeilen nach den folgenden Bedingungen zu filtern:

  • Gleichheit und Ungleichheit
  • Vergleiche von Zahlen, Text und Datumsangaben (jedoch nicht von Datum/Uhrzeit)
  • Zahlenangaben, z. B. Number.IsEven/Odd
  • Texteingrenzung unter Verwendung von Text.Contains, Text.StartsWith oder Text.EndsWith
  • Datumsbereiche einschließlich aller Datumsfunktionen mit „IsIn“)
  • Kombinationen dieser Bedingungen unter Verwendung der Bedingungen „and“, „or“ oder „not“

Hinzufügen und Transformieren von Spalten

Spalten lassen sich mit den folgenden M-Funktionen hinzufügen oder transformieren: Table.AddColumn, Table.TransformColumns, Table.ReplaceValue, Table.DuplicateColumn. Nachfolgend sind die unterstützten Transformationsfunktionen aufgeführt.

Zusammenführen und Verknüpfen von Tabellen

  • Power Query generiert eine geschachtelte Verknüpfung (Table.NestedJoin; Benutzer können auch manuell Table.AddJoinColumn schreiben). Benutzer müssen dann die geschachtelte Verknüpfungsspalte in eine nicht geschachtelten Verknüpfung erweitern (Table.ExpandTableColumn, wird in keinem anderen Kontext unterstützt).
  • Die M-Funktion Table.Join kann direkt geschrieben werden, um einen zusätzlichen Erweiterungsschritt zu vermeiden, der Benutzer muss jedoch sicherstellen, dass in den verknüpften Tabellen keine doppelten Spaltennamen vorhanden sind.
  • Unterstützte Verknüpfungsarten: Inner, LeftOuter, RightOuter, FullOuter
  • Value.Equals sowie Value.NullableEquals werden als Vergleichsfunktionen für Schlüsselgleichheit unterstützt.

Gruppieren nach

Verwenden Sie Table.Group, um Werte zu aggregieren.

Sortierung

Verwenden Sie Table.Sort, um Werte zu sortieren.

Verringern von Zeilen

„Erste Zeilen beibehalten“ und „Erste Zeilen entfernen“, „Zeilenbereich beibehalten“ (entsprechende M-Funktionen unterstützen nur die Anzahl und keine Bedingungen: Table.FirstN, Table.Skip, Table.RemoveFirstN, Table.Range, Table.MinN, Table.MaxN)

Bekannte nicht unterstützte Funktionen

Funktion Status
Table.PromoteHeaders Wird nicht unterstützt. Dasselbe Ergebnis kann erzielt werden, indem „Erste Zeile als Header verwenden“ im Dataset festgelegt wird.
Table.CombineColumns Dies ist ein gängiges Szenario, das nicht direkt unterstützt wird. Es kann jedoch durch Hinzufügen einer neuen Spalte umgesetzt werden, in der zwei angegebene Spalten verkettet sind. Beispiel: Table.AddColumn(RemoveEmailColumn, "Name", each [FirstName] & " " & [LastName])
Table.TransformColumnTypes Diese Funktion wird in den meisten Fällen unterstützt. Die folgenden Szenarien werden nicht unterstützt: Transformieren des Typs „string“ in „currency“, Transformieren des Typs „string“ in „time“, Transformieren des Typs „string“ in „Percentage“ und Transformieren mit Gebietsschema.
Table.NestedJoin Wenn Sie nur einen Join durchführen, führt dies zu einem Überprüfungsfehler. Die Spalten müssen erweitert werden, damit der Vorgang funktioniert.
Table.RemoveLastN Das Entfernen der unteren Zeilen wird nicht unterstützt.
Table.RowCount Nicht unterstützt, kann jedoch durch Hinzufügen einer benutzerdefinierten Spalte mit dem Wert „1“ und anschließendes Aggregieren dieser Spalte mit „List.Sum“ erreicht werden. Table.Group wird unterstützt.
Fehlerbehandlung auf Zeilenebene Die Fehlerbehandlung auf Zeilenebene wird derzeit nicht unterstützt. Wenn Sie z. B. nicht numerische Werte aus einer Spalte herausfiltern möchten, können Sie u. a. die Textspalte in eine Zahl transformieren. Jede Zelle, die nicht transformiert werden kann, weist einen Fehlerstatus auf und muss gefiltert werden. Dieses Szenario ist bei M-Funktionen mit horizontaler Skalierung nicht möglich.
Table.Transpose Nicht unterstützt

Problemumgehungen bei M-Skripts

SplitColumn

Eine Alternative für die Aufteilung nach Länge und Position ist unten aufgeführt

  • Table.AddColumn(Source, "First characters", each Text.Start([Email], 7), type text)
  • Table.AddColumn(#"Inserted first characters", "Text range", each Text.Middle([Email], 4, 9), type text)

Auf diese Option kann über die Option „Extrahieren“ auf dem Menüband zugegriffen werden.

Power Query Spalte hinzufügen

Table.CombineColumns

  • Table.AddColumn(RemoveEmailColumn, "Name", each [FirstName] & " " & [LastName])

Pivots

  • Wählen Sie Pivot-Transformation aus dem PQ-Editor und wählen Sie Ihre Pivot-Spalte

Power Query Pivot Common

  • Wählen Sie dann die Wertespalte und die Aggregatfunktion

Power Query Pivot Selector

  • Wenn Sie auf „OK“ klicken, werden die Daten im Editor mit den pivotierten Werten aktualisiert
  • Es wird auch eine Warnmeldung angezeigt, dass die Transformation möglicherweise nicht unterstützt wird
  • Um diese Warnung zu beheben, erweitern Sie die geschwenkte Liste manuell mit dem PQ-Editor
  • Wählen Sie im Menüband Erweiterter Editor Option aus.
  • Erweitern Sie die Liste der geschwenkten Werte manuell
  • Ersetzen Sie List.Distinct() durch die Liste der Werte wie folgt:
#"Pivoted column" = Table.Pivot(Table.TransformColumnTypes(#"Changed column type 1", {{"genres", type text}}), {"Drama", "Horror", "Comedy", "Musical", "Documentary"}, "genres", "Rating", List.Average)
in
  #"Pivoted column"

Formatierung von Datum/Uhrzeit-Spalten

Wenn Sie das Datums-/Uhrzeitformat bei Verwendung von Power Query ADF festlegen möchten, befolgen Sie diese Sätze, um das Format festzulegen.

Power Query Änderungstyp

  1. Wählen Sie die Spalte in der benutzeroberfläche Power Query aus, und wählen Sie "Typ ändern" > Datum/Uhrzeit aus.
  2. Es wird eine Warnmeldung angezeigt
  3. Öffnen Sie Erweiterter Editor, und ändern Sie TransformColumnTypes in TransformColumns. Legen Sie das Format und die Kultur auf der Grundlage der Eingabedaten fest.

Power Query-Editor

#"Changed column type 1" = Table.TransformColumns(#"Duplicated column", {{"start - Copy", each DateTime.FromText(_, [Format = "yyyy-MM-dd HH:mm:ss", Culture = "en-us"]), type datetime}})

Erfahren Sie, wie Sie Create a data wrangling Power Query in ADF erstellen.