Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Power Query wertet eine M-Abfrage aus, um die für das Ergebnis erforderlichen Daten und Transformationen zu ermitteln. Während der Auswertung versucht die Abfragefaltung, unterstützte Transformationen in Vorgänge zu übersetzen, die eine Datenquelle ausführen kann. Transformationen, die nicht gefaltet werden können, werden im Power Query-Modul ausgeführt.
Was ist ein Power Query M-Skript?
Ein M-Skript, auch als M-Code bezeichnet, ist der Satz von Power Query M-Formelsprachenfunktionen und -syntax, die Power Query ausgewertet, um ein Abfrageergebnis zu erzeugen. Jede Abfrage enthält ein M-Skript, unabhängig davon, ob Power Query es erstellt, ob Sie es im erweiterten Editor schreiben oder ob Sie es in einer leeren Abfrage eingeben.
Tipp
Sie können sich das M-Skript als Rezept vorstellen, das beschreibt, wie Sie Ihre Daten vorbereiten.
Die am häufigsten verwendete Methode zum Erstellen eines M-Skripts ist die Verwendung des Power Query-Editors. Wenn Sie beispielsweise eine Verbindung mit einer Datenquelle herstellen, etwa mit einer SQL Server-Datenbank, sehen Sie rechts auf dem Bildschirm einen Abschnitt mit der Bezeichnung Angewendete Schritte. In diesem Abschnitt werden alle Schritte oder Transformationen aufgeführt, die in Ihrer Abfrage verwendet werden. In diesem Sinne dient der Power Query-Editor als Schnittstelle zum Erstellen des entsprechenden M-Skripts für die gewünschten Transformationen und stellt sicher, dass der verwendete Code gültig ist.
Hinweis
Das M-Skript wird im Power Query-Editor verwendet, um:
- Zeigen Sie die Abfrage als eine Reihe von Schritten an, und ermöglichen Sie ihnen das Erstellen oder Ändern von Schritten.
- Zeigen Sie eine Diagrammansicht an.
In diesem SQL Server Beispiel enthält der Bereich "Angewendete Schritte" die folgenden Schritte:
- Quelle: Macht die Verbindung mit der Datenquelle. In diesem Fall handelt es sich um eine Verbindung mit einer SQL Server Datenbank.
- Navigation: Navigiert zu einer bestimmten Tabelle in der Datenbank.
- Andere Spalten wurden entfernt: Wählt aus, welche Spalten aus der Tabelle beibehalten werden sollen.
- Sortierte Zeilen: Sortiert die Tabelle mithilfe einer oder mehrerer Spalten.
- Oberste Zeilen beibehalten: Filtert die Tabelle, um nur einige Zeilen vom Anfang der Tabelle zu behalten.
Anzeigen und Bearbeiten eines M-Skripts in Power Query
** Diese Gruppe von Schrittnamen ist eine benutzerfreundliche Möglichkeit, um das M-Skript anzusehen, das Power Query für Sie erstellt hat. Sie können das vollständige M-Skript auf verschiedene Arten anzeigen. Wählen Sie in Power Query auf der Registerkarte Ansicht die Option Erweiterter Editor aus. Sie können auch auf der Registerkarte Start in der Gruppe Abfrage die Option Erweiterter Editor auswählen. In einigen Versionen von Power Query können Sie auch die Ansicht der Formelleiste ändern, sodass das Abfrageskript angezeigt wird, indem Sie auf die Registerkarte Ansicht wechseln und in der Gruppe Layout die Option Skriptansicht>Abfrageskript auswählen.
Die meisten namen, die Sie im Bereich "Angewendete Schritte " finden, werden ebenfalls wie im M-Skript verwendet. Sie benennen Schritte einer Abfrage mithilfe von Bezeichnern in der Sprache M. Manchmal umbrechen zusätzliche Zeichen Schrittnamen in M, aber diese Zeichen werden in den angewendeten Schritten nicht angezeigt. Ein Beispiel ist #"Kept top rows", das aufgrund dieser zusätzlichen Zeichen als Anführungszeichen-Identifikator kategorisiert wird. Ein Bezeichner in Anführungszeichen ermöglicht die Verwendung beliebiger Folgen aus null oder mehr Unicode-Zeichen als Bezeichner, einschließlich Schlüsselwörtern, Leerzeichen, Kommentaren, Operatoren und Interpunktionszeichen. Weitere Informationen zu Bezeichnern in der Sprache M finden Sie in der lexikalischen Struktur.
Alle Änderungen, die Sie an Ihrer Abfrage über den Power Query-Editor vornehmen, aktualisieren automatisch das M-Skript für Ihre Abfrage. Wenn Sie z. B. den Schrittnamen Oberste Zeilen beibehalten in Oberste 20 Zeilen ändern, wird der Name auch in der Abfrageskriptansicht geändert.
Es wird zwar empfohlen, den Power Query-Editor zum Erstellen aller oder der meisten M-Skripts für Sie zu verwenden, Sie können Jedoch Teile Ihres M-Skripts manuell hinzufügen oder ändern. Weitere Informationen finden Sie in der M-Sprachreferenz.
In diesem Artikel bezieht sich das M-Skript auf den Power Query M-Code in einer Abfrage, auf den Sie über den erweiterten Editor oder die Abfrageskriptansicht in der Bearbeitungsleiste zugreifen können.
Wie Power Query eine M-Abfrage auswertet
Power Query wertet ein M-Skript aus, indem die erforderliche Ausgabe bestimmt und wie sie erstellt wird. Bei Abfragen, die eine externe Datenquelle verwenden, umfasst die Auswertung das Anfordern von Daten aus der Quelle, die Verarbeitung von Transformationen, die im Power Query-Modul ausgeführt werden, und das Ergebnis in ein Ziel zu laden.
Das folgende Diagramm untersucht den Prozess, der auftritt, wenn eine Abfrage in Power Query ausgewertet wird.
- Das im erweiterten Editor gefundene M-Skript wird an die Power Query-Engine übermittelt. Weitere wichtige Informationen sind auch enthalten, z. B. Anmeldeinformationen und Datenschutzstufen für Datenquellen.
- Power Query bestimmt, welche Daten aus der Datenquelle extrahiert werden müssen, und sendet eine Anforderung an die Datenquelle.
- Die Datenquelle antwortet auf die Anforderung von Power Query, indem die angeforderten Daten an Power Query übertragen werden.
- Power Query empfängt die eingehenden Daten aus der Datenquelle und führt bei Bedarf Transformationen mit dem Power Query-Modul durch.
- Power Query lädt das transformierte Ergebnis in ein Zielsystem.
Hinweis
Dieser Fluss zeigt eine Abfrage, die aus einer SQL Server-Datenbank liest. Bei einer Abfrage ohne externe Datenquelle wertet Power Query weiterhin das M-Skript aus und erzeugt ein Ergebnis, aber die Anforderungs- und Übertragungsphasen der Datenquelle gelten nicht.
So optimiert die Abfragefaltung die Abfrageauswertung
Wenn Power Query Ihr M-Skript liest, führt es das Skript durch einen Optimierungsprozess aus, um Ihre Abfrage effizienter auszuwerten. In diesem Prozess wird bestimmt, welche Schritte (Transformationen) aus Ihrer Abfrage auf Ihre Datenquelle verschoben werden können. Außerdem wird ermittelt, welche anderen Schritte mithilfe des Power Query-Moduls ausgewertet werden müssen.
Dieser Optimierungsprozess wird als Abfragefaltung bezeichnet. Die Abfragefaltung übersetzt unterstützte M-Transformationen in Vorgänge, die von der Datenquelle ausgeführt werden können. Power Query versucht, so viel abfrage wie möglich an der Datenquelle auszuführen und alle verbleibenden Transformationen im Power Query-Modul auszuwerten.
Von Bedeutung
Alle Regeln der Power Query M-Formelsprache (auch als M-Sprache bezeichnet) werden befolgt. Vor allem spielt die faule Auswertung während des Optimierungsprozesses eine wichtige Rolle. In diesem Prozess versteht Power Query, welche spezifischen Transformationen aus Ihrer Abfrage ausgewertet werden müssen. Power Query versteht auch, welche anderen Transformationen nicht ausgewertet werden müssen, da sie in der Ausgabe Ihrer Abfrage nicht benötigt werden.
Darüber hinaus wird bei der Auswertung der Abfrage bei mehreren Quellen die Datenschutzebene jeder Datenquelle berücksichtigt. Weitere Informationen: Hinter den Kulissen der Datenschutzfirewall
Das folgende Diagramm veranschaulicht die Schritte, die in diesem Optimierungsprozess ausgeführt werden.
- Das im erweiterten Editor gefundene M-Skript wird an die Power Query-Engine übermittelt. Weitere wichtige Informationen werden ebenfalls bereitgestellt, z. B. Anmeldeinformationen und Datenschutzstufen für Datenquellen.
- Der Abfragefaltungsmechanismus sendet Metadatenanforderungen, um die Funktionen der Datenquelle, Tabellenschemas, Beziehungen zwischen Tabellen an der Datenquelle und anderen Metadaten zu bestimmen.
- Basierend auf den empfangenen Metadaten bestimmt der Abfragefaltungsmechanismus, welche Informationen aus der Datenquelle extrahiert werden sollen und welche Transformationen innerhalb des Power Query-Moduls auftreten müssen. Es sendet Anweisungen an zwei weitere Komponenten, die Daten aus der Datenquelle abrufen und die eingehenden Daten im Power Query Modul bei Bedarf transformieren.
- Nachdem die internen Komponenten von Power Query die Anweisungen erhalten haben, sendet Power Query mithilfe einer Datenquellenabfrage eine Anforderung an die Datenquelle.
- Die Datenquelle empfängt die Anforderung von Power Query und überträgt die Daten an das Power Query Modul.
- Sobald die Daten in Power Query vorliegen, führt die Transformations-Engine in Power Query (auch als Mashup-Engine bezeichnet) die Transformationen aus, die nicht an die Datenquelle zurückgegeben oder an sie ausgelagert werden konnten.
- Power Query lädt das transformierte Ergebnis in ein Zielsystem.
Hinweis
Abhängig von den Transformationen und datenquellen, die im M-Skript verwendet werden, bestimmt Power Query, ob die eingehenden Daten gestreamt oder gepuffert werden sollen.
Funktionsweise der Abfragefaltung in Power Query
Das Ziel der Abfragefaltung besteht darin, den Großteil der Auswertung einer Abfrage in eine Datenquelle zu entladen oder zu übertragen, die die Transformationen Ihrer Abfrage berechnen kann.
Der Abfragefaltungsmechanismus erreicht dieses Ziel, indem Sie Ihr M-Skript in eine Sprache übersetzen, die Ihre Datenquelle interpretieren und ausführen kann. Anschließend wird die Auswertung an Ihre Datenquelle übertragen und das Ergebnis dieser Auswertung an Power Query gesendet.
Dieser Vorgang bietet häufig eine schnellere Abfrageausführung als das Extrahieren aller erforderlichen Daten aus Der Datenquelle und das Ausführen aller Transformationen, die im Power Query Modul erforderlich sind.
Wenn Sie die Datenabfrage-Funktion verwenden, führt Power Query Sie durch den Prozess, mit dem Sie schlussendlich eine Verbindung mit Ihrer Datenquelle herstellen können. Dabei verwendet Power Query eine Reihe von Funktionen in der M-Sprache, die als zugriff auf Datenfunktionen kategorisiert sind. Diese spezifischen Funktionen verwenden Mechanismen und Protokolle, um mithilfe einer Sprache, die Ihre Datenquelle verstehen kann, eine Verbindung mit Ihrer Datenquelle herzustellen.
Bei Transformationen nach der Datenquellenfunktion überprüft der Abfragefaltungsmechanismus, ob er sie in die Datenquelle entladen kann, anstatt sie im Power Query-Modul zu verarbeiten.
Von Bedeutung
Datenquellenfunktionen, die häufig als Schritt Source einer Abfrage angezeigt werden, fragen Daten aus der Datenquelle in deren nativer Sprache ab. Bei Transformationen, die nach der Datenquellenfunktion ausgeführt werden, versucht Power Query nur dann eine Abfragefaltung, wenn der Konnektor und die Transformationen diese unterstützen. Der Mechanismus kann unterstützte Transformationen in eine einzelne Datenquellenabfrage übersetzen und kombinieren.
Ergebnisse der Abfragefaltung in Power Query
Je nachdem, wie die Abfrage strukturiert ist, kann es drei mögliche Ergebnisse für den Abfragefaltungsmechanismus geben:
| Ergebnis der Abfragefaltung | Verarbeitung an der Datenquelle | Verarbeitung in der Power Query-Engine |
|---|---|---|
| Vollständige Abfragefaltung | Die Datenquelle verarbeitet alle Abfragetransformationen. | Die minimale Verarbeitung erfolgt im Power Query-Modul. |
| Teilweise Abfragefaltung | Die Datenquelle verarbeitet die Transformationen, die Power Query in die native Abfragesprache übersetzen kann. | Das Power Query Modul verarbeitet die verbleibenden Transformationen. |
| Keine Abfragefaltung | Die Datenquelle gibt die angeforderten Quelldaten ohne Verarbeitung von Abfragetransformationen zurück. | Das Power Query Modul verarbeitet alle erforderlichen Transformationen. |
Datenquellen, die Abfragefaltung unterstützen
Die Abfragefaltungsunterstützung hängt vom Connector, der Datenquelle und den Transformationen in der Abfrage ab. Konnektoren für strukturierte Datenquellen mit Funktionen zur Abfrageverarbeitung, wie SQL Server und OData-Feed, unterstützen häufig Query Folding. Quellen ohne Abfragemodul, z. B. CSV- und Excel-Dateien, unterstützen keine Abfragefaltung.
Während der Optimierung kann das Power Query Modul Abfrageschritte neu anordnen. Die Verwendung einer Datenquelle mit mehr Verarbeitungsressourcen und Abfragefaltungsfunktionen kann die Ladezeiten der Abfrage reduzieren, da die Verarbeitung an der Datenquelle statt im modul Power Query erfolgt.
Überprüfen der Abfragefaltung in Power Query Online
Verwenden Sie in Power Query Online Abfragefaltungsindikatoren neben den angewendeten Schritten, um zu erkennen, bei welchen Schritten eine Abfragefaltung erfolgt. Sie können auch den Abfrageplan verwenden, um zu sehen, welche Vorgänge an der Datenquelle ausgeführt werden und welche Vorgänge im Power Query Modul ausgeführt werden. Diese Features sind nur in Power Query Online verfügbar.
Verwenden Sie nach Verfügbarkeit die Abfrage "Native Abfrage anzeigen" oder "Datenquellen anzeigen", um die Anforderung zu prüfen, die Power Query an die Datenquelle sendet. Die Verfügbarkeit hängt vom Connector ab.