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.
De dax_request invoegtoepassing voert een DAX-query (Data Analysis Expressions) uit op een Power BI semantisch model en retourneert de resultaten als een tabel. De geretourneerde tabel verwerken met standaard KQL-operators (Kusto Query Language). Roep de invoegtoepassing aan met de evaluate-operator.
De invoegtoepassing maakt gebruik van de Power BI DAX Query's-API uitvoeren, die resultaten retourneert in de Apache Arrow-indeling. De invoegtoepassing behoudt ondersteunde kolomtypen wanneer het antwoord wordt geconverteerd naar een KQL-tabel.
Prerequisites
- Het semantische model moet zich in een werkruimte bevinden die is toegewezen aan een Fabric of Power BI Premium-capaciteit.
- De REST API voor het uitvoeren van gegevenssetquery's, XMLA-eindpunten toestaan en analyseren in Excel met tenantinstellingen voor on-premises semantische modellen moet zijn ingeschakeld.
- U moet beschikken over samenstellings- en leesmachtigingen voor het semantische model.
- Het beleid voor clusterbijschriften moet bijschriften toestaan
dax.api.powerbi.comAls u dit beleid wilt wijzigen, hebt u machtigingen ofOpsmachtigingen nodigAllDatabasesAdmin.
Syntaxis
evaluate
dax_request
(
ConnectionString,DaxQuery) [:OutputSchema]
Meer informatie over syntaxisconventies in de syntaxisconventies voor referentiedocumentatie.
Parameters
| Name | Type | Required | Beschrijving |
|---|---|---|---|
| ConnectionString | string |
Ja | De semantische model-URL gevolgd door ;Impersonate. Zie Verbindingsreeks voor de ondersteunde URL-indelingen. |
| DaxQuery | string |
Ja | De DAX-query die moet worden uitgevoerd op basis van het semantische model. |
| OutputSchema | - | - | De namen en typen van de verwachte uitvoerkolommen. Gebruik de syntaxis (ColumnName:ColumnType [, ...]). |
! [OPMERKING] Het opgeven van OutputSchema wordt aanbevolen. Hiermee kan Kusto de uitvoerkolommen en -typen van de invoegtoepassing bepalen zonder dat de DAX-query naar Power BI wordt verzonden tijdens schemadetectie. De Power BI aanvraag wordt in plaats daarvan uitgesteld tot het uitvoeren van query's, naast de rest van de KQL-query. De invoegtoepassing retourneert een fout als het geretourneerde schema niet compatibel is met het gedeclareerde schema.
Verbindingsstring
De verbindingsreeks bestaat uit de semantische model-URL en de ;Impersonate verificatierichtlijn. Gebruik een van de volgende formaten:
Semantisch model in een werkruimte:
https://api.powerbi.com/v1.0/myorg/groups/WorkspaceId/datasets/SemanticModelId;ImpersonateSemantisch model in Mijn werkruimte:
https://api.powerbi.com/v1.0/myorg/datasets/SemanticModelId;Impersonate
Het myorg padsegment is letterlijk.
*WorkspaceId* en *SemanticModelId* moet GUID's (Globally Unique Identifiers) zijn. Neem geen querytekenreeks, fragment of volgpad op na SemanticModelId.
Verificatie en autorisatie
De invoegtoepassing maakt gebruik van Microsoft Entra namens verificatie. De engine verkrijgt een token voor de aanvragende gebruiker en verzendt de DAX-query in de beveiligingscontext van die gebruiker. De gebruiker moet samenstellings- en leesmachtigingen hebben voor het semantische model. Elke beveiliging op rijniveau of beveiliging op objectniveau die voor de gebruiker is geconfigureerd, is van toepassing op de query.
Gebruik ;Impersonate deze als verificatierichtlijn. Verificatie van beheerde identiteiten, service-principals en toepassingssleutels wordt niet ondersteund.
Important
Gebruik een letterlijke tekenreeks met verborgen tekens voor elke tekenreeks die vertrouwelijke informatie bevat. Verborgen waarden worden niet weergegeven in Kusto-tracering.
Beleid voor bijschriften configureren en bijschriften
De invoegtoepassing roept een externe aanroep uit naar Power BI. Omdat het standaardbijschriftbeleid bijschriften blokkeertdax, moet een clusterbeheerder expliciet het Power BI-eindpunt toestaan.
Met de volgende opdracht wordt een beperkende dax regel samengevoegd in het bestaande clusterbijschriftbeleid:
.alter-merge cluster policy callout @'[{
"CalloutType": "dax",
"CalloutUriRegex": "api\\.powerbi\\.com.*",
"CanCall": true
}]'
Controleer het beleid:
.show cluster policy callout
Returns
De invoegtoepassing retourneert het DAX-queryresultaat als een KQL-tabel. Er blijven ondersteunde pijlgegevenstypen behouden. Bijvoorbeeld: Pijlint64, double, en utf8date-time waarden worden toegewezen aan Kusto long, real, stringen datetime, respectievelijk.
Power BI retourneert kolomnamen tussen haakjes, zoals [Category]. Verwijs in KQL naar deze namen met de ['...'] syntaxis, zoals ['[Category]'].
Warning
De invoegtoepassing gebruikt de standaardrijlimiet van de POWER BI DAX Query's-API (resultSetRowCountLimit) uitvoeren. Als de DAX-query meer rijen produceert dan deze limiet, kan de geretourneerde tabel onvolledig zijn zonder een fout. Filter of aggreger gegevens in de DAX-query om het resultaat binnen de limiet te houden. Als u later filtert of samenvoegt in KQL, worden weggelaten rijen niet hersteld.
Examples
Alle rijen uit een tabel retourneren
In het volgende voorbeeld wordt een query uitgevoerd op de Sales tabel. Het geretourneerde resultaat is onderhevig aan de standaardrijlimiet van de API.
evaluate dax_request(
'https://api.powerbi.com/v1.0/myorg/groups/<workspace-id>/datasets/<semantic-model-id>;Impersonate',
'EVALUATE Sales')
DAX-resultaten verwerken met Kusto
In het volgende voorbeeld worden twee kolommen in DAX geselecteerd, het resultaat in KQL samengevat en gefilterd op categorie:
evaluate dax_request(
'https://api.powerbi.com/v1.0/myorg/groups/<workspace-id>/datasets/<semantic-model-id>;Impersonate',
'EVALUATE SELECTCOLUMNS(Sales, "Category", Sales[Category], "Amount", Sales[Amount])')
| summarize TotalAmount = sum(['[Amount]']) by ['[Category]']
| where ['[Category]'] == 'Electronics'
Tip
Filter en aggreger gegevens in DAX indien mogelijk om de hoeveelheid gegevens te verminderen die naar Kusto worden geretourneerd.
Een uitvoerschema opgeven
In het volgende voorbeeld wordt het verwachte uitvoerschema declareren, zodat Kusto het schema kan bepalen zonder contact op te maken met Power BI tijdens de queryanalyse. Het gedeclareerde schema moet overeenkomen met het liveresultaatschema.
evaluate dax_request(
'https://api.powerbi.com/v1.0/myorg/groups/<workspace-id>/datasets/<semantic-model-id>;Impersonate',
'EVALUATE ROW("cnt", COUNTROWS(Sales), "sumAmt", SUM(Sales[Amount]))')
: (['[cnt]']:long, ['[sumAmt]']:real)
Troubleshooting
| Fout | Oorzaak en oplossing |
|---|---|
| Ongeldige verbindingsreeks | Controleer of de URL gebruikmaakt van een ondersteunde indeling, de werkruimte- en semantische model-id's geldige GUID's zijn en dat de tekenreeks eindigt op ;Impersonate. |
| Bijschrift is niet toegestaan | Configureer het clusterbijschriftbeleid om aanroepen toe te api.powerbi.comstaandax. |
| Verificatie- of autorisatiefout | Controleer of de vereiste tenantinstellingen zijn ingeschakeld en of de aanvragende gebruiker de machtiging Opbouwen en Lezen heeft voor het semantische model. |
| HTTP-verzoekfout | Zorg ervoor Power BI-service beschikbaarheid, eindpunttoegankelijkheid en de semantische model-URL. |