Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El dax_request complemento ejecuta una consulta de expresiones de análisis de datos (DAX) en un modelo semántico de Power BI y devuelve los resultados como una tabla. Procese la tabla devuelta con operadores estándar del lenguaje de consulta kusto (KQL). Invoque el complemento con el operador evaluate.
El complemento usa el Power BI Execute DAX Queries API, que devuelve los resultados en formato Apache Arrow. El complemento conserva los tipos de columna admitidos cuando convierte la respuesta a una tabla KQL.
Prerequisites
- El modelo semántico debe estar en un área de trabajo asignada a una capacidad Fabric o Power BI Premium.
- La API REST De ejecución de consultas del conjunto de datos, permitir puntos de conexión XMLA y Analizar en Excel con la configuración de inquilino de modelos semánticos locales debe estar habilitada.
- Debe tener permisos de compilación y lectura en el modelo semántico.
- La directiva de llamada de clúster debe permitir
daxllamadas aapi.powerbi.com. Para cambiar esta directiva, necesitaAllDatabasesAdminpermisos oOps.
Syntax
evaluate
dax_request
(
ConnectionString,DaxQuery) [:OutputSchema]
Obtenga más información sobre las convenciones de sintaxis en la documentación de referencia de las convenciones de sintaxis.
Parameters
| Name | Tipo | Required | Description |
|---|---|---|---|
| ConnectionString | string |
Yes | Dirección URL del modelo semántico seguida de ;Impersonate. Para conocer los formatos de dirección URL admitidos, consulte Cadena de conexión. |
| DaxQuery | string |
Yes | Consulta DAX que se va a ejecutar en el modelo semántico. |
| OutputSchema | - | - | Nombres y tipos de las columnas de salida esperadas. Use la sintaxis (ColumnName:ColumnType [, ...]). |
! [NOTA] Se recomienda especificar OutputSchema . Permite a Kusto determinar las columnas y tipos de salida del complemento sin enviar la consulta DAX a Power BI durante la detección de esquemas. La solicitud de Power BI se aplaza en su lugar a la ejecución de consultas, junto con el resto de la consulta KQL. El complemento devuelve un error si el esquema devuelto no es compatible con el esquema declarado.
Cadena de conexión
El cadena de conexión consta de la dirección URL del modelo semántico y la ;Impersonate directiva de autenticación. Use uno de los formatos siguientes:
Modelo semántico en un área de trabajo:
https://api.powerbi.com/v1.0/myorg/groups/WorkspaceId/datasets/SemanticModelId;ImpersonateModelo semántico en Mi área de trabajo:
https://api.powerbi.com/v1.0/myorg/datasets/SemanticModelId;Impersonate
El myorg segmento de ruta de acceso es literal.
*WorkspaceId* y *SemanticModelId* deben ser identificadores únicos globales (GUID). No incluya una cadena de consulta, un fragmento o una ruta de acceso final después de SemanticModelId.
Autenticación y autorización
El complemento usa Microsoft Entra autenticación en nombre de . El motor obtiene un token para el usuario solicitante y envía la consulta DAX en el contexto de seguridad de ese usuario. El usuario debe tener permisos de compilación y lectura en el modelo semántico. Cualquier seguridad de nivel de fila o de nivel de objeto configurada para el usuario se aplica a la consulta.
Use ;Impersonate como directiva de autenticación. No se admite la identidad administrada, la entidad de servicio y la autenticación de clave de aplicación.
Importante
Use un literal de cadena ofuscado para cualquier cadena que contenga información confidencial. Los valores ofuscados no aparecen en el seguimiento de Kusto.
Configurar y llamar a la directiva
El complemento realiza una llamada externa a Power BI. Dado que la directiva de llamada predeterminada bloquea dax las llamadas, un administrador de clústeres debe permitir explícitamente el punto de conexión de Power BI.
El siguiente comando combina una regla restrictiva dax en la directiva de llamada de clúster existente:
.alter-merge cluster policy callout @'[{
"CalloutType": "dax",
"CalloutUriRegex": "api\\.powerbi\\.com.*",
"CanCall": true
}]'
Compruebe la directiva:
.show cluster policy callout
Devoluciones
El complemento devuelve el resultado de la consulta DAX como una tabla KQL. Conserva los tipos de datos de flecha admitidos. Por ejemplo, los valores de Flecha int64, double, utf8, y date-time se asignan a Kusto long, real, stringy datetime, respectivamente.
Power BI devuelve nombres de columna entre corchetes, como [Category]. En KQL, haga referencia a estos nombres con la ['...'] sintaxis, como ['[Category]'].
Warning
El complemento usa el límite de filas predeterminado del Power BI Execute DAX Queries API (resultSetRowCountLimit). Si la consulta DAX genera más filas que este límite, la tabla devuelta puede estar incompleta sin errores. Filtre o agregue datos en la consulta DAX para mantener el resultado dentro del límite. El filtrado o la agregación posterior en KQL no recupera filas omitidas.
Examples
Devolver todas las filas de una tabla
En el ejemplo siguiente se consulta la Sales tabla. El resultado devuelto está sujeto al límite de filas predeterminado de la API.
evaluate dax_request(
'https://api.powerbi.com/v1.0/myorg/groups/<workspace-id>/datasets/<semantic-model-id>;Impersonate',
'EVALUATE Sales')
Procesar los resultados de DAX con Kusto
En el ejemplo siguiente se seleccionan dos columnas en DAX, se resume el resultado en KQL y se filtran por categoría:
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
Filtre y agregue datos en DAX cuando sea posible para reducir la cantidad de datos devueltos a Kusto.
Especificar un esquema de salida
En el ejemplo siguiente se declara el esquema de salida esperado para que Kusto pueda determinar el esquema sin ponerse en contacto con Power BI durante el análisis de consultas. El esquema declarado debe coincidir con el esquema de resultados dinámicos.
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 y resolución |
|---|---|
| Connection string no válidos | Confirme que la dirección URL usa un formato compatible, el área de trabajo y los identificadores de modelo semántico son GUID válidos y la cadena termina con ;Impersonate. |
| No se permite la llamada | Configure la directiva de llamada de clúster para permitir dax llamadas a api.powerbi.com. |
| Error de autenticación o autorización | Confirme que la configuración de inquilino necesaria está habilitada y que el usuario solicitante tiene el permiso Build and Read en el modelo semántico. |
| Error de solicitud HTTP | Asegúrese de servicio Power BI disponibilidad, accesibilidad del punto de conexión y la dirección URL del modelo semántico. |