Share via


Azure Data Explorer (Kusto)

Resumé

Element Beskrivelse
Udgivelsestilstand Generel tilgængelighed
Produkter Excel
Power BI (semantiske modeller)
Power BI (dataflow)
Fabric (Dataflow Gen2)
Power Apps (dataflow)
Dynamics 365 Customer Insights
Understøttede godkendelsestyper Organisationskonto
Dokumentation til funktionsreference

Bemærk

Nogle funktioner kan være til stede i ét produkt, men ikke andre på grund af installationsplaner og værtsspecifikke egenskaber.

Forudsætninger

  • Et Azure-abonnement. Gå til Hent gratis prøveversion af Azure.

  • En organisationsmailkonto, der er medlem af Microsoft Entra ID. I denne artikel bruges denne konto til at oprette forbindelse til Hjælp-klyngeeksempler i Azure Data Explorer.

Understøttede egenskaber

  • Importér
  • DirectQuery (semantiske Power BI-modeller)
  • Avancerede indstillinger
    • Begræns postnummer for forespørgselsresultat
    • Begræns datastørrelsen for forespørgselsresultatet i byte
    • Deaktiver afkortning af resultatsæt
    • Yderligere sætsætninger

Forbind til Azure Data Explorer fra Power Query Desktop

Sådan opretter du forbindelse til Azure Data Explorer fra Power Query Desktop:

  1. Vælg Azure Data Explorer (Kusto) i hent dataoplevelsen. Oplevelsen med at hente data i Power Query Desktop varierer mellem apps. Du kan få flere oplysninger om, hvordan power-forespørgselsskrivebord henter data til din app, ved at gå til Hvor du kan hente data.

  2. I Azure Data Explorer (Kusto) skal du angive navnet på din Azure Data Explorer-klynge. I dette eksempel skal du bruge https://help.kusto.windows.net til at få adgang til Hjælp-eksempelklynge. For andre klynger er URL-adressen i formatet https://< ClusterName.<>Region.kusto.windows.net>.

    Du kan også vælge en database, der hostes på den klynge, du opretter forbindelse til, og en af tabellerne i databasen eller en forespørgsel som StormEvents | take 1000.

  3. Hvis du vil bruge indstillinger på forhånd, skal du vælge indstillingen og angive de data, der skal bruges sammen med denne indstilling. Flere oplysninger: Forbind ved hjælp af avancerede indstillinger

    Bemærk

    Du skal muligvis rulle ned for at få vist alle de avancerede indstillinger og valget af dataforbindelse.

  4. Vælg enten tilstanden Import eller DirectQuery-dataforbindelse (kun Power BI Desktop). Flere oplysninger: Hvornår skal import- eller Direct Query-tilstand bruges?

  5. Vælg OK for at fortsætte.

    Skærmbillede af dialogboksen Azure Data Explorer (Kusto), hvor URL-adressen til klyngen er angivet.

  6. Hvis du ikke allerede har forbindelse til klyngen, skal du vælge Log på. Log på med en organisationskonto, og vælg derefter Forbind.

    Skærmbillede af dialogboksen til logon til Azure Data Explorer, hvor organisationskontoen er klar til at blive logget på.

  7. I Navigator skal du vælge de ønskede databaseoplysninger og derefter enten vælge Indlæs for at indlæse dataene eller Transformer data for at fortsætte med at transformere dataene i Power Query-editoren. I dette eksempel blev StormEvents valgt i databasen Eksempler.

    Skærmbillede af Navigator, der åbner og indeholder dataene fra StormEvents i databasen Eksempler.

Forbind til Azure Data Explorer fra Power Query Online

