Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il dax_request plug-in esegue una query DAX (Data Analysis Expressions) su un modello semantico Power BI e restituisce i risultati come tabella. Elaborare la tabella restituita con operatori KQL (Kusto Query Language) standard. Richiamare il plug-in con l'operatore evaluate.
Il plug-in usa l'API Esegui query DAX Power BI, che restituisce i risultati in formato Apache Arrow. Il plug-in mantiene i tipi di colonna supportati quando converte la risposta in una tabella KQL.
Prerequisites
- Il modello semantico deve trovarsi in un'area di lavoro assegnata a una capacità Fabric o Power BI Premium.
- È necessario abilitare l'API REST Dataset Execute Queries, Allow XMLA endpoints (Consenti endpoint XMLA) e Analyze in Excel con le impostazioni del tenant dei modelli semantici locali.
- È necessario disporre delle autorizzazioni di compilazione e lettura per il modello semantico.
- I criteri di callout del cluster devono consentire
daxi callout aapi.powerbi.com. Per modificare questo criterio, sono necessarieAllDatabasesAdminoOpsautorizzazioni.
Sintassi
evaluate
dax_request
(
ConnectionString,DaxQuery) [:OutputSchema]
Altre informazioni sulle convenzioni di sintassi sono disponibili nella documentazione di riferimento sulle convenzioni della sintassi.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| Stringa di connessione | string |
Yes | URL del modello semantico seguito da ;Impersonate. Per i formati url supportati, vedere Stringa di connessione. |
| DaxQuery | string |
Yes | Query DAX da eseguire sul modello semantico. |
| OutputSchema | - | - | Nomi e tipi delle colonne di output previste. Usare la sintassi (ColumnName:ColumnType [, ...]). |
! [NOTA] È consigliabile specificare OutputSchema . Consente a Kusto di determinare le colonne di output e i tipi del plug-in senza inviare la query DAX a Power BI durante l'individuazione dello schema. La richiesta di Power BI viene invece posticipata all'esecuzione della query, insieme al resto della query KQL. Il plug-in restituisce un errore se lo schema restituito non è compatibile con lo schema dichiarato.
Stringa di connessione
Il stringa di connessione è costituito dall'URL del modello semantico e dalla ;Impersonate direttiva di autenticazione. Utilizzare uno dei seguenti formati:
Modello semantico in un'area di lavoro:
https://api.powerbi.com/v1.0/myorg/groups/WorkspaceId/datasets/SemanticModelId;ImpersonateModello semantico nell'area di lavoro personale:
https://api.powerbi.com/v1.0/myorg/datasets/SemanticModelId;Impersonate
Il segmento di myorg percorso è letterale.
*WorkspaceId* e *SemanticModelId* devono essere identificatori univoci globali (GUID). Non includere una stringa di query, un frammento o un percorso finale dopo SemanticModelId.
Autenticazione e autorizzazione
Il plug-in usa Microsoft Entra'autenticazione on-behalf-of. Il motore ottiene un token per l'utente richiedente e invia la query DAX nel contesto di sicurezza dell'utente. L'utente deve disporre delle autorizzazioni di compilazione e lettura per il modello semantico. Qualsiasi sicurezza a livello di riga o sicurezza a livello di oggetto configurata per l'utente si applica alla query.
Usare ;Impersonate come direttiva di autenticazione. L'identità gestita, l'entità servizio e l'autenticazione della chiave dell'applicazione non sono supportate.
Importante
Usare un valore letterale stringa offuscato per qualsiasi stringa contenente informazioni riservate. I valori offuscati non vengono visualizzati nella traccia Kusto.
Configurare e chiamare criteri
Il plug-in effettua una chiamata esterna a Power BI. Poiché i criteri di callout predefiniti bloccano dax i callout, un amministratore del cluster deve consentire in modo esplicito l'endpoint Power BI.
Il comando seguente unisce una regola restrittiva dax nei criteri di callout del cluster esistenti:
.alter-merge cluster policy callout @'[{
"CalloutType": "dax",
"CalloutUriRegex": "api\\.powerbi\\.com.*",
"CanCall": true
}]'
Verificare i criteri:
.show cluster policy callout
Returns
Il plug-in restituisce il risultato della query DAX come tabella KQL. Mantiene i tipi di dati Arrow supportati. Ad esempio, i valori Arrow , , eseguono date-time rispettivamente il mapping a Kusto long, real, stringe datetime. utf8doubleint64
Power BI restituisce nomi di colonna tra parentesi quadre, ad esempio [Category]. In KQL fare riferimento a questi nomi con la ['...'] sintassi , ad esempio ['[Category]'].
Warning
Il plug-in usa il limite di riga predefinito dell'API Esegui query DAX (resultSetRowCountLimit) Power BI. Se la query DAX produce più righe di questo limite, la tabella restituita può essere incompleta senza errori. Filtrare o aggregare i dati nella query DAX per mantenere il risultato entro il limite. Il filtro o l'aggregazione in seguito in KQL non recupera le righe omesse.
Examples
Restituisce tutte le righe da una tabella
Nell'esempio seguente viene creata una query sulla Sales tabella . Il risultato restituito è soggetto al limite di riga predefinito dell'API.
evaluate dax_request(
'https://api.powerbi.com/v1.0/myorg/groups/<workspace-id>/datasets/<semantic-model-id>;Impersonate',
'EVALUATE Sales')
Elaborare i risultati DAX con Kusto
L'esempio seguente seleziona due colonne in DAX, riepiloga il risultato in KQL e filtra per categoria:
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
Filtrare e aggregare i dati in DAX quando possibile ridurre la quantità di dati restituiti a Kusto.
Specificare uno schema di output
Nell'esempio seguente viene dichiarato lo schema di output previsto in modo che Kusto possa determinare lo schema senza contattare Power BI durante l'analisi delle query. Lo schema dichiarato deve corrispondere allo schema dei risultati live.
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
| Error | Causa e risoluzione |
|---|---|
| Connection string non valido | Verificare che l'URL usi un formato supportato, che l'area di lavoro e gli ID modello semantico siano GUID validi e che la stringa termini con ;Impersonate. |
| Il callout non è consentito | Configurare i criteri di callout del cluster per consentire dax le chiamate a api.powerbi.com. |
| Errore di autenticazione o autorizzazione | Verificare che le impostazioni del tenant necessarie siano abilitate e che l'utente richiedente disponga dell'autorizzazione Di compilazione e lettura per il modello semantico. |
| Errore di richiesta HTTP | Assicurarsi servizio Power BI disponibilità, accessibilità degli endpoint e URL del modello semantico. |