Freigeben über


Verwenden dynamischer M-Abfrageparameter mit Azure Data Explorer für Power BI

Azure-Daten-Explorer ist ein schneller und hochgradig skalierbarer Dienst zur Untersuchung von Daten (Protokoll- und Telemetriedaten). Power BI ist eine Business Analytics-Lösung, mit der Sie Ihre Daten visualisieren und die Ergebnisse unternehmensweit teilen können. Mit dynamischen M-Parametern können Sie Power BI-Berichte erstellen, mit denen Betrachter Filter oder Datenschnitte zum Festlegen von Werten für KQL-Abfrageparameter verwenden können.

In diesem Artikel beginnen Sie mit einem neuen Power BI-Projekt und verwenden die Beispieldaten, um einen Bericht zu erstellen, der einen Datenschnitt zum Filtern von Daten in einer dynamischen M-Abfrage verwendet, die mit einer KQL-Funktion verknüpft ist.

Voraussetzungen

Sie benötigen Folgendes, um diesen Artikel durchzuarbeiten:

Hinzufügen einer direkten Abfrageverbindung zur KQL-Funktion

Richten Sie zunächst einen Connector für Power BI ein.

  1. Wählen Sie in Power BI Desktop auf der Registerkarte Start die Option Daten abrufen und anschließend Mehr aus.

    Screenshot des Menüs „Daten abrufen“ mit der Option „Weitere abrufen“.

  2. Suchen Sie nach Azure Data Explorer, wählen Sie Azure Data Explorer und dann Verbinden aus.

    Screenshot des Suchbildschirms, der die Auswahl des Connectors zeigt.

  3. Füllen Sie das Formular im Connectorbildschirm mit den folgenden Informationen aus.

    Screenshot des Verbindungsbildschirms mit den Cluster-, Datenbank- und Tabellenoptionen.

    Einstellung Wert Feldbeschreibung
    Cluster https://help.kusto.windows.net Die URL für den Hilfecluster. Für andere Cluster hat die URL das Format https://<Clustername>.<Region>.kusto.windows.net.
    Datenbank Nicht ausfüllen Eine Datenbank, die in dem Cluster gehostet wird, mit dem Sie eine Verbindung herstellen. Wird in einem späteren Schritt ausgewählt.
    Tabellenname Nicht ausfüllen Eine der Tabellen in der Datenbank oder eine Abfrage wie StormEvents | take 1000 Wird in einem späteren Schritt ausgewählt.
    Erweiterte Optionen Nicht ausfüllen Optionen für Ihre Abfragen (etwa die Größe des Resultsets).
    Datenkonnektivitätsmodus DirectQuery Bestimmt, ob Power BI die Daten importiert oder direkt eine Verbindung für dynamische M-Abfragen herstellt.

    Hinweis

    Im Import-Modus werden Daten nach Power BI verschoben. Im DirectQuery-Modus werden Daten direkt aus Ihrem Cluster abgefragt.

    Verwenden Sie den Import-Modus in folgenden Fällen:

    • Ihr Dataset ist klein.
    • Sie benötigen keine Fast-Echtzeitdaten.
    • Ihre Daten sind bereits aggregiert, oder Sie führen die Aggregation in Kusto aus.

    Verwenden Sie den DirectQuery-Modus in folgenden Fällen:

    • Ihr Dataset ist sehr groß.
    • Sie benötigen Fast-Echtzeitdaten.

    Erweiterte Optionen

    Einstellung Beispielwert Feldbeschreibung
    Datensatzanzahl für Abfrageergebnisse einschränken 300000 Maximale Anzahl der im Ergebnis zurückzugebender Datensätze
    Datengröße für Abfrageergebnisse einschränken 4194304 Maximale Datengröße in Bytes, die im Ergebnis zurückgegeben werden soll
    Abschneiden von Resultsets deaktivieren true Aktivieren/Deaktivieren der Ergebniskürzung mithilfe der Anforderungsoption „noTruncation“
    Zusätzliche SET-Anweisungen set query_datascope=hotcache Legt Anforderungseigenschaften für die Dauer der Abfrage fest. Anforderungseigenschaften steuern, wie eine Abfrage ausgeführt wird und Ergebnisse zurückgibt.
  4. Falls Sie noch keine Verbindung mit dem Hilfecluster hergestellt haben, melden Sie sich an. Melden Sie sich mit einem Organisationskonto an, und wählen Sie dann Verbinden aus.

    Screenshot des Authentifizierungsbildschirms mit der Anmeldeoption.

  5. Gehen Sie auf dem Bildschirm Navigator wie folgt vor:

    1. Erweitern Sie die Datenbank Samples (Beispiele).
    2. Wählen Sie die Funktion EventsByStates aus.
    3. Geben Sie für EventTypeParam den Wert High Wind ein, und wählen Sie dann Anwenden aus, um eine Vorschau der Daten anzuzeigen.
    4. Wählen Sie Daten transformieren aus.

    Screenshot des Navigationsbildschirms, der die Auswahl einer Funktion zeigt.

    Die Funktion wird als dynamische M-Abfrage im Power Query-Editor geöffnet, wo wir mit der Erstellung eines Parameters zur Verwendung mit der dynamischen M-Abfrage fortfahren.

    Hinweis

    Die EventsByStates-Funktion ist eine schreibgeschützte Beispielfunktion, mit der Sie die Funktionalität der dynamischen M-Abfrageparameter testen können. Sie definiert die endgültige Version, die die Auswahl mehrerer und aller Werte für den Parameter unterstützt. Wenn Sie die Einzelauswahlfunktion in Ihrem eigenen Cluster testen und die Funktionalität progressiv testen möchten, können Sie mit der folgenden Einzelauswahldefinition der Funktion beginnen.

    .create-or-alter function EventsByStates (EventTypeParam:string)
    {
      StormEvents
      | where EventType == EventTypeParam
      | summarize Events=count() by EventType, State
    }
    
  6. Gehen Sie im Power Query-Editor wie folgt vor:

    1. Wählen Sie Parameter verwalten>Neuer Parameter aus.

    2. Tragen Sie die Details mit den folgenden Informationen ein, und wählen Sie dann OK aus.

      Einstellung Vorgeschlagener Wert Beschreibung
      Name Type_Param Der Name des Parameters. Es wird empfohlen, ein Suffix wie _Param hinzuzufügen, mit dem Sie ihn leicht erkennen und von anderen Parametern unterscheiden können, die Sie möglicherweise erstellen.
      type Text Der Typ des -Parameters. Der Typ des Parameters muss mit dem in der KQL-Funktion deklarierten Typ übereinstimmen. „Text“ in Power BI entspricht „Zeichenfolge“ in KQL.
      Aktueller Wert Starker Wind Der Wert des Parameters. Sie müssen einen Standardwert für dieses Feld angeben.

    Screenshot des Bildschirms Parameter verwalten, der die Erstellung eines neuen Parameters zeigt.

  7. Zurück im Navigationsbildschirm ersetzen Sie den Parameterwert der M-Funktion durch den neuen Parameter.

    Screenshot des Navigationsbildschirms, der die Ersetzung des M-Funktionsparameters zeigt.

  8. Optional können Sie die Schritte wiederholen, um weitere Parameter zu erstellen und sie in der dynamischen M-Abfrage zu ersetzen.

  9. Erstellen Sie eine Tabelle mit Werten für den Berichtsdatenschnitt.

    Hinweis

    In der Tabelle werden die Ereignistypen aufgeführt, nach denen gefiltert werden soll. Sie können entweder die Tabelle importieren oder eine neue Tabelle erstellen und die Daten manuell eingeben.

    1. Wählen Sie auf der Registerkarte Start die Option Zuletzt verwendete Quellen aus, und wählen Sie dann den Hilfecluster aus.

      Screenshot des Startbildschirms, der die Auswahl des Hilfe-Clusters zeigt.

    2. Erweitern Sie auf dem Bildschirm Navigator die Datenbank Samples (Beispiele), und wählen Sie die Tabelle StormEvents und dann OK aus.

      Screenshot des Navigationsbildschirms, der die Auswahl eines Tisches zeigt.

    3. Wählen Sie im Dialogfeld Verbindungseinstellungen die Option Importieren aus und dann OK.

      Screenshot des Dialogfelds Verbindungseinstellungen, das die Auswahl der Importoption zeigt.

    4. Klicken Sie mit der rechten Maustaste auf die Spalte EventType, und wählen Sie dann Andere Spalten entfernen aus.

    5. Klicken Sie erneut mit der rechten Maustaste auf die Spalte EventType, und wählen Sie dann Duplikate entfernen aus.

    6. Fügen Sie optional eine weitere Spalte hinzu, um die Sortierreihenfolge für die Datenschnittwerte zu definieren.

    7. Benennen Sie die Tabelle in SlicerValues um.

      Screenshot der Tabelle mit der Slicer-Wertetabelle.

  10. Klicken Sie auf der Registerkarte Start auf Schließen und übernehmen.

    Hinweis

    Es wird eine Dialogfeldwarnung zu Sicherheitsrisiken angezeigt. Klicken Sie zum Fortsetzen des Vorgangs auf OK . Das Dialogfeld wird angezeigt, weil Power BI eine zweite Datenquelle hinzufügt. Weitere Informationen finden Sie unter Power BI Desktop – Datenschutzebenen. Die Art und Weise, wie die Datenquellen in diesem Beispiel verwendet werden, ist jedoch völlig sicher.

  11. Binden Sie die EventType-Spalte in der Tabelle SlicerValues an den Parameter.

    1. Wählen Sie links die Ansicht Modell aus.
    2. Wählen Sie in der Tabelle SlicerValues die Spalte EventType aus.
    3. Erweitern Sie im Bereich Eigenschaften die Option Erweitert.
    4. Wählen Sie unter An Parameter binden die Option Type_Param aus. Hierdurch wird die Spalte EventType an den Parameter gebunden.

    Hinweis

    Es wird eine Dialogfeldwarnung zu Sicherheitsrisiken angezeigt. Klicken Sie auf Weiter, um fortzufahren. Das Dialogfeld wird angezeigt, weil Power BI Daten von einer Quelle an eine andere sendet. Weitere Informationen finden Sie unter Power BI Desktop – Datenschutzebenen. Die Art und Weise, wie der Parameter in diesem Beispiel verwendet wird, ist jedoch völlig sicher.

    Screenshot der Modellansicht, der die Bindung der EventType-Spalte an den Parameter zeigt.