Sådan opretter du forbindelse til Azure Data Explorer fra Power Query Online:

  1. Vælg indstillingen Azure Data Explorer (Kusto) i hent dataoplevelsen. Forskellige apps har forskellige måder at få data på i Power Query Online. Du kan få flere oplysninger om, hvordan du får dataoplevelsen fra din app i Power Query Online, ved at gå til Hvor du kan hente data.

    Skærmbillede af vinduet Hent data med Azure Data Explorer fremhævet.

  2. I Forbind til datakilden skal du angive navnet på din Azure Data Explorer-klynge. I dette eksempel skal du bruge https://help.kusto.windows.net til at få adgang til Hjælp-eksempelklynge. For andre klynger er URL-adressen i formatet https://< ClusterName.<>Region.kusto.windows.net>.

    Du kan også vælge en database, der hostes på den klynge, du opretter forbindelse til, og en af tabellerne i databasen eller en forespørgsel som StormEvents | take 1000.

    Skærmbillede af siden Vælg datakilde til Azure Data Explorer (Kusto), hvor URL-adressen for den angivne klynge er angivet.

  3. Hvis du vil bruge indstillinger på forhånd, skal du vælge indstillingen og angive de data, der skal bruges sammen med denne indstilling. Flere oplysninger: Forbind ved hjælp af avancerede indstillinger

  4. Hvis det er nødvendigt, skal du vælge datagatewayen i det lokale miljø i Datagateway.

  5. Hvis du ikke allerede har forbindelse til klyngen, skal du vælge Log på. Log på med en organisationskonto.

  6. Når du er logget på, skal du vælge Næste.

  7. På siden Vælg data skal du vælge de ønskede databaseoplysninger og derefter enten vælge Transformér data eller Næste for at fortsætte med at transformere dataene i Power Query-editoren. I dette eksempel blev StormEvents valgt i databasen Eksempler.

    Skærmbillede af siden Vælg data, der indeholder dataene fra StormEvents i databasen Eksempler.

Forbind ved hjælp af avancerede indstillinger

Både Power Query Desktop og Power Query Online indeholder et sæt avancerede indstillinger, som du kan føje til din forespørgsel, hvis det er nødvendigt.

I følgende tabel vises alle de avancerede indstillinger, du kan angive i Power Query Desktop og Power Query Online.

Avanceret indstilling Beskrivelse
Begræns postnummer for forespørgselsresultat Det maksimale antal poster, der skal returneres i resultatet.
Begræns datastørrelsen for forespørgselsresultatet i byte Den maksimale datastørrelse i byte, der skal returneres i resultatet.
Deaktiver afkortning af resultatsæt Aktivér eller deaktiver afkortning af resultat ved hjælp af anmodningsindstillingen notruncation .
Yderligere sætsætninger Angiver forespørgselsindstillinger for forespørgslens varighed. Forespørgselsindstillinger styrer, hvordan en forespørgsel udføres og returnerer resultater. Flere set-sætninger kan adskilles af semikolon.

Du kan finde oplysninger om yderligere avancerede indstillinger, der ikke er tilgængelige i brugergrænsefladen i Power Query, ved at gå til Konfiguration af connectorindstillinger for Azure Data Explorer i en M-forespørgsel.

Hvornår skal import- eller direct query-tilstand bruges?

I importtilstand flyttes data til Power BI. I DirectQuery-tilstand forespørges data direkte fra din klynge.

Brug importtilstand, når:

  • Dit datasæt er lille.
  • Du behøver ikke data i nærheden af realtid.
  • Dine data er allerede aggregeret, eller du udfører sammenlægning i Kusto.

Brug DirectQuery-tilstand, når:

  • Dit datasæt er meget stort.
  • Du har brug for data i næsten realtid.

Hvis du vil vide mere om brug af DirectQuery, skal du gå til Om at bruge DirectQuery i Power BI.

Tip til brug af Azure Data Explorer-connectoren til at forespørge om data

Følgende afsnit indeholder tip og tricks til brug af Kusto-forespørgselssprog med Power Query.

Komplekse forespørgsler i Power BI

Komplekse forespørgsler udtrykkes nemmere i Kusto end i Power Query. De skal implementeres som Kusto-funktioner og aktiveres i Power BI. Denne metode er påkrævet, når du bruger DirectQuery med let sætninger i din Kusto-forespørgsel. Da Power BI joinforbinder to forespørgsler og let sætninger ikke kan bruges sammen med operatoren join , kan der opstå syntaksfejl. Gem derfor hver del af joinforbindelsen som en Kusto-funktion, og giv Power BI mulighed for at joinforbinde disse to funktioner.

