Azure Data Explorer (Kusto) og KQL-database

Sammendrag

Egenskap Verdi
Connector Azure Data Explorer (Kusto)-ikonet Azure Data Explorer (Kusto)
KQL-databaseikon KQL-database
Produkter Azure Data Explorer (Kusto): Excel
Power BI (semantiske modeller)
Power Query Online
KQL-database: Power BI (semantiske modeller)
Power Query Online
Utgivelse tilstand Forhåndsvisning (KQL-database) og generell tilgjengelighet (Azure Data Explorer (Kusto))
Kategori Azure og Fabric
Godkjenningstyper Microsoft Entra ID
Datakildetype AzureDataExplorer
Funksjonsreferansedokumentasjon AzureDataExplorer.Contents
AzureDataExplorer.Databases
AzureDataExplorer.KqlDatabase

Note

Noen funksjoner kan være til stede i ett produkt, men ikke andre på grunn av distribusjonsplaner og vertsspesifikke funksjoner.

Forutsetning

Azure Data Explorer (Kusto)

KQL-database

Du må ha lesetillatelser i KQL-databasen.

Støttede funksjoner

  • Importer
  • DirectQuery (semantiske Modeller for Power BI)
  • Avanserte alternativer
    • Begrens oppføringsnummer for spørringsresultat
    • Begrens datastørrelsen for spørringsresultater i byte
    • Deaktiver avkorting av resultatsett
    • Flere settsetninger

Parametre

Azure Data Explorer (Kusto)

Inngangspunkt:AzureDataExplorer.Contents

Obligatorisk parameterantall: 1

Importerer data fra Azure Data Explorer (Kusto)

Importerer data fra Azure Data Explorer (Kusto)-forekomsten

Parameteren Visningsnavn Påkrevd Type Gruppe Utvalgsverdier Nullable Flere metadata
klynge Klynge Yes SMS «https://mycluster.kusto.windows.net" false
database Database No Null tekst "MyDatabase" sann
tableOrQuery Tabellnavn eller Azure Data Explorer spørring No Null tekst "Logger | where [Timestamp] > ago(1h)"; "TracesTable" sann {"Formatting.IsCode": true, "Formatting.IsMultiLine": true}
options Avanserte alternativer No null rekord Avanserte alternativer sann

Felt i options

Felt Visningsnavn Påkrevd Type Gruppe Utvalgsverdier Nullable Valgfritt
alternativer. MaxRows Begrens oppføringsnummer for spørringsresultat No nummer Avanserte alternativer "500000" false sann
alternativer. MaxSize Begrens datastørrelsen for spørringsresultater i byte No nummer Avanserte alternativer "67108864" false sann
alternativer. NoTruncate Deaktiver avkorting av resultatsett No logisk Avanserte alternativer "falsk" false sann
alternativer. AdditionalSetStatements Flere settsetninger (atskilt med semikolon) No SMS Avanserte alternativer "angi query_datascope=hotcache;" false sann

KQL-database

Inngangspunkt:AzureDataExplorer.KqlDatabase

Obligatorisk parameterantall: 0

Importer data fra Fabric Kusto-klyngen i søkemodus.

Importerer data fra KQL-databaseforekomsten

Parameteren Visningsnavn Påkrevd Type Gruppe Utvalgsverdier Nullable Flere metadata
klynge Klynge No Null tekst «https://mycluster.kusto.windows.net" sann
database Database No Null tekst "MyDatabase" sann
tableOrQuery Tabellnavn eller Azure Data Explorer spørring No Null tekst "Logger | where [Timestamp] > ago(1h)"; "TracesTable" sann {"Formatting.IsCode": true, "Formatting.IsMultiLine": true}
options Avanserte alternativer No null rekord Avanserte alternativer sann

Felt i options

