Delen via


Azure Data Explorer (Kusto)

Samenvatting

Item Description
Status van vrijgave Algemene beschikbaarheid
Products Excel
Power BI (Semantische modellen)
Power BI (gegevensstromen)
Fabric (Dataflow Gen2)
Power Apps (gegevensstromen)
Dynamics 365 Customer Insights
Ondersteunde verificatietypen Organisatieaccount
Documentatie voor functiereferenties

Opmerking

Sommige mogelijkheden zijn mogelijk aanwezig in één product, maar niet in andere vanwege implementatieschema's en hostspecifieke mogelijkheden.

Vereiste voorwaarden

  • Een Azure-abonnement. Ga naar gratis proefversie van Azure.

  • Een organisatie-e-mailaccount dat lid is van Microsoft Entra-id. Dit artikel gebruikt dit account om verbinding te maken met de Azure Data Explorer helpcluster-voorbeelden.

Ondersteunde mogelijkheden

  • Import
  • DirectQuery (semantische Power BI-modellen)
  • Geavanceerde opties
    • Recordnummer voor queryresultaten beperken
    • Gegevensgrootte van queryresultaten beperken in bytes
    • Afkapping van resultatenset uitschakelen
    • Aanvullende set-instructies

Verbinding maken met Azure Data Explorer vanuit Power Query Desktop

Verbinding maken met Azure Data Explorer vanuit Power Query Desktop:

  1. Selecteer Azure Data Explorer (Kusto) in de get data-ervaring. De ervaring voor het ophalen van gegevens in Power Query Desktop varieert tussen apps. Ga naar Waar u gegevenskunt ophalen voor meer informatie over de Power Query Desktop-ervaring voor uw app.

  2. Geef in Azure Data Explorer (Kusto) de naam op van uw Azure Data Explorer-cluster. In dit voorbeeld gebruikt https://help.kusto.windows.net u om toegang te krijgen tot het Help-voorbeeldcluster. Voor andere clusters heeft de URL de vorm https:// <ClusterName>.<Region.kusto.windows.net>.

    U kunt ook een database selecteren die wordt gehost op het cluster waarmee u verbinding maakt, en een van de tabellen in de database, of een query zoals StormEvents | take 1000.

  3. Als u geavanceerde opties wilt gebruiken, selecteert u de optie en voert u de gegevens in die u met die optie wilt gebruiken. Meer informatie: Verbinding maken met geavanceerde opties

    Opmerking

    Mogelijk moet u omlaag schuiven om alle geavanceerde opties en de selectie van de gegevensverbinding weer te geven.

  4. Selecteer de gegevensconnectiviteitsmodus Import of DirectQuery (alleen Power BI Desktop). Meer informatie: Wanneer u de import- of directquerymodus gebruikt

  5. Selecteer OK om door te gaan.

    Schermopname van het dialoogvenster Azure Data Explorer (Kusto), met de URL voor het cluster dat is ingevoerd.

  6. Als u nog geen verbinding met het cluster hebt, selecteert u Aanmelden. Meld u aan met een organisatieaccount en selecteer Verbinding maken.

    Schermopname van het aanmeldingsdialoogvenster voor Azure Data Explorer, met het organisatieaccount dat gereed is om te worden aangemeld.

  7. Selecteer in Navigatorde gewenste databasegegevens en selecteer vervolgens Laden om de gegevens te laden of Gegevens transformeren om de gegevens in de Power Query-editor te transformeren. In dit voorbeeld is StormEvents geselecteerd in de database Voorbeelden.

    Schermopname van de Navigator die geopend is en de gegevens van StormEvents in de Samples-database bevat.

Verbinding maken met Azure Data Explorer vanuit Power Query Online