Sådan simulerer du en relativ dato/klokkeslæt-operator

Power Query indeholder ikke en relativ dato-/klokkeslætsoperator, f.eks ago(). . Hvis du vil simulere ago(), skal du bruge en kombination af DateTime.FixedLocalNow og #duration M-funktioner i Power Query.

I stedet for denne forespørgsel ved hjælp af operatoren ago() :

    StormEvents | where StartTime > (now()-5d)
    StormEvents | where StartTime > ago(5d)

Brug følgende tilsvarende forespørgsel:

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", []),
    #"Filtered Rows" = Table.SelectRows(Source, each [StartTime] > (DateTime.FixedLocalNow()-#duration(5,0,0,0)))
in
    #"Filtered Rows"

Konfiguration af connectorindstillinger for Azure Data Explorer i en M-forespørgsel

Du kan konfigurere indstillingerne for Azure Data Explorer-connectoren fra den avancerede editor i Power Query på M-forespørgselssproget. Ved hjælp af disse indstillinger kan du styre den genererede forespørgsel, der sendes til din Azure Data Explorer-klynge.

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [<options>])
in
    Source

Du kan bruge en af følgende indstillinger i din M-forespørgsel:

Indstilling Eksempel Beskrivelse
Maks. rækker [MaxRows=300000] Føjer set-sætningen truncationmaxrecords til forespørgslen. Tilsidesætter det maksimale standardantal poster, som en forespørgsel kan returnere til kalderen (afkortning).
Maxsize [MaxSize=4194304] Føjer set-sætningen truncationmaxsize til forespørgslen. Tilsidesætter den maksimale standardstørrelse for data, som en forespørgsel må returnere til kalderen (afkortning).
Ingen afkortning [NoTruncate=true] Føjer set-sætningen notruncation til forespørgslen. Aktiverer undertrykkelse af afkortning af de forespørgselsresultater, der returneres til kalderen.
AdditionalSetStatements [AdditionalSetStatements="set query_datascope=hotcache"] Føjer de angivne sætsætninger til forespørgslen. Disse sætninger bruges til at angive forespørgselsindstillinger for forespørgslens varighed. Forespørgselsindstillinger styrer, hvordan en forespørgsel udføres og returnerer resultater.
Forskel på store og små bogstaver [CaseInsensitive=true] Får connectoren til at generere forespørgsler, hvor der ikke skelnes mellem store og små bogstaver – forespørgsler bruger operatoren =~ i stedet for operatoren == , når værdier sammenlignes.
ForceUseContains [ForceUseContains=true] Får connectoren til at generere forespørgsler, der bruger contains i stedet for standarden has , når der arbejdes med tekstfelter. Selvom has den er meget mere effektiv, håndterer den ikke understrenge. Du kan få flere oplysninger om forskellen mellem de to operatorer ved at gå til strengoperatorer.
Timeout [Timeout=#duration(0,10,0,0)] Konfigurerer både klientens og serverens timeout for forespørgslen til den angivne varighed.
ClientRequestIdPrefix [ClientRequestIdPrefix="MyReport"] Konfigurerer præfikset ClientRequestId for alle forespørgsler, der sendes af connectoren. Dette gør det muligt at identificere forespørgslerne i klyngen, som de kommer fra en bestemt rapport og/eller datakilde.

Bemærk

Du kan kombinere flere indstillinger sammen for at nå den påkrævede funktionsmåde: [NoTruncate=true, CaseInsensitive=true]

Når kusto-forespørgselsgrænser

Kusto-forespørgsler returnerer som standard op til 500.000 rækker eller 64 MB, som beskrevet i forespørgselsgrænser. Du kan tilsidesætte disse standarder ved hjælp af Avancerede indstillinger i forbindelsesvinduet i Azure Data Explorer (Kusto ):

avancerede indstillinger.

Disse indstillinger udsteder sætsætninger med din forespørgsel for at ændre standardgrænserne for forespørgsler:

  • Begræns postnummeret for forespørgselsresultatet genererer en set truncationmaxrecords
  • Begræns datastørrelsen for forespørgselsresultatet i byte genererer en set truncationmaxsize
  • Deaktiver afkortning af resultatsæt genererer en set notruncation

Forskel på store og små bogstaver

Connectoren genererer som standard forespørgsler, der bruger operatoren forskel på store og små bogstaver == , når strengværdier sammenlignes. Hvis der ikke skelnes mellem store og små bogstaver i dataene, er dette ikke den ønskede funktionsmåde. Hvis du vil ændre den genererede forespørgsel, skal du bruge connectorindstillingen CaseInsensitive :

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [CaseInsensitive=true]),
    #"Filtered Rows" = Table.SelectRows(Source, each [State] == "aLaBama")