Felt Visningsnavn Påkrevd Type Gruppe Utvalgsverdier Nullable Valgfritt
alternativer. MaxRows Begrens oppføringsnummer for spørringsresultat No nummer Avanserte alternativer "500000" false sann
alternativer. MaxSize Begrens datastørrelsen for spørringsresultater i byte No nummer Avanserte alternativer "67108864" false sann
alternativer. NoTruncate Deaktiver avkorting av resultatsett No logisk Avanserte alternativer "falsk" false sann
alternativer. AdditionalSetStatements Flere settsetninger (atskilt med semikolon) No SMS Avanserte alternativer "angi query_datascope=hotcache;" false sann

Koble til fra Power Query Desktop

Azure Data Explorer (Kusto)

Slik kobler du til Azure Data Explorer fra Power Query Desktop:

  1. Velg Azure Data Explorer (Kusto) i hent data-opplevelsen. Hent dataopplevelsen i Power Query Desktop varierer mellom apper. Hvis du vil ha mer informasjon om Power Query Desktop, kan du få dataopplevelse for appen din ved å gå til Hvor får du data.

  2. I Azure Data Explorer (Kusto) angir du navnet på Azure Data Explorer-klyngen. I dette eksemplet kan du bruke https://help.kusto.windows.net til å få tilgang til eksempelhjelpeklyngen. For andre klynger er URL-adressen i formatet https:// <ClusterName>.<Region.kusto.windows.net>.

    Du kan også velge en database som driftes i klyngen du kobler til, og en av tabellene i databasen, eller en spørring som StormEvents | take 1000.

  3. Hvis du vil bruke forhåndsalternativer, velger du alternativet og skriver inn dataene som skal brukes med det alternativet. Mer informasjon: Koble til ved hjelp av avanserte alternativer

    Note

    Du må kanskje rulle ned for å vise alle de avanserte alternativene og datatilkoblingsvalget.

  4. Velg enten Importer eller DirectQuery datatilkoblingsmodus (bare Power BI Desktop). Mer informasjon: Når du skal bruke import- eller DirectQuery-modus

  5. Velg OK for å fortsette.

    Skjermbilde av dialogboksen Azure Data Explorer (Kusto), med nettadressen for klyngen angitt.

  6. Hvis du ikke allerede har en tilkobling til klyngen, velger du Logg på. Logg på med en organisasjonskonto, og velg deretter Koble til.

    Skjermbilde av påloggingsdialogboksen for Azure Data Explorer, med organisasjonskontoen klar til å logges på.

  7. I Navigatorvelger du databaseinformasjonen du vil bruke, og deretter velger du Last inn for å laste inn dataene eller Transformer data for å fortsette å transformere dataene i redigeringsprogrammet for Power Query. I dette eksemplet ble StormEvents valgt i Prøver-databasen.

    Skjermbilde av navigatoren som er åpen og inneholder dataene fra StormEvents i Samples-databasen.

KQL-database

For å koble til en KQL-database fra Power Query Desktop:

  1. I Get Data, velg Microsoft Fabric (forhåndsvisning) eller søk etter KQL, velg KQL Database, og velg deretter Connect. Mer informasjon: Hvor du henter data

    Skjermbilde av siden for hent data, med Microsoft Fabric (forhåndsvisning) kategorien valgt, og KQL Desktop (forhåndsvisning) fremhevet.

  2. I KQL Database, fyll ut klyngen og eventuelle valgfrie felt, som Database.

    Skjermbilde av Kusto-siden, som viser klyngen og valgfrie felt klare til å fylles ut.

    For å få klyngens URI, naviger til KQL-databasen din i Fabric-tjenesten og kopierer Query-URI.

    Skjermbilde av KQL-databasens hjemmeside med Query URI-kopieringsalternativet fremhevet.

    Velg deretter OK.

  3. Hvis dette forsøket er første gang du kobler til dette nettstedet, velg Logg inn og skriv inn legitimasjonen din. Velg deretter Koble til.

    Skjermbilde av innloggingsdialogboksen for KQL-databasen, med organisasjonskontoen klar til innlogging.

  4. I Navigator velger du tabellene du trenger, og last deretter inn eller transformer dataene.

    Skjermbilde av Power Query-navigatoren, med tabellen for stormhendelser valgt.

