Dela via


Använda dynamiska M-frågeparametrar med Azure Data Explorer för Power BI

Azure Data Explorer är en snabb och mycket skalbar datautforskningstjänst för logg- och telemetridata. Power BI är en lösning för företagsanalys som gör att du kan visualisera dina data och dela resultaten i hela organisationen. Med dynamiska M-parametrar kan du skapa Power BI-rapporter som ger användarna möjlighet att använda filter eller utsnitt för att ange värden för KQL-frågeparametrar.

I den här artikeln börjar du med ett nytt Power BI-projekt och använder exempeldata för att skapa en rapport som använder ett utsnitt för att filtrera data i en dynamisk M-fråga som är länkad till en KQL-funktion.

Förutsättningar

Du behöver följande för att slutföra den här artikeln:

Lägga till direkt frågeanslutning till KQL-funktionen

Konfigurera först en anslutningsapp för Power BI.

  1. I Power BI Desktop går du till fliken Start och väljer Hämta data och sedan Mer.

    Skärmbild av menyn Hämta data som visar alternativet Hämta fler.

  2. Sök efter Azure Data Explorer, välj Azure Data Explorer och sedan Anslut.

    Skärmbild av sökskärmen som visar valet av anslutningsapp.

  3. Fyll i formuläret med följande information på anslutningsskärmen.

    Skärmbild av skärmen Anslut som visar alternativen för kluster, databas och tabell.

    Inställning Värde Fältbeskrivning
    Kluster https://help.kusto.windows.net URL för hjälpklustret. För andra kluster är URL:en i formatet https://< ClusterName>.<Region.kusto.windows.net>.
    Databas Lämna tomt En databas som finns på det kluster som du ansluter till. Vi väljer detta i ett senare steg.
    Tabellnamn Lämna tomt En av tabellerna i databasen eller en fråga som StormEvents | take 1000. Vi väljer detta i ett senare steg.
    Avancerade alternativ Lämna tomt Alternativ för dina frågor, till exempel storlek på resultatuppsättning.
    Dataanslutningsläge DirectQuery Avgör om Power BI importerar data eller ansluter direkt för dynamiska M-frågor.

    Anteckning

    I importläge flyttas data till Power BI. I DirectQuery-läge efterfrågas data direkt från klustret.

    Använd importläge när:

    • Datauppsättningen är liten.
    • Du behöver inte data i nära realtid.
    • Dina data är redan aggregerade eller så utför du aggregering i Kusto

    Använd DirectQuery-läge när:

    • Din datauppsättning är mycket stor.
    • Du behöver data i nästan realtid.

    Avancerade alternativ

    Inställningen Exempelvärde Fältbeskrivning
    Begränsa postnummer för frågeresultat 300000 Det maximala antalet poster som ska returneras i resultatet
    Begränsa datastorleken för frågeresultat 4194304 Den maximala datastorleken i byte som ska returneras i resultatet
    Inaktivera trunkering av resultatuppsättning true Aktivera/inaktivera resultattrunkering med hjälp av alternativet för notruncation-begäran
    Ytterligare set-instruktioner set query_datascope=hotcache Anger begärandeegenskaper för frågans varaktighet. Egenskaper för begäran styr hur en fråga körs och returnerar resultat.
  4. Om du inte redan har en anslutning till hjälpklustret loggar du in. Logga in med ett organisationskonto och välj sedan Anslut.

    Skärmbild av autentiseringsskärmen som visar inloggningsalternativet.

  5. Gör följande på skärmen Navigatör :

    1. Expandera exempeldatabasen .
    2. Välj funktionen EventsByStates .
    3. För EventTypeParam anger du High Wind och väljer sedan Använd för att förhandsgranska data.
    4. Välj Transformera data.

    Skärmbild av navigeringsskärmen som visar valet av en funktion.

    Funktionen öppnas som en dynamisk M-fråga i Power Query-redigeraren, där vi fortsätter med att skapa en parameter som ska användas med den dynamiska M-frågan.

    Anteckning

    Funktionen EventsByStates är en skrivskyddad exempelfunktion som du kan använda för att testa funktionerna i dynamiska M-frågeparametrar. Den definierar den slutliga versionen som stöder flera och väljer alla värden för parametern. Om du vill testa funktionen för enskilda val i ditt eget kluster och progressivt testa funktionen kan du börja med följande enkla urvalsdefinition för funktionen.

    .create-or-alter function EventsByStates (EventTypeParam:string)
    {
      StormEvents
      | where EventType == EventTypeParam
      | summarize Events=count() by EventType, State
    }
    
  6. Gör följande i Power Query-redigeraren:

    1. Välj Hantera parametrar>Ny parameter.

    2. Fyll i informationen med följande information och välj sedan OK.

      Inställning Föreslaget värde Beskrivning
      Name Type_Param Namnet på parametern . Vi rekommenderar att du lägger till ett suffix, till exempel _Param, som gör att du enkelt kan identifiera och skilja det från andra parametrar som du kan skapa.
      Typ Text Parametertypen. Parametertypen måste matcha den typ som deklareras i KQL-funktionen. Text i Power BI motsvarar strängen i KQL.
      Aktuellt värde Hög vind Värdet för parametern . Du måste ange ett standardvärde för det här fältet.

    Skärmbild av skärmen Hantera parametrar som visar skapandet av en ny parameter.

  7. navigeringsskärmen ersätter du M-funktionens parametervärde med den nya parametern.

    Skärmbild av navigeringsskärmen som visar ersättningen av M-funktionsparametern.

  8. Du kan också upprepa stegen för att skapa fler parametrar och ersätta dem i Dynamic M-frågan.

  9. Skapa en tabell med värden för rapport utsnittet.

    Anteckning

    Tabellen visar de händelsetyper som du vill filtrera efter. Du kan antingen importera tabellen eller skapa en ny tabell och ange data manuellt.

    1. På fliken Start väljer du Senaste källor och sedan hjälpklustret.

      Skärmbild av startskärmen som visar valet av hjälpklustret.

    2. På skärmen Navigatör expanderar du databasen Exempel , väljer tabellen StormEvents och väljer sedan OK.

      Skärmbild av navigeringsskärmen som visar valet av en tabell.

    3. I dialogrutan Anslutningsinställningar väljer du Importera och sedan OK.

      Skärmbild av dialogrutan Anslutningsinställningar som visar valet av importalternativ.

    4. Högerklicka på kolumnen EventType och välj sedan Ta bort andra kolumner.

    5. Högerklicka på kolumnen EventType igen och välj sedan Ta bort dubbletter.

    6. Du kan också lägga till en annan kolumn för att definiera sorteringsordningen för utsnittsvärdena.

    7. Byt namn på tabellen till UtsnittVärde.

      Skärmbild av tabellen som visar tabellen Utsnittsvärden.

  10. På fliken Start väljer du Stäng och tillämpa.

    Anteckning

    En dialogruta som varnar om säkerhetsrisker visas. Klicka på OK för att fortsätta. Orsaken till att dialogrutan visas är att Power BI lägger till en andra datakälla. Mer information finns i Power BI Desktop sekretessnivåer. Hur datakällorna används i det här exemplet är dock helt säkert.

  11. Bind kolumnen EventType i tabellen SlicerValues till parametern .

    1. Välj vyn Modell till vänster.
    2. I tabellen SlicerValues väljer du kolumnen EventType .
    3. I fönstret Egenskaper expanderar du Avancerat.
    4. Under Bind till parameter väljer du Type_Param. Detta binder kolumnen EventType till parametern .

    Anteckning

    En dialogruta som varnar om säkerhetsrisker visas. Klicka på Fortsätt för att fortsätta. Orsaken till att dialogrutan visas är att Power BI skickar data från en källa till en annan. Mer information finns i Power BI Desktop sekretessnivåer. Hur parametern används i det här exemplet är dock helt säkert.

    Skärmbild av modellvyn som visar bindningen av kolumnen EventType till parametern .

