Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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:
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.
Geef in Azure Data Explorer (Kusto) de naam op van uw Azure Data Explorer-cluster. In dit voorbeeld gebruikt
https://help.kusto.windows.netu 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
Opmerking
Mogelijk moet u omlaag schuiven om alle geavanceerde opties en de selectie van de gegevensverbinding weer te geven.
Selecteer de gegevensconnectiviteitsmodus Import 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 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.
Verbinding maken met 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 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.
Geef in Verbinding maken met de gegevensbron de naam op van uw Azure Data Explorer-cluster. In dit voorbeeld gebruikt
https://help.kusto.windows.netu 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 Data gateway.
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 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 ):
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'.
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
Maak verbinding met 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
LargeOrSmallSalesquery 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
Opde tabel met twee tekstwaarden<en>.De twee kolommen in de tabellen moeten worden gebonden aan de queryparameters via de selectie Bind aan parameter.
Het uiteindelijke rapport bevat slicers voor de twee statische tabellen en visuele samenvattingen van de verkoop.
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 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.Stateis een parameter en tijdens de uitvoeringstijd is de query:StormEvents | where State == 'ALABAMA' | take 100Als 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.