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.
La API Execute DAX Queries permite ejecutar consultas DAX en modelos semánticos de Power BI y recuperar resultados de manera programática en el Formato IPC de Apache Arrow, un formato binario columnar diseñado para análisis de alto rendimiento. Al devolver los resultados de la consulta directamente en formato flecha, la API elimina la sobrecarga de serialización y proporciona a la aplicación acceso a datos fuertemente tipados y listos para análisis.
¿Por qué Flecha?
El punto de conexión Execute Queries existente devuelve resultados como JSON. El punto de conexión Ejecutar consultas DAX más reciente devuelve resultados exclusivamente en formato IPC de Apache Arrow, un formato binario en columnas diseñado para el análisis de alto rendimiento. En la tabla siguiente se comparan los dos formatos de respuesta:
| JSON (Execute Queries API) | Arrow (Ejecutar la API de consultas DAX) | |
|---|---|---|
| Formato | JSON orientado a filas | IPC de flecha en columnas |
| Tamaño de carga | Mayor tamaño (sobrecarga de codificación de cadenas) | Más pequeño (binario, comprimido) |
| Fidelidad de tipos | Pérdida (todo es cadena/número) | Sin pérdida (fecha nativa, decimal, int64) |
| Deserialización | Parseo y coerción de tipos | Lectura sin copia en DataFrame |
| Mejor para | Consultas pequeñas, integraciones sencillas | Conjuntos de resultados grandes, canalizaciones de análisis |
Sugerencia
Utilice la API de ejecución de consultas DAX para cualquier aplicación cliente que pueda consumir flujos IPC binarios de Arrow. Esto incluye Python (pyarrow), C# (Apache.Arrow), Java, Rust, Go y otros lenguajes con compatibilidad con la biblioteca Arrow. En el caso de plataformas de código bajo o sin código, flujos de Power Automate u otras soluciones que solo pueden consumir JSON, siga usando la API anterior Execute Queries. Aunque la API Execute Queries carece de los parámetros avanzados disponibles en Execute DAX Queries (por queryTimeout ejemplo, y resultsetRowcountLimit), sigue siendo la opción adecuada cuando se requiere la salida JSON.
Formato IPC de Apache Arrow
Apache Arrow define un formato de memoria de columnas independiente del lenguaje que se ha adoptado ampliamente en el ecosistema de datos, lo que lo convierte en una de las representaciones de datos más ampliamente admitidas disponibles. El formato de streaming IPC (Inter-Process Communication) Arrow encapsula lotes de registros en columnas con metadatos de esquema, lo que permite:
- Lecturas de copia cero : los clientes pueden asignar la respuesta directamente a la memoria sin analizar ni copiar datos entre búferes.
-
Compatibilidad entre lenguajes: bibliotecas nativas para Python (
pyarrow), C# (Apache.Arrow), Java, Rust, Go, JavaScript, y más, por lo que puede consumir resultados en prácticamente cualquier lenguaje. - Compresión eficaz : la compresión LZ4 reduce el tamaño de la carga.
- Diseño basado en esquemas: cada secuencia de Arrow comienza con un mensaje de esquema que declara nombres de columna, tipos y metadatos, de modo que los clientes conocen el diseño de datos exacto antes de leer las filas.
Asignación de tipo DAX a Arrow
La API Execute DAX Queries asigna los tipos de datos DAX a los tipos Arrow de la siguiente manera:
| Tipo DAX | Tipo de flecha | Notas |
|---|---|---|
| Entero (número entero) | int64 |
Entero de 64 bits directo |
| Decimal | double |
Punto flotante de precisión doble |
| Moneda (decimal fijo) | decimal128(19, 4) |
Precisión a cuatro cifras decimales sin pérdida |
| Double | double |
Punto flotante de precisión doble |
| DateTime | date64 |
Milisegundos desde la época de Unix |
| Boolean | bool |
|
| String | utf8 |
Codificado por diccionario de forma predeterminada para la eficiencia |
| Binary | binary |
|
| Variant | dense_union |
Unión de int64, moneda, bool, date64, float64, utf8 |
Cuándo usar el punto de conexión Arrow
Utilice el punto final de Arrow cuando:
- Recupere más de unos cientos de filas de un modelo semántico.
- Introduce resultados en pandas, polares, Spark u otros marcos de procesamiento en columnas.
- Cree un servicio intermedio que actúe como proxy para consultas DAX dirigidas a consumidores posteriores.
- Necesita tipos numéricos o de fecha precisos sin coerción de tipos manuales.
Para consultas sencillas, pequeñas o búsquedas rápidas ad hoc en las que se prefiere JSON, la API de ejecución de consultas más antigua sigue siendo una opción sencilla.
Consideraciones y limitaciones
Antes de adoptar la API Ejecutar consultas DAX, revise las siguientes diferencias y restricciones en comparación con la antigua API Ejecutar Consultas:
| Execute Queries API | Ejecución de la API de consultas DAX | |
|---|---|---|
| Punto final | executeQueries |
executeDaxQueries |
| Requisito de capacidad | Funciona en Pro, PPU y Premium/Fabric | Sólo capacidad Premium o Fabric |
| Configuración de inquilino | API REST de ejecución de consultas de conjunto de datos (en Configuración del desarrollador) | |
| Entrada de consulta |
queries[] matriz (una consulta por llamada) |
Una única cadena query (se permiten varias EVALUATE instrucciones) |
| Formatos de respuesta | Solo JSON | IPC solo de Arrow |
| Parámetros adicionales | Limited |
queryTimeout, resultsetRowcountLimit, schemaOnly, , executionMetrics, memoryLimit |
| Streaming | No transmitido | Transmisión de un extremo a otro (transferencia fragmentada) |
| Límites de tamaño de resultado | Límite máximo de 100 000 filas y 1000 000 valores por consulta | Sin límite fijo de filas o valores (use resultsetRowcountLimit para establecer un límite si es necesario) |
| Paginación | No soportado | No compatible: uso TOPN o resultsetRowcountLimit para resultados grandes |
| Biblioteca de flechas necesaria | No (solo JSON) | Sí: se requiere una biblioteca de flechas (como pyarrow o Apache.Arrow) para deserializar la respuesta. |
Contenido relacionado
- Introducción a la API REST Execute DAX Queries (Ejecutar consultas DAX)
- Tutorial: Compilación de un servicio de ejecución de consultas DAX de nivel medio
- Tutorial: extracción de Python de gran volumen para la ciencia de datos
- Mejores prácticas para la API REST para ejecutar consultas DAX
- Referencia de la API REST de ejecución de consultas DAX
- API rest de Power BI