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.
Dieser Artikel enthält eine grundlegende Übersicht darüber, wie M-Abfragen verarbeitet und in Datenquellenanforderungen umgewandelt werden.
Power Query-M-Skript
Jede Abfrage, ob von Power Query erstellt, manuell im erweiterten Editor geschrieben oder mit einem leeren Dokument eingegeben wurde, besteht aus Funktionen und Syntax aus der Power Query M-Formelsprache. Diese Abfrage wird vom Power Query-Modul interpretiert und ausgewertet, um die Ergebnisse auszugeben. Das M-Skript dient als Eine Reihe von Anweisungen, die zum Auswerten der Abfrage erforderlich sind.
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 z. B. eine Verbindung mit einer Datenquelle herstellen, z. B. eine SQL Server-Datenbank, beachten Sie auf der rechten Seite des Bildschirms, dass ein Abschnitt mit angewendeten Schritten aufgerufen wird. In diesem Abschnitt werden alle Schritte oder Transformationen angezeigt, die in Ihrer Abfrage verwendet werden. In diesem Sinne dient der Power Query-Editor als Schnittstelle, um das entsprechende M-Skript für die Transformationen zu erstellen, die Sie anstreben, 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 die Erstellung oder Änderung neuer Schritte.
- Anzeigen einer Diagrammansicht.
In der vorherigen Abbildung wird der Abschnitt "Angewendete Schritte" hervorgehoben, der die folgenden Schritte enthält:
- 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.
Dieser Satz von Schrittnamen ist eine benutzerfreundliche Möglichkeit zum Anzeigen des M-Skripts, das Power Query für Sie erstellt hat. Es gibt mehrere Möglichkeiten zum Anzeigen des vollständigen M-Skripts. In Power Query können Sie Erweiterter Editor auf der Registerkarte Ansicht auswählen. Sie können auch Erweiterter Editor in der Gruppe Abfrage auf der Registerkarte Start auswählen. In einigen Versionen von Power Query können Sie auch die Ansicht der Bearbeitungsleiste ändern, um das Abfrageskript anzuzeigen, indem Sie zur Registerkarte Ansicht wechseln und in der Gruppe Layout die Option Skriptansicht>Abfrageskript auswählen.
Die meisten Namen im Bereich "Angewendete Schritte " werden ebenfalls wie im M-Skript verwendet. Schritte einer Abfrage werden mithilfe von Bezeichnern in der Sprache M benannt. Manchmal werden zusätzliche Zeichen um Schrittnamen in M umschlossen, 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 kann zum Verwenden beliebiger Sequenzen mit keinen oder mehreren Unicode-Zeichen verwendet werden, einschließlich Schlüsselwörter, Leerzeichen, Kommentare, Operatoren und Trennzeichen. 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, aktualisiert automatisch das M-Skript für Ihre Abfrage. Wenn Sie zum Beispiel das vorherige Bild als Ausgangspunkt verwenden und den Schritt-Namen "Kept top rows" in "Top 20 rows" ändern, wird diese Änderung automatisch in der Skriptansicht aktualisiert.
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 zur Sprache M finden Sie auf der offiziellen Dokumentwebsite für die Sprache M.
Hinweis
M-Skript, auch als M-Code bezeichnet, ist ein Begriff, der für jeden Code verwendet wird, der die Power Query M-Sprache verwendet. Im Kontext dieses Artikels bezieht sich das M-Skript auch auf den Code, der in einer Power Query-Abfrage gefunden wurde und über das erweiterte Editorfenster oder über die Skriptansicht in der Bearbeitungsleiste zugänglich ist.
Abfrageauswertung in Power Query
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 das Power Query-Modul ü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 ggf. Transformationen mithilfe des Power Query-Moduls durch.
- Die vom vorherigen Punkt abgeleiteten Ergebnisse werden an ein Ziel geladen.
Hinweis
Während in diesem Beispiel eine Abfrage mit einer SQL-Datenbank als Datenquelle dargestellt wird, gilt das Konzept für Abfragen mit oder ohne Datenquelle.
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 weiteren Schritte mithilfe des Power Query-Moduls ausgewertet werden müssen. Dieser Optimierungsprozess wird als Abfragefaltung bezeichnet, bei dem Power Query versucht, so viel der möglichen Ausführung an die Datenquelle zu übertragen, um die Ausführung Ihrer Abfrage zu optimieren.
Von Bedeutung
Alle Regeln aus 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 das Power Query-Modul übermittelt. Weitere wichtige Informationen werden ebenfalls bereitgestellt, z. B. Anmeldeinformationen und Datenschutzstufen für Datenquellen.
- Der Abfragefaltungsmechanismus sendet Metadatenanforderungen an die Datenquelle, um die Funktionen der Datenquelle, Tabellenschemas, Beziehungen zwischen verschiedenen Tabellen an der Datenquelle und mehr 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 ausgeführt werden müssen. Sie sendet die Anweisungen an zwei weitere Komponenten, die sich um das Abrufen der Daten aus der Datenquelle kümmern und bei Bedarf die eingehenden Daten im Power Query-Modul transformieren.
- Sobald die internen Komponenten von Power Query die Anweisungen erhalten, 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 sich die Daten in Power Query befinden, führt die Transformations-Engine innerhalb von Power Query (auch als Mashup-Engine bezeichnet) die Transformationen durch, für die kein Backfolding erfolgen konnte oder die nicht an die Datenquelle ausgelagert werden konnten.
- Die vom vorherigen Punkt abgeleiteten Ergebnisse werden an ein Ziel geladen.
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.
Übersicht über Query Folding
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 ermöglicht häufig eine schnellere Ausführung von Abfragen als das Extrahieren aller erforderlichen Daten aus der Datenquelle und das Ausführen aller Transformationen, die in der Power Query Engine erforderlich sind.
Wenn Sie die Datenabruf-Erfahrung nutzen, führt Power Query Sie durch den Prozess, der es Ihnen letztendlich ermöglicht, eine Verbindung zu Ihrer Datenquelle herzustellen. 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.
Die schritte, die in Ihrer Abfrage ausgeführt werden, sind jedoch die Schritte oder Transformationen, die der Abfragefaltungsmechanismus zu optimieren versucht. Anschließend wird überprüft, ob sie in Ihre Datenquelle ausgelagert werden können, anstatt sie mithilfe der Power Query-Engine verarbeitet zu werden.
Von Bedeutung
Alle Datenquellenfunktionen, die häufig als Quellschritt einer Abfrage angezeigt werden, fragt die Daten in der Datenquelle in ihrer Muttersprache ab. Der Abfragefaltungsmechanismus wird für alle Transformationen verwendet, die nach der Datenquellenfunktion auf Ihre Abfrage angewendet werden. Sie können dann in eine einzelne Datenquellenabfrage oder so viele Transformationen übersetzt und kombiniert werden, die in die Datenquelle geladen werden können.
Je nachdem, wie die Abfrage strukturiert ist, kann es drei mögliche Ergebnisse für den Abfragefaltungsmechanismus geben:
- Vollständige Abfragefaltung: Wenn alle Abfragetransformationen an die Datenquelle übergeben werden und die minimale Verarbeitung im Power Query-Modul erfolgt.
- Teilweise Abfragefaltung: Wenn nur wenige Transformationen in Ihrer Abfrage und nicht alle transformationen an die Datenquelle zurückgesendet werden können. In diesem Fall erfolgt nur eine Teilmenge Ihrer Transformationen an der Datenquelle, und die restlichen Abfragetransformationen treten im Power Query-Modul auf.
- Keine Abfragefaltung: Wenn die Abfrage Transformationen enthält, die nicht in die systemeigene Abfragesprache Ihrer Datenquelle übersetzt werden können, entweder weil die Transformationen nicht unterstützt werden oder der Connector die Abfragefaltung nicht unterstützt. In diesem Fall ruft Power Query die Rohdaten aus Ihrer Datenquelle ab und verwendet das Power Query-Modul, um die gewünschte Ausgabe zu erzielen, indem die erforderlichen Transformationen auf Power Query-Modulebene verarbeitet werden.
Hinweis
Der Query-Folding-Mechanismus ist in erster Linie in Connectors für strukturierte Datenquellen verfügbar. Dazu zählen beispielsweise Microsoft SQL Server und OData-Feed. In der Optimierungsphase kann das Modul manchmal Schritte in der Abfrage neu anordnen.
Die Verwendung einer Datenquelle, die mehr Verarbeitungsressourcen enthält und Abfragefaltungsfunktionen bietet, kann die Ladezeiten ihrer Abfrage beschleunigen, da die Verarbeitung an der Datenquelle und nicht am Power Query-Modul erfolgt.
Verwandte Inhalte
Ausführliche Beispiele für die drei möglichen Ergebnisse des Abfragefaltungsmechanismus finden Sie in den Abfragefaltungsbeispielen.
Informationen zu Abfragefaltungsindikatoren im Bereich "Angewendete Schritte" finden Sie unter "Abfragefaltungsindikatoren".