Visualisera data i en rapport

Nu när du har data i Power BI Desktop kan du skapa rapporter som baseras på dessa data. Du skapar en enkel rapport med en tabell som visar sammanfattningen av händelser efter tillstånd och ett utsnitt för att filtrera tabellen efter händelsetyp.

  1. Välj rapportvyn till vänster.

  2. Lägg till tabellen i rapporten.

    1. I fönstret Visualisering väljer du Tabell. En tom tabell läggs till på rapportarbetsytan.
    2. I fönstret Fält expanderar du EventsByStates och väljer Tillstånd och händelser. Nu har du en tabell som visar sammanfattningen av händelser efter tillstånd.
  3. Lägg till utsnittet i rapporten.

    1. I fönstret Visualisering väljer du Utsnitt. Ett tomt utsnitt läggs till på rapportarbetsytan.
    2. I fönstret Fältexpanderar du UtsnittVärde och väljer EventType. Nu har du ett utsnitt som visar händelsetyperna.

    Skärmbild av rapportvyn som visar tabellen och det relaterade utsnittet.

    Rapporten är nu redo att visas. Observera att när du väljer värden för händelsetyp i utsnittet filtreras tabellen baserat på M-frågan efter den händelsetyp som är bunden till M-frågans parameter.

  4. Spara rapporten.