Verbinding maken met Azure Data Explorer vanuit Power Query Online:

  1. Selecteer de optie Azure Data Explorer (Kusto) in de gegevens ophalen-ervaring. Verschillende apps hebben verschillende manieren om toegang te krijgen tot de Power Query Online-ervaring voor het ophalen van gegevens. Ga naar Waar u gegevens kunt ophalenvoor meer informatie over hoe u toegang krijgt tot de Power Query Online 'gegevens ophalen' ervaring vanuit uw app.

    Schermopname van het venster Gegevens ophalen met Azure Data Explorer benadrukt.

  2. Geef in Verbinding maken met de gegevensbron de naam op van uw Azure Data Explorer-cluster. In dit voorbeeld gebruikt https://help.kusto.windows.net u om toegang te krijgen tot het Help-voorbeeldcluster. Voor andere clusters heeft de URL de vorm https:// <ClusterName>.<Region.kusto.windows.net>.

    U kunt ook een database selecteren die wordt gehost op het cluster waarmee u verbinding maakt, en een van de tabellen in de database, of een query zoals StormEvents | take 1000.

    Schermopname van de pagina Gegevensbron kiezen voor Azure Data Explorer (Kusto), met de URL voor het cluster ingevoerd.

  3. Als u geavanceerde opties wilt gebruiken, selecteert u de optie en voert u de gegevens in die u met die optie wilt gebruiken. Meer informatie: Verbinding maken met geavanceerde opties

  4. Selecteer indien nodig de on-premises gegevensgateway in Data gateway.

  5. Als u nog geen verbinding met het cluster hebt, selecteert u Aanmelden. Meld u aan met een organisatieaccount.

  6. Nadat u zich hebt aangemeld, selecteert u Volgende.

  7. Selecteer op de pagina Gegevens kiezen de gewenste databasegegevens en selecteer vervolgens Gegevens transformeren of Volgende om door te gaan met het transformeren van de gegevens in de Power Query-editor. In dit voorbeeld is StormEvents geselecteerd in de database Voorbeelden.

    Schermopname van de pagina Gegevens kiezen, met de gegevens uit StormEvents in de database Samples.

Verbinding maken met behulp van geavanceerde opties

Power Query Desktop en Power Query Online bieden zo nodig een set geavanceerde opties die u aan uw query kunt toevoegen.

De volgende tabel bevat alle geavanceerde opties die u kunt instellen in Power Query Desktop en Power Query Online.

Geavanceerde optie Description
Recordnummer voor queryresultaten beperken Het maximum aantal records dat moet worden geretourneerd in het resultaat.
Gegevensgrootte van queryresultaten beperken in bytes De maximale grootte van de gegevens in bytes die in het resultaat wordt teruggegeven.
Afkapping van resultatenset uitschakelen Schakel resultaat inkorten in of uit met behulp van de notruncation aanvraagoptie.
Aanvullende set-instellingen Hiermee stelt u queryopties in voor de duur van de query. Queryopties bepalen hoe een query wordt uitgevoerd en resultaten retourneert. Meerdere set-verklaringen kunnen door puntkomma's worden gescheiden.

Voor meer informatie over aanvullende geavanceerde opties die niet beschikbaar zijn in de Gebruikersinterface van Power Query, gaat u naar De connectoropties van Azure Data Explorer configureren in een M-query.

Wanneer moet u de import- of directquerymodus gebruiken

In de importmodus worden gegevens verplaatst naar Power BI. In de DirectQuery-modus worden gegevens rechtstreeks vanuit uw cluster opgevraagd.

Gebruik de importmodus wanneer:

  • Uw gegevensset is klein.
  • U hebt geen gegevens in bijna realtime nodig.
  • Uw gegevens zijn al samengevoegd of u voert aggregatie uit in Kusto.

Gebruik de DirectQuery-modus wanneer:

  • Uw gegevensset is erg groot.
  • U hebt bijna realtime gegevens nodig.

Voor meer informatie over het gebruik van DirectQuery gaat u naar Over het gebruik van DirectQuery in Power BI.

Tips voor het gebruik van de Azure Data Explorer-connector om een query uit te voeren op gegevens

De volgende secties bevatten tips en trucs voor het gebruik van kusto-querytaal met Power Query.

Complexe query’s in Power BI

Complexe query's worden gemakkelijker uitgedrukt in Kusto dan in Power Query. Ze moeten worden geïmplementeerd als Kusto-functies en worden aangeroepen in Power BI. Deze methode is vereist wanneer u DirectQuery gebruikt met let instructies in uw Kusto-query. Omdat Power BI twee query's koppelt en let instructies niet kunnen worden gebruikt met de join operator, kunnen er syntaxisfouten optreden. Sla daarom elk deel van de join op als een Kusto-functie en sta Power BI toe om deze twee functies samen te voegen.

Het simuleren van een relatieve datum-tijdoperator

Power Query bevat geen relatieve datum/tijd-operator, zoals ago(). Gebruik een combinatie van ago() en #duration Power Query M-functies om te simuleren.

In plaats van deze query gebruik te maken van de ago() operator:

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

Gebruik de volgende equivalente query:

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

Connectoropties voor Azure Data Explorer configureren in een M-query

U kunt de opties van de Azure Data Explorer-connector configureren vanuit de geavanceerde Power Query-editor in de M-querytaal. Met deze opties kunt u de gegenereerde query beheren die naar uw Azure Data Explorer-cluster wordt verzonden.

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

U kunt een van de volgende opties in uw M-query gebruiken:

