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.
Zusammenfassung
| Artikel | Description |
|---|---|
| Freigabezustand | Allgemeine Verfügbarkeit |
| Products | Excel Power BI (Semantikmodelle) Power BI (Datenflüsse) Fabric (Dataflow Gen2) Power Apps (Datenflüsse) Dynamics 365 Customer Insights |
| Unterstützte Authentifizierungstypen | Organisationskonto |
| Funktionsreferenzdokumentation | — |
Hinweis
Einige Funktionen sind möglicherweise in einem Produkt vorhanden, aber nicht in anderen, aufgrund von Bereitstellungszeitplänen und hostspezifischen Fähigkeiten.
Voraussetzungen
Ein Azure-Abonnement. Navigieren Sie zu Kostenlose Azure-Testversion.
Ein Organisations-E-Mail-Konto, das Mitglied der Microsoft Entra-ID ist. In diesem Artikel wird dieses Konto verwendet, um eine Verbindung mit den Azure Data Explorer-Hilfeclusterbeispielen herzustellen.
Unterstützte Funktionen
- Importieren
- DirectQuery (Power BI-Semantikmodelle)
- Erweiterte Optionen
- Einschränken der Datensatznummer des Abfrageergebnisses
- Einschränken der Datengröße von Abfrageergebnissen in Bytes
- Deaktivieren der Resultsetabschneidung
- Zusätzliche Set-Anweisungen
Herstellen einer Verbindung mit Azure Data Explorer über Power Query Desktop
So stellen Sie über Power Query Desktop eine Verbindung mit Azure Data Explorer her:
Wählen Sie Azure Data Explorer (Kusto) in der Datenabruf-Oberfläche aus. Der Datenabholungsprozess in Power Query Desktop variiert zwischen den Apps. Weitere Informationen zur Power Query Desktop-Oberfläche zum Abrufen von Daten für Ihre App finden Sie unter Wo können Sie Datenabrufen.
Geben Sie im Azure-Daten-Explorer (Kusto) den Namen Ihres Azure Data Explorer-Clusters an. Verwenden Sie
https://help.kusto.windows.net, um in diesem Beispiel auf den Beispiel-Hilfecluster zuzugreifen. Bei anderen Clustern befindet sich die URL in der Form https:// <ClusterName>.<Region.kusto.windows.net>.Sie können auch eine Datenbank auswählen, die auf dem Cluster gehostet wird, mit dem Sie eine Verbindung herstellen, und eine der Tabellen in der Datenbank oder eine Abfrage wie
StormEvents | take 1000.Wenn Sie erweiterte Optionen verwenden möchten, wählen Sie die Option aus, und geben Sie die Daten ein, die mit dieser Option verwendet werden sollen. Weitere Informationen: Herstellen einer Verbindung mithilfe der erweiterten Optionen
Hinweis
Möglicherweise müssen Sie nach unten scrollen, um alle erweiterten Optionen und die Datenkonnektivitätsauswahl anzuzeigen.
Wählen Sie entweder den Import oder den DirectQuery Modus der Datenkonnektivität (nur Power BI Desktop). Weitere Informationen: Wann man den Import- oder Direct Query-Modus verwenden sollte
Wählen Sie OK aus, um fortzufahren.
Wenn Sie noch keine Verbindung zum Cluster haben, wählen Sie "Anmelden" aus. Melden Sie sich mit einem Organisationskonto an, und wählen Sie dann "Verbinden" aus.
Wählen Sie in Navigatordie gewünschten Datenbankinformationen aus, und wählen Sie dann entweder Laden aus, um die Daten zu laden, oder Daten transformieren, um die Daten im Power Query-Editor weiter zu transformieren. In diesem Beispiel wurde StormEvents in der Beispieldatenbank ausgewählt.
Herstellen einer Verbindung mit Azure Data Explorer über Power Query Online
So stellen Sie eine Verbindung mit Azure Data Explorer über Power Query Online her:
Wählen Sie die Azure Data Explorer (Kusto) -Option in der Benutzeroberfläche zum Abrufen von Daten aus. Verschiedene Apps bieten unterschiedliche Möglichkeiten, um die Datenerfassungsfunktion von Power Query Online zu nutzen. Weitere Informationen darüber, wie Sie die Datenerfassungsfunktion von Power Query Online aus Ihrer App erreichen, finden Sie unter Wo Sie Daten abrufen können.
Geben Sie in "Mit Datenquelle verbinden" den Namen Ihres Azure Data Explorer-Clusters an. Verwenden Sie
https://help.kusto.windows.net, um in diesem Beispiel auf den Beispiel-Hilfecluster zuzugreifen. Bei anderen Clustern befindet sich die URL in der Form https:// <ClusterName>.<Region.kusto.windows.net>.Sie können auch eine Datenbank auswählen, die auf dem Cluster gehostet wird, mit dem Sie eine Verbindung herstellen, und eine der Tabellen in der Datenbank oder eine Abfrage wie
StormEvents | take 1000.
Wenn Sie erweiterte Optionen verwenden möchten, wählen Sie die Option aus, und geben Sie die Daten ein, die mit dieser Option verwendet werden sollen. Weitere Informationen: Herstellen einer Verbindung mithilfe der erweiterten Optionen
Wählen Sie bei Bedarf das lokale Datengateway im Datengateway aus.
Wenn Sie noch keine Verbindung zum Cluster haben, wählen Sie "Anmelden" aus. Melden Sie sich mit einem Organisationskonto an.
Nachdem Sie sich erfolgreich angemeldet haben, wählen Sie "Weiter" aus.
Wählen Sie auf der Seite "Daten auswählen" die gewünschten Datenbankinformationen aus, und wählen Sie dann entweder "Daten transformieren" oder "Weiter" aus, um die Daten im Power Query-Editor zu transformieren. In diesem Beispiel wurde StormEvents in der Beispieldatenbank ausgewählt.
Verbinden mithilfe erweiterter Optionen
Sowohl Power Query Desktop als auch Power Query Online bieten bei Bedarf eine Reihe erweiterter Optionen, die Sie Ihrer Abfrage hinzufügen können.
In der folgenden Tabelle sind alle erweiterten Optionen aufgeführt, die Sie in Power Query Desktop und Power Query Online festlegen können.
| Erweiterte Option | Description |
|---|---|
| Einschränken der Datensatznummer des Abfrageergebnisses | Die maximale Anzahl von Datensätzen, die im Ergebnis zurückgegeben werden sollen. |
| Einschränken der Datengröße von Abfrageergebnissen in Bytes | Die maximale Datengröße in Bytes, die im Ergebnis zurückgegeben werden soll. |
| Deaktivieren der Resultsetabschneidung | Aktivieren oder deaktivieren Sie die Ergebniskürzung mithilfe der notruncation Anforderungsoption. |
| Zusätzliche Set-Anweisungen | Legt Abfrageoptionen für die Dauer der Abfrage fest. Abfrageoptionen steuern, wie eine Abfrage ausgeführt wird und Ergebnisse zurückgibt. Mehrere Set-Anweisungen können durch Semikolons getrennt werden. |
Informationen zu zusätzlichen erweiterten Optionen, die in der Power Query-Benutzeroberfläche nicht verfügbar sind, finden Sie unter Konfigurieren von Azure Data Explorer-Connectoroptionen in einer M-Abfrage.
Wann sollte man den Import- oder Direct Query-Modus verwenden
Im Importmodus werden Daten in Power BI verschoben. Im DirectQuery-Modus werden Daten direkt vom Cluster abgefragt.
Verwenden Sie den Importmodus in folgenden Fällen:
- Ihr Dataset ist klein.
- Sie benötigen keine nahezu in Echtzeit verarbeiteten Daten.
- Ihre Daten sind bereits aggregiert, oder Sie führen Aggregation in Kusto durch.
Verwenden Sie den DirectQuery-Modus, wenn:
- Ihr Dataset ist sehr groß.
- Sie benötigen nahezu Echtzeitdaten.
Weitere Informationen zur Verwendung von DirectQuery finden Sie unter "Informationen zur Verwendung von DirectQuery in Power BI".
Tipps für die Verwendung des Azure Data Explorer-Connectors zum Abfragen von Daten
Die folgenden Abschnitte enthalten Tipps und Tricks für die Verwendung der Kusto-Abfragesprache mit Power Query.
Komplexe Abfragen in Power BI
Komplexe Abfragen werden in Kusto einfacher ausgedrückt als in Power Query. Sie sollten als Kusto-Funktionen implementiert und in Power BI aufgerufen werden. Diese Methode ist erforderlich, wenn Sie DirectQuery mit let Anweisungen in Ihrer Kusto-Abfrage verwenden. Da Power BI zwei Abfragen verknüpft und let Anweisungen nicht mit dem join Operator verwendet werden können, können Syntaxfehler auftreten. Speichern Sie daher jeden Teil der Verknüpfung als Kusto-Funktion, und ermöglichen Sie Power BI, diese beiden Funktionen miteinander zu verbinden.
Simulieren eines relativen Datum-Zeit-Operators
Power Query enthält keinen relativen Datums-/Uhrzeitoperator wie ago()z. B. .
Verwenden Sie zum Simulieren ago()eine Kombination aus DateTime.FixedLocalNow und #duration Power Query M-Funktionen.
Anstelle dieser Abfrage wird der ago() Operator verwendet:
StormEvents | where StartTime > (now()-5d)
StormEvents | where StartTime > ago(5d)
Verwenden Sie die folgende entsprechende Abfrage:
let
Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", []),
#"Filtered Rows" = Table.SelectRows(Source, each [StartTime] > (DateTime.FixedLocalNow()-#duration(5,0,0,0)))
in
#"Filtered Rows"
Konfigurieren von Azure Data Explorer-Connectoroptionen in einer M-Abfrage
Sie können die Optionen des Azure Data Explorer-Connectors aus dem erweiterten Power Query-Editor in der M-Abfragesprache konfigurieren. Mithilfe dieser Optionen können Sie die generierte Abfrage steuern, die an Ihren Azure Data Explorer-Cluster gesendet wird.
let
Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [<options>])
in
Source
Sie können eine der folgenden Optionen in Ihrer M-Abfrage verwenden:
| Option | Beispiel | Description |
|---|---|---|
| MaxRows | [MaxRows=300000] |
Fügt der Abfrage die truncationmaxrecords Set-Anweisung hinzu. Überschreibt die standardmäßige maximale Anzahl von Datensätzen, die eine Abfrage an den Aufrufer zurückgeben kann (Abschneiden). |
| MaxSize | [MaxSize=4194304] |
Fügt der Abfrage die truncationmaxsize Set-Anweisung hinzu. Überschreibt die standardmäßige maximale Datengröße, die eine Abfrage an den Aufrufer zurückgeben darf (Abschneiden). |
| NoTruncate | [NoTruncate=true] |
Fügt der Abfrage die notruncation Set-Anweisung hinzu. Aktiviert das Unterdrücken des Abschneidens der Abfrageergebnisse, die an den Aufrufer zurückgegeben werden. |
| AdditionalSetStatements | [AdditionalSetStatements="set query_datascope=hotcache"] |
Fügt ihrer Abfrage die bereitgestellten Satzanweisungen hinzu. Diese Anweisungen werden verwendet, um Abfrageoptionen für die Dauer der Abfrage festzulegen. Abfrageoptionen steuern, wie eine Abfrage ausgeführt wird und Ergebnisse zurückgibt. |
| Groß-/Kleinschreibung wird nicht beachtet | [CaseInsensitive=true] |
Veranlasst den Connector, Abfragen zu generieren, die nicht zwischen Groß- und Kleinschreibung unterscheiden. Abfragen verwenden den =~-Operator anstelle des ==-Operators beim Vergleichen von Werten. |
| ForceUseContains | [ForceUseContains=true] |
Der Connector generiert Abfragen, die beim Arbeiten mit Textfeldern contains anstelle des Standards has verwenden. Während has viel leistungsfähiger ist, verarbeitet er keine Teilzeichenfolgen. Weitere Informationen über die Unterschiede zwischen den beiden Operatoren finden Sie unter Zeichenfolgenoperatoren. |
| Zeitlimit | [Timeout=#duration(0,10,0,0)] |
Konfiguriert sowohl das Client- als auch das Servertimeout der Abfrage auf die angegebene Dauer. |
| ClientRequestIdPrefix | [ClientRequestIdPrefix="MyReport"] |
Konfiguriert ein ClientRequestId-Präfix für alle vom Connector gesendeten Abfragen. Auf diese Weise können die Abfragen im Cluster identifizierbar sein, da sie aus einem bestimmten Bericht und/oder einer Datenquelle stammen. |
Hinweis
Sie können mehrere Optionen kombinieren, um das erforderliche Verhalten zu erreichen: [NoTruncate=true, CaseInsensitive=true]
Erreichen von Kusto-Abfragegrenzwerten
Kusto-Abfragen geben standardmäßig bis zu 500.000 Zeilen oder 64 MB zurück, wie in Abfragegrenzwerten beschrieben. Sie können diese Standardwerte überschreiben, indem Sie erweiterte Optionen im Verbindungsfenster des Azure-Daten-Explorers (Kusto) verwenden:
Mit diesen Optionen geben Sie Set-Anweisungen in Ihre Abfrage ein, um die Standardabfragegrenzwerte zu ändern.
-
Begrenze die Anzahl der Abfrageergebnisdatensätze generiert ein
set truncationmaxrecords -
Begrenzen Sie die Datengröße von Abfrageergebnissen in Bytes
set truncationmaxsize -
Deaktivieren Sie das Abschneiden von Resultsets erzeugt ein
set notruncation
Groß- und Kleinschreibung
Standardmäßig generiert der Connector Abfragen, die den Operator == zur Beachtung der Groß-/Kleinschreibung beim Vergleichen von Zeichenfolgenwerten verwenden. Wenn die Daten unempfindlich gegenüber Groß-/Kleinschreibung sind, ist dies nicht das gewünschte Verhalten. Verwenden Sie die CaseInsensitive Connectoroption, um die generierte Abfrage zu ändern:
let
Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [CaseInsensitive=true]),
#"Filtered Rows" = Table.SelectRows(Source, each [State] == "aLaBama")
in
#"Filtered Rows"
Verwenden von Abfrageparametern
Sie können Abfrageparameter verwenden, um Ihre Abfrage dynamisch zu ändern.
Verwenden eines Abfrageparameters in den Abfrageschritten
Sie können einen Abfrageparameter in jedem Abfrageschritt verwenden, der ihn unterstützt. Filtern Sie z. B. die Ergebnisse basierend auf dem Wert eines Parameters. Wählen Sie in diesem Beispiel das Dropdownmenü auf der rechten Seite der State Spalte im Power Query-Editor aus, wählen Sie Textfilter>Ist gleich aus, und wählen Sie dann ALABAMA unter Zeilen beibehalten, bei denen 'Status'.
Bereitstellen von Parametern für eine Azure Data Explorer-Funktion
Kusto-Funktionen sind eine hervorragende Möglichkeit, komplexe Kusto Query Language (KQL)-Abfragen zu verwalten. Es wird empfohlen, Funktionen anstelle des Einbettens von KQL in Power Query zu verwenden. Der Hauptvorteil der Verwendung von Funktionen besteht darin, dass die Logik einmal in einer Umgebung verwaltet wird, die einfach zu erstellen und zu testen ist.
Funktionen können auch Parameter empfangen und so dem Power BI-Benutzer viel Flexibilität verleihen. Power BI hat viele Möglichkeiten, die Daten zu segmentieren. Aber alle Filter und Datenschnitte werden nach dem ursprünglichen KQL hinzugefügt, und in vielen Fällen sollten Sie die Filterung in einem frühen Stadium der Abfrage verwenden. Die Verwendung von Funktionen und dynamischen Parametern ist eine sehr effektive Möglichkeit, die endgültige Abfrage anzupassen.
Erstellen einer Funktion
Sie können die folgende Funktion in jedem Azure Data Explorer-Cluster erstellen, auf den Sie Zugriff haben, einschließlich eines kostenlosen Clusters. Die Funktion gibt die Tabelle SalesTable aus dem Hilfecluster zurück, gefiltert nach Verkaufstransaktionen, die größer oder kleiner als eine vom Berichtsbenutzer bereitgestellte Zahl sind.
.create-or-alter function LargeOrSmallSales(Cutoff:long,Op:string=">")
{
cluster("help").database("ContosoSales").SalesTable
| where (Op==">" and SalesAmount >= Cutoff) or (Op=="<" and SalesAmount <= Cutoff)
}
Nachdem Sie die Funktion erstellt haben, können Sie sie testen.
LargeOrSmallSales(2000,">")
| summarize Sales=tolong(sum(SalesAmount)) by Country
Sie können sie auch mit folgendem Test testen:
LargeOrSmallSales(20,"<")
| summarize Sales=tolong(sum(SalesAmount)) by Country
Verwenden der Funktion in Power BI
Stellen Sie eine Verbindung mit dem Cluster her, in dem Sie die Funktion erstellt haben.
Wählen Sie im Power Query-Navigator die Funktion aus der Liste der Objekte aus. Der Verbinder analysiert die Parameter und stellt sie über den Daten auf der rechten Seite des Navigators dar.
Fügen Sie den Parametern Werte hinzu, und wählen Sie dann Übernehmen aus.
Wählen Sie nach dem Anzeigen der Vorschau die Option "Daten transformieren" aus.
Erstellen Sie im Power Query-Editor einmal zwei Parameter, einen für den Cutoff-Wert und einen für den Operator.
Wechseln Sie zurück zur
LargeOrSmallSalesAbfrage, und ersetzen Sie die Werte durch die Abfrageparameter in der Bearbeitungsleiste.
Erstellen Sie im Editor zwei statische Tabellen (Daten eingeben), um Optionen für die beiden Parameter bereitzustellen. Für den Cutoff können Sie eine Tabelle mit Werten wie 10, 50, 100, 200, 500, 1000, 2000 erstellen. Für die
Op, eine Tabelle mit zwei Textwerten<und>.Die beiden Spalten in den Tabellen müssen mithilfe der Parameterauswahl "An Parameter binden" an die Abfrageparameter gebunden werden.
Der endgültige Bericht enthält Datenschnitte für die beiden statischen Tabellen und alle visuellen Elemente aus der Zusammenfassung der Umsätze.
Die Basistabelle wird zuerst gefiltert und dann aggregiert.
Verwenden eines Abfrageparameters in den Verbindungsdetails
Verwenden Sie einen Abfrageparameter, um Informationen in der Abfrage zu filtern und die Abfrageleistung zu optimieren.
Im erweiterten Editor:
Suchen Sie den folgenden Abschnitt der Abfrage:
Source = AzureDataExplorer.Contents("<Cluster>", "<Database>", "<Query>", [])
Beispiel:
Source = AzureDataExplorer.Contents("Help", "Samples", "StormEvents | where State == 'ALABAMA' | take 100", [])Fügen Sie einen Abfrageparameter in die KQL-Abfrage (Kusto Query Language) ein.
Wenn Sie eine KQL-Abfrage direkt in das Verbindungsdialogfeld einfügen, ist die Abfrage Teil des Quellschritts in Power Query. Sie können Parameter als Teil der Abfrage mithilfe des erweiterten Editors oder beim Bearbeiten der Quellausweisung in der Bearbeitungsleiste einbetten. Eine Beispielabfrage könnte sein
StormEvents | where State == ' " & State & " ' | take 100.Stateist ein Parameter und während der Laufzeit lautet die Abfrage wie folgt:StormEvents | where State == 'ALABAMA' | take 100Wenn Ihre Abfrage Anführungszeichen enthält, codieren Sie sie richtig. Beispielsweise die folgende Abfrage in KQL:
"StormEvents | where State == "ALABAMA" | take 100"wird im erweiterten Editor wie folgt mit zwei Anführungszeichen angezeigt:
"StormEvents | where State == ""ALABAMA"" | take 100"Wenn Sie einen Parameter, wie
State, verwenden, sollte er durch die folgende Abfrage ersetzt werden, die drei Anführungszeichen umfasst:"StormEvents | where State == """ & State & """ | take 100"
Verwenden von Value.NativeQuery für Azure Data Explorer-Features
Um ein Azure Data Explorer-Feature zu verwenden, das in Power Query nicht unterstützt wird, verwenden Sie die Value.NativeQuery-Methode in Power Query M. Diese Methode fügt ein Kusto Query Language-Fragment in die generierte Abfrage ein und kann auch verwendet werden, um Ihnen mehr Kontrolle über die ausgeführte Abfrage zu geben.
Das folgende Beispiel zeigt, wie die percentiles Funktion im Azure-Daten-Explorer verwendet wird:
let
StormEvents = AzureDataExplorer.Contents(DefaultCluster, DefaultDatabase){[Name = DefaultTable]}[Data],
Percentiles = Value.NativeQuery(StormEvents, "| summarize percentiles(DamageProperty, 50, 90, 95) by State")
in
Percentiles
Verwenden Sie keinen Power BI-Datenaktualisierungszeitplaner, um Steuerungsbefehle an Kusto ausstellen
Power BI enthält einen Datenaktualisierungszeitplaner, der regelmäßig Abfragen für eine Datenquelle ausstellen kann. Dieser Mechanismus sollte nicht zum Planen von Steuerungsbefehlen für Kusto verwendet werden, da Power BI davon ausgeht, dass Abfragen nur lesend sind.