Visualisieren von Daten in einem Bericht

Da Sie nun über Daten in Power BI Desktop verfügen, können Sie Berichte auf der Grundlage dieser Daten erstellen. Sie erstellen einen einfachen Bericht mit einer Tabelle mit der Zusammenfassung der Ereignisse nach Zustand sowie einem Datenschnitt zum Filtern der Tabelle nach Ereignistyp.

  1. Wählen Sie auf der linken Seite die Ansicht Bericht aus.

  2. Fügen Sie die Tabelle zum Bericht hinzu.

    1. Wählen Sie im Bereich Visualisierung die Option Tabelle aus. Dem Berichtscanvas wird eine leere Tabelle hinzugefügt.
    2. Erweitern Sie im Bereich Felder die Option EventsByStates, und wählen Sie Zustand und Ereignisse aus. Sie verfügen nun über eine Tabelle mit der Zusammenfassung der Ereignisse nach Zustand.
  3. Fügen Sie den Datenschnitt zum Bericht hinzu.

    1. Wählen Sie im Bereich Visualisierung die Option Datenschnitt aus. Dem Berichtscanvas wird ein leerer Datenschnitt hinzugefügt.
    2. Erweitern Sie im Bereich Felder die Option SlicerValues, und wählen Sie EventType aus. Sie verfügen nun über einen Datenschnitt, der die Ereignistypen anzeigt.

    Screenshot der Berichtsansicht mit der Tabelle und dem zugehörigen Datenschnitt.

    Der Bericht kann jetzt angezeigt werden. Beachten Sie, dass beim Auswählen von Ereignistypwerten im Datenschnitt die auf der M-Abfrage basierende Tabelle nach dem Ereignistyp gefiltert wird, der an den Parameter der M-Abfrage gebunden ist.

  4. Speichern Sie den Bericht.

