Azure Data Explorer (Kusto)

Samenvatting

Item Beschrijving
Releasestatus Algemene beschikbaarheid
Producten Excel
Power BI (Semantische modellen)
Power BI (gegevensstromen)
Fabric (Dataflow Gen2)
Power Apps (gegevensstromen)
Dynamics 365 Customer Insights
Ondersteunde verificatietypen Organisatieaccount
Documentatie voor functiereferenties

Notitie

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

Vereisten

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

  • Een organisatie-e-mailaccount dat lid is van Microsoft Entra-id. In dit artikel wordt dit account gebruikt om verbinding te maken met de Help-clustervoorbeelden van Azure Data Explorer.

Ondersteunde mogelijkheden

  • Importeren
  • 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 naar 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 voor meer informatie over de Power Query Desktop-ervaring voor uw app naar Waar u gegevens kunt ophalen.

  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

    Notitie

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

  4. Selecteer de modus Gegevensverbinding importeren 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 dialoogvenster Aanmelden voor Azure Data Explorer, met het organisatieaccount dat gereed is om te worden aangemeld.

  7. Selecteer in Navigator de gewenste databasegegevens en selecteer vervolgens Laden om de gegevens te laden of Gegevens transformeren 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 het openen en bevatten van de gegevens van StormEvents in de database Samples.

Verbinding maken naar 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 get data experience. Verschillende apps hebben verschillende manieren om toegang te krijgen tot Power Query Online om gegevens te krijgen. Ga naar Waar u gegevens kunt ophalen voor de Power Query Online-app voor meer informatie over het ophalen van gegevens.

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

  2. Geef in Verbinding maken de naam van uw Azure Data Explorer-cluster op. 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 De gegevensgateway.

  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 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 Beschrijving
Recordnummer voor queryresultaten beperken Het maximum aantal records dat moet worden geretourneerd in het resultaat.
Gegevensgrootte van queryresultaten beperken in bytes De maximale gegevensgrootte in bytes die in het resultaat moeten worden geretourneerd.
Afkapping van resultatenset uitschakelen Schakel het afkappen van resultaten in of uit met behulp van de notruncation aanvraagoptie.
Aanvullende set-instructies Hiermee stelt u queryopties in voor de duur van de query. Queryopties bepalen hoe een query wordt uitgevoerd en resultaten retourneert. Meerdere set-instructies kunnen worden gescheiden door puntkomma's.

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 bijna realtime gegevens 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 query's 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.

Een relatieve datum/tijd-operator simuleren

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

In plaats van deze query met behulp 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 Voorbeeld Beschrijving
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-instructies 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.
Hoofdlettergevoelig [CaseInsensitive=true] Hiermee genereert de connector query's die niet hoofdlettergevoelig zijn. Query's gebruiken de =~ operator in plaats van de operator bij het == vergelijken van waarden.
ForceUseContains [ForceUseContains=true] Hiermee genereert de connector query's die worden gebruikt contains in plaats van de standaardinstelling has bij het werken met tekstvelden. Hoewel has dit veel beter presteert, worden er geen subtekenreeksen verwerkt. Ga naar tekenreeksoperators voor meer informatie over het verschil tussen de twee operators.
Timeout [Timeout=#duration(0,10,0,0)] Hiermee configureert u zowel de client- als de servertime-out van de query voor de opgegeven duur.
ClientRequestIdPrefix [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.

Notitie

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

Kusto-querylimieten bereiken

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 ):

geavanceerde opties.

Deze opties geven instructies voor het instellen van problemen 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
  • Door afkapping van resultatensets uit te schakelen wordt 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> gelijk aan en selecteert u vervolgens ALABAMA onder Rijen behouden waarbij 'Staat' staat.

Filter resultaten 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-querytaal) 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. Verbinding maken naar 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 de Optabel met twee tekstwaarden < en >.

  8. De twee kolommen in de tabellen moeten worden gebonden aan de queryparameters met behulp van de selectie van binding met parameters .

    Schermopname met Op is gebonden aan de parameter Op_Param.

Het uiteindelijke rapport bevat slicers voor de twee statische tabellen en eventuele visuals uit de overzichtsverkoop.

Schermopname in Power BI met de selecties voor knippen en op-waarden 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-querytaal).

    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 in runtime 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 in de Geavanceerde editor als volgt weergegeven 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-querytaal fragment in de gegenereerde query ingevoegd 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 besturingsopdrachten naar Kusto te plannen, omdat power BI ervan uitgaat dat alle query's alleen-lezen zijn.