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:
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.
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
.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.
Selecteer de modus Gegevensverbinding importeren of DirectQuery (alleen power BI Desktop). Meer informatie: Wanneer u de import- of directquerymodus gebruikt
Selecteer OK om door te gaan.
Als u nog geen verbinding met het cluster hebt, selecteert u Aanmelden. Meld u aan met een organisatieaccount en selecteer Verbinding maken.
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.
Verbinding maken naar Azure Data Explorer vanuit Power Query Online
Verbinding maken met Azure Data Explorer vanuit Power Query Online:
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.
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
.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
Selecteer indien nodig de on-premises gegevensgateway in De gegevensgateway.
Als u nog geen verbinding met het cluster hebt, selecteert u Aanmelden. Meld u aan met een organisatieaccount.
Nadat u zich hebt aangemeld, selecteert u Volgende.
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.
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 ):
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.
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
Verbinding maken naar het cluster waar u de functie hebt gemaakt.
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.
Voeg waarden toe aan de parameters en selecteer Toepassen.
Nadat het voorbeeld is weergegeven, selecteert u Gegevens transformeren.
Maak in de Power Query-editor twee parameters, één voor de grenswaarde en één voor de operator.
Ga terug naar de
LargeOrSmallSales
query en vervang de waarden door de queryparameters in de formulebalk.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
Op
tabel met twee tekstwaarden<
en>
.De twee kolommen in de tabellen moeten worden gebonden aan de queryparameters met behulp van de selectie van binding met parameters .
Het uiteindelijke rapport bevat slicers voor de twee statische tabellen en eventuele visuals uit de overzichtsverkoop.
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:
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", [])
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
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.