in
    #"Filtered Rows"

Brug af forespørgselsparametre

Du kan bruge forespørgselsparametre til at ændre forespørgslen dynamisk.

Brug en forespørgselsparameter i forespørgselstrinnene

Du kan bruge en forespørgselsparameter i et hvilket som helst forespørgselstrin, der understøtter den. Filtrer f.eks. resultaterne baseret på værdien af en parameter. I dette eksempel skal du vælge rullemenuen i højre side af State kolonnen i Power Query-editor, vælge Tekstfiltre>er lig med og derefter vælge ALABAMA under Bevar rækker, hvor 'State'.

Filtrer resultater ved hjælp af en parameter.

Angiv parametre til en Azure Data Explorer-funktion

Kusto-funktioner er en god måde at vedligeholde komplekse KQL-forespørgsler (Kusto Query Language). Vi anbefaler, at du bruger funktioner i stedet for at integrere KQL i Power Query. Den største fordel ved at bruge funktionen er, at logikken vedligeholdes én gang i et miljø, der er let at oprette og teste.

Funktioner kan også modtage parametre og dermed give Power BI-brugeren en stor fleksibilitet. Power BI har mange måder at opdele dataene på. Men alle filtre og udsnit tilføjes efter den oprindelige KQL, og i mange tilfælde skal du bruge filtrering på et tidligt tidspunkt i forespørgslen. Brug af funktioner og dynamiske parametre er en meget effektiv måde at tilpasse den endelige forespørgsel på.

Oprettelse af en funktion

Du kan oprette følgende funktion i en hvilken som helst Azure Data Explorer-klynge, som du har adgang til, herunder en gratis klynge. Funktionen returnerer tabellen SalesTable fra Hjælp-klyngen, der er filtreret efter salgstransaktioner, der er større end eller mindre end et tal, der er angivet af rapportbrugeren.

.create-or-alter  function LargeOrSmallSales(Cutoff:long,Op:string=">")
{
    cluster("help").database("ContosoSales").SalesTable
    | where  (Op==">" and SalesAmount >= Cutoff) or (Op=="<"  and SalesAmount <= Cutoff)
}

Når du har oprettet funktionen, kan du teste den ved hjælp af:

LargeOrSmallSales(2000,">")
| summarize Sales=tolong(sum(SalesAmount)) by Country

Du kan også teste den ved hjælp af:

LargeOrSmallSales(20,"<")
| summarize Sales=tolong(sum(SalesAmount)) by Country
Brug af funktionen i Power BI
  1. Forbind til den klynge, hvor du oprettede funktionen.

  2. I Power Query-navigatoren skal du vælge funktionen på listen over objekter. Connectoren analyserer parametrene og viser dem over dataene i højre side af navigatoren.

    Skærmbillede med parametrene Cutoff og Op, der vises over dataene i navigatoren.

  3. Føj værdier til parametrene, og vælg derefter Anvend.

  4. Når eksempelvisningen vises, skal du vælge Transformér data.

  5. Når du er i Power Query-editoren, skal du oprette to parametre, én for afskæringsværdien og én for operatoren.

  6. Gå tilbage til forespørgslen, LargeOrSmallSales og erstat værdierne med forespørgselsparametrene på formellinjen.

    Skærmbillede med funktionen LargeOrSmallSales med fokus på parametrene Cutoff_Param og Op_Param på formellinjen.

  7. Fra editoren skal du oprette to statiske tabeller (Angiv data) for at angive indstillinger for de to parametre. I forbindelse med afskæringen kan du oprette en tabel med værdier som f.eks. 10, 50, 100, 200, 500, 1000, 2000. For er en Optabel med to Tekst-værdier < og >.

  8. De to kolonner i tabellerne skal bindes til forespørgselsparametrene ved hjælp af indstillingen Bind til parameter .

    Skærmbillede, hvor Op bindes til parameteren Op_Param.

Den endelige rapport indeholder udsnitsværktøjer til de to statiske tabeller og eventuelle visualiseringer fra oversigtssalget.

Skærmbillede i Power BI, hvor skærings- og op-værdivalgene vises ud for tabellen.

Basistabellen filtreres først og aggregeres derefter.

Brug af en forespørgselsparameter i forbindelsesoplysningerne

Brug en forespørgselsparameter til at filtrere oplysninger i forespørgslen og optimere forespørgslens ydeevne.

I Avanceret editor:

  1. Find følgende afsnit i forespørgslen:

    Kilde = AzureDataExplorer.Contents("<Cluster>", "<Database>", "<Query>", [])

    Eksempler:

    Source = AzureDataExplorer.Contents("Help", "Samples", "StormEvents | where State == 'ALABAMA' | take 100", [])
    
  2. Indsæt en forespørgselsparameter i KQL-forespørgslen (Kusto Query Language).

    Hvis du indsætter en KQL-forespørgsel direkte i forbindelsesdialogboksen, er forespørgslen en del af kildetrinnet i Power Query. Du kan integrere parametre som en del af forespørgslen ved hjælp af den avancerede editor eller ved redigering af kildesætningen på formellinjen. En eksempelforespørgsel kan være StormEvents | where State == ' " & State & " ' | take 100. State er en parameter, og i kørselstidspunktet vil forespørgslen være:

    StormEvents | where State == 'ALABAMA' | take 100

  3. Hvis forespørgslen indeholder anførselstegn, skal du kode dem korrekt. Følgende forespørgsel i KQL:

    "StormEvents | where State == "ALABAMA" | take 100"
    

    vises i Avanceret editor på følgende måde med to anførselstegn:

     "StormEvents | where State == ""ALABAMA"" | take 100"
    

    Hvis du bruger en parameter, f.eks State. , skal den erstattes af følgende forespørgsel, som indeholder tre anførselstegn:

    "StormEvents | where State == """ & State & """ | take 100"
    

Brug funktionerne Value.NativeQuery til Azure Data Explorer

Hvis du vil bruge en Azure Data Explorer-funktion, der ikke understøttes i Power Query, skal du bruge metoden Value.NativeQuery i Power Query M. Denne metode indsætter et Kusto-forespørgselssprogfragment i den genererede forespørgsel og kan også bruges til at give dig mere kontrol over den udførte forespørgsel.

I følgende eksempel kan du se, hvordan du bruger funktionen percentiles i Azure Data Explorer:

let
    StormEvents = AzureDataExplorer.Contents(DefaultCluster, DefaultDatabase){[Name = DefaultTable]}[Data],
    Percentiles = Value.NativeQuery(StormEvents, "| summarize percentiles(DamageProperty, 50, 90, 95) by State")
in
    Percentiles

Brug ikke Tidsplan for opdatering af Power BI-data til at udstede kontrolkommandoer til Kusto

Power BI indeholder en tidsplan for dataopdatering, der med jævne mellemrum kan udstede forespørgsler mod en datakilde. Denne mekanisme bør ikke bruges til at planlægge kontrolkommandoer til Kusto, fordi Power BI forudsætter, at alle forespørgsler er skrivebeskyttede.