Optie Sample Description
MaxRows [MaxRows=300000] Hiermee voegt u de setinstructie truncationmaxrecords toe aan uw query. Hiermee wordt het standaard maximum aantal records overschreven dat een query kan retourneren naar de aanroeper (afkapping).
MaxSize [MaxSize=4194304] Hiermee voegt u de setinstructie truncationmaxsize toe aan uw query. Hiermee wordt de standaard maximale gegevensgrootte overschreven die een query mag retourneren naar de aanroeper (afkapping).
NoTruncate [NoTruncate=true] Hiermee voegt u de setinstructie notruncation toe aan uw query. Hiermee wordt afkapping van de queryresultaten die naar de aanroeper worden geretourneerd, onderdrukt.
AdditionalSetStatements [AdditionalSetStatements="set query_datascope=hotcache"] Voegt de opgegeven set-opdrachten toe aan uw query. Deze instructies worden gebruikt om queryopties in te stellen voor de duur van de query. Queryopties bepalen hoe een query wordt uitgevoerd en resultaten retourneert.
Niet hoofdlettergevoelig [CaseInsensitive=true] Hiermee genereert de connector query's die niet hoofdlettergevoelig zijn—query's gebruiken de =~ operator in plaats van de == operator wanneer waarden worden vergeleken.
ForceUseContains [ForceUseContains=true] Hiermee genereert de connector query's die contains gebruiken in plaats van de standaardinstelling has bij het werken met tekstvelden. Hoewel has veel beter presteert, kan het niet omgaan met subtekenreeksen. Ga naar tekenreeksoperators voor meer informatie over het verschil tussen de twee operators.
Onderbreking [Timeout=#duration(0,10,0,0)] Hiermee configureert u zowel de client- als de servertime-out van de query voor de opgegeven duur.
KlantAanvraagIdPrefix [ClientRequestIdPrefix="MyReport"] Hiermee configureert u een ClientRequestId-voorvoegsel voor alle query's die door de connector worden verzonden. Hierdoor kunnen de query's in het cluster worden geïdentificeerd als afkomstig van een specifiek rapport en/of gegevensbron.

Opmerking

U kunt meerdere opties combineren om het vereiste gedrag te bereiken: [NoTruncate=true, CaseInsensitive=true]

Kusto-querylimieten overschrijden

Kusto-query's retourneren standaard maximaal 500.000 rijen of 64 MB, zoals wordt beschreven in querylimieten. U kunt deze standaardinstellingen overschrijven met behulp van geavanceerde opties in het verbindingsvenster van Azure Data Explorer (Kusto ):

Schermopname van het verbindingsvenster van Azure Data Explorer (Kusto) met de optionele geavanceerde opties benadrukt.

Deze opties geven set statements uit met uw query om de standaardquerylimieten te wijzigen.

  • Recordnummer voor queryresultaten beperken genereert een set truncationmaxrecords
  • Gegevensgrootte van queryresultaten beperken in bytes genereert een set truncationmaxsize
  • Uitschakelen van afkapping van resultatensets genereert een set notruncation

Hoofdlettergevoelig

De connector genereert standaard query's die gebruikmaken van de hoofdlettergevoelige == operator bij het vergelijken van tekenreekswaarden. Als de gegevens niet hoofdlettergevoelig zijn, is dit niet het gewenste gedrag. Als u de gegenereerde query wilt wijzigen, gebruikt u de CaseInsensitive connectoroptie:

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

Queryparameters gebruiken

U kunt queryparameters gebruiken om uw query dynamisch te wijzigen.

Een queryparameter gebruiken in de querystappen

U kunt een queryparameter gebruiken in elke querystap die deze ondersteunt. Filter bijvoorbeeld de resultaten op basis van de waarde van een parameter. In dit voorbeeld selecteert u de vervolgkeuzelijst aan de rechterkant van de State kolom in de Power Query-editor, selecteert u Tekstfilters, kiest u >, en selecteert u ALABAMA onder Rijen behouden waar 'Staat'.

Schermopname van het dialoogvenster Rijen filteren waarin u de filterresultaten instelt met behulp van een parameter.

Parameters opgeven voor een Azure Data Explorer-functie

Kusto-functies zijn een uitstekende manier om complexe KQL-query's (Kusto Query Language) te onderhouden. U wordt aangeraden functies te gebruiken in plaats van KQL in te sluiten in Power Query. Het belangrijkste voordeel van het gebruik van de functie is dat de logica eenmaal wordt onderhouden in een omgeving die eenvoudig te maken en te testen is.

Functies kunnen ook parameters ontvangen en dus veel flexibiliteit toevoegen aan de Power BI-gebruiker. Power BI heeft veel manieren om de gegevens te segmenteren. Maar alle filters en slicers worden toegevoegd na de oorspronkelijke KQL en in veel gevallen wilt u filteren in een vroeg stadium van de query. Het gebruik van functies en dynamische parameters is een zeer effectieve manier om de uiteindelijke query aan te passen.

Een functie maken

U kunt de volgende functie maken in elk Azure Data Explorer-cluster waartoe u toegang hebt, inclusief een gratis cluster. De functie retourneert de tabel SalesTable uit het Help-cluster, gefilterd op verkooptransacties die groter zijn dan of kleiner zijn dan een getal dat is opgegeven door de rapportgebruiker.

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

Nadat u de functie hebt gemaakt, kunt u deze testen met behulp van:

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

U kunt het ook testen met behulp van:

LargeOrSmallSales(20,"<")
| summarize Sales=tolong(sum(SalesAmount)) by Country
De functie gebruiken in Power BI
  1. Maak verbinding met het cluster waar u de functie hebt gemaakt.

  2. Selecteer in de Power Query-navigator de functie in de lijst met objecten. De connector analyseert de parameters en geeft deze weer boven de gegevens aan de rechterkant van de navigator.

    Schermopname met de parameters Cutoff en Op die worden weergegeven boven de gegevens in de navigator.

  3. Voeg waarden toe aan de parameters en selecteer Toepassen.

  4. Nadat het voorbeeld is weergegeven, selecteert u Gegevens transformeren.

  5. Maak in de Power Query-editor twee parameters, één voor de grenswaarde en één voor de operator.

  6. Ga terug naar de LargeOrSmallSales query en vervang de waarden door de queryparameters in de formulebalk.

    Schermopname met de functie LargeOrSmallSales, met nadruk op de Cutoff_Param en Op_Param parameters in de formulebalk.

  7. Maak vanuit de editor twee statische tabellen (Gegevens invoeren) om opties voor de twee parameters op te geven. Voor de uitsnede kunt u een tabel maken met waarden zoals 10, 50, 100, 200, 500, 1000, 2000. Voor Op de tabel met twee tekstwaarden < en >.

  8. De twee kolommen in de tabellen moeten worden gebonden aan de queryparameters via de selectie Bind aan parameter.

    Schermopname van op die is gebonden aan de parameter Op_Param.

Het uiteindelijke rapport bevat slicers voor de twee statische tabellen en visuele samenvattingen van de verkoop.

Schermopname in Power BI met de selecties voor Cutoff en Op value naast de tabel.

De basistabel wordt eerst gefilterd en vervolgens samengevoegd.

Een queryparameter gebruiken in de verbindingsgegevens

Gebruik een queryparameter om informatie in de query te filteren en de queryprestaties te optimaliseren.

In Geavanceerde Editor:

  1. Zoek de volgende sectie van de query:

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

    Voorbeeld:

    Source = AzureDataExplorer.Contents("Help", "Samples", "StormEvents | where State == 'ALABAMA' | take 100", [])
    
  2. Voeg een queryparameter in de KQL-query (Kusto Query Language) in.

    Als u een KQL-query rechtstreeks in het verbindingsdialoogvenster plakt, maakt de query deel uit van de bronstap in Power Query. U kunt parameters insluiten als onderdeel van de query met behulp van de geavanceerde editor of bij het bewerken van de broninstructie in de formulebalk. Een voorbeeldquery kan zijn StormEvents | where State == ' " & State & " ' | take 100. State is een parameter en tijdens de uitvoeringstijd is de query:

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

  3. Als uw query aanhalingstekens bevat, moet u deze correct coderen. Bijvoorbeeld de volgende query in KQL:

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

    wordt als volgt weergegeven in de geavanceerde editor met twee aanhalingstekens:

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

    Als u een parameter gebruikt, zoals State, moet deze worden vervangen door de volgende query, die drie aanhalingstekens bevat:

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

Value.NativeQuery gebruiken voor Functies van Azure Data Explorer

Als u een Azure Data Explorer-functie wilt gebruiken die niet wordt ondersteund in Power Query, gebruikt u de methode Value.NativeQuery in Power Query M. Met deze methode wordt een Kusto-querytaalfragment ingevoegd in de gegenereerde query en kan ook worden gebruikt om u meer controle te geven over de uitgevoerde query.

In het volgende voorbeeld ziet u hoe u de percentiles functie gebruikt in 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

Gebruik geen Power BI-gegevensvernieuwingsplanner om besturingsopdrachten uit te geven aan Kusto

Power BI bevat een scheduler voor gegevensvernieuwing waarmee periodiek query's op een gegevensbron kunnen worden uitgevoerd. Dit mechanisme mag niet worden gebruikt om controleopdrachten naar Kusto te plannen, omdat Power BI ervan uitgaat dat alle query's alleen-lezen zijn.