Acceptera flera parametervärden

Om du vill filtrera på flera parametervärden i utsnittet kan du åstadkomma detta genom att justera egenskaperna för kolumnen EventType och ändra KQL-funktionen enligt följande:

  1. Justera egenskaperna för kolumnen EventType i tabellen SlicerValues .

    1. Välj vyn Modell till vänster.
    2. I tabellen SlicerValues väljer du kolumnen EventType .
    3. I fönstret Egenskaper expanderar du Avancerat och aktiverar inställningen Flerval .

    Skärmbild av modellvyn som visar inställningen för flera val.

  2. Ändra KQL-funktionen, ange parametertypen till dynamisk och ändra villkoret where för att kontrollera listan över parametervärden.

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

Nu kan du gå tillbaka till rapporten och välja flera händelsetyper i utsnittet.

Acceptera alla parametervärden

Om du vill filtrera på alla parametervärden i utsnittet kan du åstadkomma detta genom att justera egenskaperna för kolumnen EventType , ändra KQL-funktionen och uppdatera utsnittskontrollen på följande sätt:

  1. Justera egenskaperna för kolumnen EventType i tabellen SlicerValues .

    1. Välj vyn Modell till vänster.
    2. I tabellen SlicerValues väljer du kolumnen EventType .
    3. I fönstret Egenskaper expanderar du Avancerat och aktiverar inställningen Välj alla .
    4. Du kan också ändra inställningen Välj alla värden . I det här exemplet använder du standardvärdet SelectAll.

    Skärmbild av modellvyn som visar inställningen Välj alla.

  2. Uppdatera utsnittskontrollen så att alternativet Välj alla visas.

    1. Välj rapportvyn till vänster.
    2. Välj utsnittet EventType.
    3. I fönstret Visualiseringar väljer du Format, expanderar Markeringskontroller och aktiverar alternativinställningen Visa "Markera alla" . Utsnittet händelsetyp visar alternativet Markera alla överst i listan.
  3. Ändra KQL-funktionen, ange parametertypen till dynamisk och ändra villkoret where för att söka efter värdet SelectAll eller listan med parametervärden.

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

Nu kan du gå tillbaka till rapporten och välja alla händelsetyper i utsnittet.

Skärmbild av rapportvyn som visar utsnittet med alternativet Markera alla.

Överväganden och begränsningar

Det finns några överväganden och begränsningar som du bör tänka på när du använder dynamiska M-frågeparametrar:

  • En enskild parameter kan inte bindas till flera fält eller tvärtom.
  • Följande parametertyper stöds inte:
    • Alla
    • Varaktighet
    • Sant/falskt
    • Binär
  • Följande filter stöds inte:
    • Relativt tidsutsnitt eller filter
    • Relativt datum
    • Hierarkiutsnitt
    • Filter som inkluderar flera fält
    • Exkludera filter/Not-filter
    • Korsmarkering
    • Filter för att öka detaljnivån
    • Filter för korsgranskning
    • Högsta N-filter

Rensa resurser

Om du inte längre behöver rapporten som du skapade för den här artikeln tar du bort filen Power BI Desktop (.pbix).