Akzeptieren mehrerer Parameterwerte

Wenn Sie mehrere Parameterwerte im Datenschnitt filtern möchten, können Sie dies erreichen, indem Sie die Eigenschaften der Spalte EventType anpassen und die KQL-Funktion wie folgt ändern:

  1. Passen Sie die Eigenschaften der Spalte EventType in der Tabelle SlicerValues an.

    1. Wählen Sie links die Ansicht Modell aus.
    2. Wählen Sie in der Tabelle SlicerValues die Spalte EventType aus.
    3. Erweitern Sie im Bereich Eigenschaften die Option Erweitert, und aktivieren Sie die Einstellung Mehrfachauswahl.

    Screenshot der Modellansicht mit der Mehrfachauswahleinstellung.

  2. Ändern Sie die KQL-Funktion, indem Sie den Parametertyp auf „dynamisch“ festlegen und die Bedingung where ändern, um die Liste der Parameterwerte zu überprüfen.

    .create-or-alter function EventsByStates (EventTypeParam:dynamic)
    {
      StormEvents
      | where EventType in (EventTypeParam)
      | summarize Events=count() by EventType, State
    }
    

Sie können nun zum Bericht zurückkehren und mehrere Ereignistypen im Datenschnitt auswählen.

Akzeptieren aller Parameterwerte