Koble til fra Power Query Online

Azure Data Explorer (Kusto)

Slik kobler du til Azure Data Explorer fra Power Query Online:

  1. Velg alternativet Azure Data Explorer (Kusto) i hent data-opplevelsen. Ulike apper har ulike måter å få tilgang til Power Query Online på for å få dataopplevelse. Hvis du vil ha mer informasjon om hvordan du får tilgang til Power Query Online, kan du gå til Hvor får du data.

    Skjermbilde av hent data-vinduet med Azure Data Explorer vektlagt.

  2. I Koble til datakilde angir du navnet på Azure Data Explorer-klyngen. I dette eksemplet kan du bruke https://help.kusto.windows.net til å få tilgang til eksempelhjelpeklyngen. For andre klynger er URL-adressen i formatet https:// <ClusterName>.<Region.kusto.windows.net>.

    Du kan også velge en database som driftes i klyngen du kobler til, og en av tabellene i databasen, eller en spørring som StormEvents | take 1000.

    Skjermbilde av siden Velg datakilde for Azure Data Explorer (Kusto), med nettadressen for klyngen angitt.

  3. Hvis du vil bruke forhåndsalternativer, velger du alternativet og skriver inn dataene som skal brukes med det alternativet. Mer informasjon: Koble til ved hjelp av avanserte alternativer

  4. Velg om nødvendig den lokale datagatewayen i datagatewayen.

  5. Hvis du ikke allerede har en tilkobling til klyngen, velger du Logg på. Logg på med en organisasjonskonto.

  6. Når du har logget på, velger du Neste.

  7. Velg databaseinformasjonen du vil bruke, på siden Velg data , og velg deretter Transformer data eller Neste for å fortsette å transformere dataene i Power Query-redigeringsprogrammet. I dette eksemplet ble StormEvents valgt i Prøver-databasen.

    Skjermbilde av Velg data-siden, som inneholder dataene fra StormEvents i Samples-databasen.

KQL-database

For å koble til en KQL-database fra Power Query Online:

  1. I Velg datakilde, søk etter KQL, og velg deretter KQL Database. Mer informasjon: Hvor du henter data

  2. I Connect to datakilde, fyll ut klyngen og eventuelle valgfrie felt, som Database.

    Skjermbilde av siden for tilkobling til datakilden, med tilkoblingsinnstillingen klar til å fylles ut.

    For å få klyngens URI, naviger til KQL-databasen din i Fabric-tjenesten og kopierer Query-URI.

    Skjermbilde av MyKQLDatabase KQL-databasens startside med Query, kopier URI-alternativet fremhevet.

  3. Om nødvendig, legg inn en lokal datagateway hvis du skal bruke lokal data. For eksempel, hvis du skal kombinere data fra dataflows og en lokal SQL Server-database.

  4. Logg inn på din organisasjonskonto.

  5. Når du har logget inn, velg Neste.

  6. I Velg data, velg dataene du trenger, og velg deretter Transformer data.

    Skjermbilde av velg data-siden, med stormhendelser valgt.

Mer informasjon

Avanserte alternativer

Både Power Query Desktop og Power Query Online inneholder et sett med avanserte alternativer som du kan legge til i spørringen om nødvendig.

Tabellen nedenfor viser alle de avanserte alternativene du kan angi i Power Query Desktop og Power Query Online.

Avansert alternativ Beskrivelse
Begrens oppføringsnummer for spørringsresultat Maksimalt antall poster som skal returneres i resultatet.
Begrens datastørrelsen for spørringsresultater i byte Maksimal datastørrelse i byte som skal returneres i resultatet.
Deaktiver avkorting av resultatsett Aktiver eller deaktiver avkorting av resultater ved hjelp av forespørselsalternativet notruncation .
Ytterligere settsetninger Angir spørringsalternativer for varigheten av spørringen. Spørringsalternativer styrer hvordan en spørring utføres og returnerer resultater. Multiple Set-setninger kan skilles med semikolon.