Wenn Sie alle Parameterwerte im Datenschnitt filtern möchten, können Sie dies erreichen, indem Sie die Eigenschaften der Spalte EventType anpassen, die KQL-Funktion ändern und das Datenschnitt-Steuerelement wie folgt aktualisieren:

  1. Passen Sie die Eigenschaften der Spalte EventType in der Tabelle SlicerValues an.

    1. Wählen Sie links die Ansicht Modell aus.
    2. Wählen Sie in der Tabelle SlicerValues die Spalte EventType aus.
    3. Erweitern Sie im Bereich Eigenschaften die Option Erweitert, und aktivieren Sie die Einstellung Alle auswählen.
    4. Ändern Sie optional die Einstellung Alle Werte auswählen. In diesem Beispiel verwenden Sie den Standardwert SelectAll.

    Screenshot der Modellansicht mit der Einstellung „Alle auswählen“.

  2. Aktualisieren Sie das Datenschnitt-Steuerelement, damit die Option Alle auswählen angezeigt wird.

    1. Wählen Sie auf der linken Seite die Ansicht Bericht aus.
    2. Wählen Sie den Datenschnitt „EventType“ aus.
    3. Wählen Sie im Bereich Visualisierungen die Option Format aus, erweitern Sie Auswahlsteuerelemente, und aktivieren Sie dann die Einstellung Option „Alle auswählen“ anzeigen. Der Ereignistyp-Datenschnitt zeigt oben in der Liste die Option „Alle auswählen“ an.
  3. Ändern Sie die KQL-Funktion, indem Sie den Parametertyp auf „dynamisch“ festlegen und die Bedingung where ändern, um auf den Wert SelectAll oder die Liste der Parameterwerte zu überprüfen.

    .create-or-alter function EventsByStates (EventTypeParam:dynamic)
    {
      StormEvents
      | where ("__SelectAll__" in (EventTypeParam)) or (EventType in (EventTypeParam))
      | summarize Events=count() by EventType, State
    }
    

Sie können nun zum Bericht zurückkehren und alle Ereignistypen im Datenschnitt auswählen.

Screenshot der Berichtsansicht, der den Datenschnitt mit der Option „Alle auswählen“ zeigt.

Überlegungen und Einschränkungen

Bei der Verwendung von dynamischen M-Abfrageparametern müssen einige Überlegungen und Einschränkungen berücksichtigt werden:

  • Ein einzelner Parameter kann nicht an mehrere Felder gebunden werden oder umgekehrt.
  • Die folgenden Parametertypen werden nicht unterstützt:
    • Any
    • Duration
    • True/False
    • Binär
  • Die folgenden Filter werden nicht unterstützt:
    • Slicer oder Filter für relative Zeitbereiche
    • Relatives Datum
    • Hierarchieslicer
    • Mehrfachfeld-Includefilter
    • Filter ausschließen/ Keine Filter
    • Übergreifende Hervorhebung
    • Drilldown-Filter
    • Crossdrillfilter
    • Top N-Filter

Bereinigen von Ressourcen

Wenn Sie den Bericht, den Sie für diesen Artikel erstellt haben, nicht mehr benötigen, löschen Sie die Power BI Desktop-Datei (PBIX-Datei).