Hvis du vil ha informasjon om flere avanserte alternativer som ikke er tilgjengelige i Power Query-brukergrensesnittet, kan du gå til Konfigurere Azure Data Explorer-koblingsalternativer i en M-spørring.

Når du skal bruke import- eller DirectQuery-modus

I importmodus flyttes data til Power BI. I DirectQuery-modus spørres data direkte fra klyngen.

Bruk importmodus når:

  • Datasettet ditt er lite.
  • Du trenger ikke tilnærmet sanntidsdata.
  • Dataene dine er allerede aggregert, eller du utfører aggregering i Kusto.

Bruk DirectQuery-modus når:

  • Datasettet ditt er veldig stort.
  • Du trenger data i nær sanntid.

Hvis du vil lære mer om hvordan du bruker DirectQuery, kan du gå til Om bruk av DirectQuery i Power BI.

Tips for spørring av data

Avsnittene nedenfor inneholder tips og triks for bruk av Kusto-spørringsspråk med Power Query.

Komplekse spørringer i Power BI

Komplekse spørringer uttrykkes enklere i Kusto enn i Power Query. De bør implementeres som Kusto-funksjoner og startes i Power BI. Denne metoden kreves når du bruker DirectQuery med let setninger i Kusto-spørringen. Fordi Power BI slår sammen to spørringer, og let setninger ikke kan brukes med operatoren join , kan det oppstå syntaksfeil. Lagre derfor hver del av sammenføyningen som en Kusto-funksjon, og la Power BI koble disse to funksjonene sammen.

Slik simulerer du en relativ dato/klokkeslett-operator

Power Query inneholder ikke en relativ dato/klokkeslett-operator, for eksempel ago(). Hvis du vil simulere ago(), bruker du en kombinasjon av DateTime.FixedLocalNow og #duration Power Query M-funksjoner.

I stedet for denne spørringen ved hjelp av operatoren ago() :

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

Bruk følgende tilsvarende spørring:

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

Konfigurere koblingsalternativer for Azure Data Explorer i en M-spørring

Du kan konfigurere alternativene for Azure Data Explorer-koblingen fra det avanserte redigeringsprogrammet for Power Query på M-spørringsspråket. Ved hjelp av disse alternativene kan du kontrollere den genererte spørringen som sendes til Azure Data Explorer-klyngen.

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

Du kan bruke ett av følgende alternativer i M-spørringen:

Alternativ Eksempel Beskrivelse
MaxRows [MaxRows=300000] Legger til set-setningen i spørringen truncationmaxrecords . Overstyrer standard maksimalt antall poster en spørring kan returnere til anroperen (avkorting).
MaxSize [MaxSize=4194304] Legger til set-setningen i spørringen truncationmaxsize . Overstyrer standard maksimal datastørrelse en spørring kan returnere til anroperen (avkorting).
NoTruncate [NoTruncate=true] Legger til set-setningen i spørringen notruncation . Gjør det mulig å undertrykke avkorting av spørringsresultatene som returneres til anroperen.
AdditionalSet-setninger [AdditionalSetStatements="set query_datascope=hotcache"] Legger til de angitte angitte setningene i spørringen. Disse setningene brukes til å angi spørringsalternativer for varigheten av spørringen. Spørringsalternativer styrer hvordan en spørring utføres og returnerer resultater.
Skiller ikke mellom store og små bokstaver [CaseInsensitive=true] Gjør at koblingen genererer spørringer som ikke skiller mellom store og små bokstaver – spørringer bruker operatoren =~ i stedet for operatoren == når de sammenligner verdier.
ForceUseContains [ForceUseContains=true] Får koblingen til å generere spørringer som bruker contains i stedet for standarden has når du arbeider med tekstfelt. Selv om has den er mye mer ytelsesfull, håndterer den ikke understrenger. Hvis du vil ha mer informasjon om forskjellen mellom de to operatorene, kan du gå til strengoperatorer.
Tidsavbrudd [Timeout=#duration(0,10,0,0)] Konfigurerer både klient- og servertidsavbruddet for spørringen til den angitte varigheten.
ClientRequestIdPrefiks [ClientRequestIdPrefix="MyReport"] Konfigurerer et ClientRequestId-prefiks for alle spørringer som sendes av koblingen. Dette gjør at spørringene i klyngen kan identifiseres som om de kommer fra en bestemt rapport og/eller datakilde.

Note

Du kan kombinere flere alternativer for å oppnå den nødvendige virkemåten: [NoTruncate=true, CaseInsensitive=true]

Å nå Kusto-spørringsgrenser

Kusto-spørringer returnerer som standard opptil 500 000 rader eller 64 MB, som beskrevet i spørringsgrenser. Du kan overstyre disse standardene ved hjelp av avanserte alternativer i tilkoblingsvinduet for Azure Data Explorer (Kusto):

Skjermbilde av tilkoblingsvinduet for Azure Data Explorer (Kusto) med de valgfrie avanserte alternativene fremhevet.

Disse alternativene utsteder settsetninger med spørringen for å endre standard spørringsgrenser:

  • Oppføringsnummer for grensespørringsresultat genererer en set truncationmaxrecords
  • Begrens datastørrelsen for spørringsresultat i byte genererer en set truncationmaxsize
  • Deaktiver avkorting av resultatsett genererer en set notruncation

Skille mellom store og små bokstaver

Som standard genererer koblingen spørringer som bruker operatoren som skiller mellom == store og små bokstaver når du sammenligner strengverdier. Hvis dataene skiller ikke mellom store og små bokstaver, er ikke dette den ønskede virkemåten. Hvis du vil endre den genererte spørringen, bruker du koblingsalternativet CaseInsensitive :

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

Bruke spørringsparametere

Du kan bruke spørringsparametere til å endre spørringen dynamisk.

Bruke en spørringsparameter i spørringstrinnene

Du kan bruke en spørringsparameter i et hvilket som helst spørringstrinn som støtter den. Du kan for eksempel filtrere resultatene basert på verdien til en parameter. I dette eksemplet velger du rullegardinmenyen på høyre side av State kolonnen i Power Query-redigeringsprogrammet, velger Tekstfiltre>er lik, og deretter velger du ALABAMA under Behold rader der «Delstat».

Skjermbilde av dialogboksen Filtrer rader der du angir filterresultatene ved hjelp av en parameter.

Angi parametere til en Azure Data Explorer-funksjon

Kusto-funksjoner er en flott måte å vedlikeholde komplekse KQL-spørringer (Kusto Query Language) på. Vi anbefaler at du bruker funksjoner i stedet for å bygge inn KQL i Power Query. Den største fordelen med å bruke funksjon er at logikken opprettholdes én gang i et miljø som er enkelt å lage og teste.

Funksjoner kan også motta parametere og dermed legge til mye fleksibilitet for Power BI-brukeren. Power BI har mange måter å dele opp dataene på. Men alle filtre og slicere legges til etter den opprinnelige KQL, og i mange tilfeller vil du bruke filtrering på et tidlig stadium av spørringen. Å bruke funksjoner og dynamiske parametere er en veldig effektiv måte å tilpasse den endelige spørringen på.

Opprette en funksjon

Du kan opprette følgende funksjon i en hvilken som helst Azure Data Explorer-klynge du har tilgang til, inkludert en gratis klynge. Funksjonen returnerer tabellen SalesTable fra hjelpegruppen, filtrert for salgstransaksjoner som er større enn eller mindre enn et tall som er oppgitt av rapportbrukeren.

.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 opprettet funksjonen, kan du teste den ved hjelp av:

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

Du kan også teste den ved å bruke:

LargeOrSmallSales(20,"<")
| summarize Sales=tolong(sum(SalesAmount)) by Country
Bruke funksjonen i Power BI
  1. Koble til klyngen der du opprettet funksjonen.

  2. I Power Query-navigatoren velger du funksjonen fra listen over objekter. Koblingen analyserer parametrene og presenterer dem over dataene på høyre side av navigatoren.

    Skjermbilde med parameterne Cutoff og Op vist over dataene i navigatoren.

  3. Legg til verdier i parameterne, og velg deretter Bruk.

  4. Når forhåndsvisningen vises, velger du Transformer data.

  5. Når du er i Power Query-redigeringsprogrammet, oppretter du to parametere, én for grenseverdien og én for operatoren.

  6. Gå tilbake til spørringen, LargeOrSmallSales og erstatt verdiene med spørringsparameterne på formellinjen.

    Skjermbilde med LargeOrSmallSales-funksjonen, med vekt på Cutoff_Param- og Op_Param-parameterne på formellinjen.

  7. Fra redigeringsprogrammet oppretter du to statiske tabeller (Angi data) for å gi alternativer for de to parameterne. For avskjæringen kan du opprette en tabell med verdier som 10, 50, 100, 200, 500, 1000, 2000. For Op, en tabell med to tekstverdier < og >.

  8. De to kolonnene i tabellene må være bundet til spørringsparameterne ved hjelp av Bind til parameter-valget .

    Skjermbilde av Op som er bundet til Op_Param-parameteren.

Den endelige rapporten inneholder slicere for de to statiske tabellene og eventuelle visualobjekter fra sammendragssalget.

Skjermbilde i Power BI med verdivalgene Cutoff og Op vist ved siden av tabellen.

Basistabellen filtreres først og aggregeres deretter.

Bruke en spørringsparameter i tilkoblingsdetaljene

Bruk en spørringsparameter til å filtrere informasjon i spørringen og optimalisere spørringsytelsen.

I Avansert redigering:

  1. Finn følgende del av spørringen:

    Kilde = AzureDataExplorer.Contents("<Klynge>", "<Database>", "<Spørring>", [])

    Eksempel:

    Source = AzureDataExplorer.Contents("Help", "Samples", "StormEvents | where State == 'ALABAMA' | take 100", [])
    
  2. Sett inn en spørringsparameter i KQL-spørringen (Kusto Query Language).

    Hvis du limer inn en KQL-spørring direkte i tilkoblingsdialogboksen, vil spørringen være en del av kildetrinnet i Power Query. Du kan bygge inn parametere som en del av spørringen ved hjelp av det avanserte redigeringsprogrammet eller når du redigerer kildesetningen på formellinjen. Et eksempel på spørring kan være StormEvents | where State == ' " & State & " ' | take 100. State er en parameter, og i kjøretid vil spørringen være:

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

  3. Hvis spørringen inneholder anførselstegn, må du kode dem riktig. For eksempel følgende spørring i KQL:

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

    vises i avansert redigering som følger med to anførselstegn:

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

    Hvis du bruker en parameter, for eksempel State, bør den erstattes med følgende spørring, som inneholder tre anførselstegn:

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

Bruk Value.NativeQuery for Azure Data Explorer-funksjoner

Hvis du vil bruke en Azure Data Explorer-funksjon som ikke støttes i Power Query, bruker du Value.NativeQuery-metoden i Power Query M. Denne metoden setter inn et Kusto-spørringsspråkfragment i den genererte spørringen, og kan også brukes til å gi deg mer kontroll over den utførte spørringen.

Eksemplet nedenfor viser hvordan du bruker percentiles funksjonen 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

Ikke bruk Power BI-dataoppdateringsplanlegger til å utstede kontrollkommandoer til Kusto

Power BI inkluderer en dataoppdateringsplanlegger som med jevne mellomrom kan utstede spørringer mot en datakilde. Denne mekanismen bør ikke brukes til å planlegge kontrollkommandoer til Kusto fordi Power BI antar at alle spørringer er skrivebeskyttet.