Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Execute DAX Queries API lar deg kjøre DAX-spørringer mot Power BI semantiske modeller og hente resultater programmatisk i Apache Arrow IPC-format, et kolonneformat binært designet for høyytelsesanalyse. Ved å returnere spørringsresultater direkte i Arrow-format, eliminerer API-et serialiseringskostnader og gir applikasjonen tilgang til sterkt typet, analyseklare data.
Hvorfor Arrow?
Det eksisterende Execute Queries-endepunktet returnerer resultater som JSON. Det nyere Execute DAX Queries-endepunktet returnerer resultater utelukkende i Apache Arrow IPC-format, et kolonneformat binært designet for høyytelsesanalyse. Følgende tabell sammenligner de to responsformatene:
| JSON (Execute Queries API) | Arrow (Execute DAX Queries API) | |
|---|---|---|
| Format | Radorientert JSON | Columnar Arrow IPC |
| Nyttelaststørrelse | Større (strengkodingsoverhead) | Mindre (binær, komprimert) |
| Typenøyaktighet | Tapsbasert (alt er streng/tall) | Tapsfri (opprinnelig dato, desimal, int64) |
| Deserialisering | Parse + type-koerce | Nullkopilesing inn i DataFrame |
| Best for | Små spørringer, enkle integrasjoner | Store resultatsett, analysepipelines |
Tips
Bruk Execute DAX Queries API for alle klientapplikasjoner som kan konsumere binære Arrow IPC-strømmer — dette inkluderer Python (pyarrow), C# (Apache.Arrow), Java, Rust, Go og andre språk med Arrow-bibliotekstøtte. For low-code/no-code-plattformer, Power Automate flows eller andre løsninger som kun kan bruke JSON, fortsett å bruke det eldre API-et Execute Queries. Selv om Execute Queries API mangler de avanserte parameterne som er tilgjengelige i Execute DAX Queries (som queryTimeout og resultsetRowcountLimit), forblir det det riktige valget når JSON-utgang kreves.
Apache Arrow IPC-format
Apache Arrow definerer et språkuavhengig kolonneminneformat som har blitt bredt tatt i bruk i dataøkosystemet, noe som gjør det til en av de mest støttede datarepresentasjonene som finnes. Arrow IPC (Inter-Process Communication) strømmeformatet pakker kolonnepostbatcher inn skjemametadata, noe som muliggjør:
- Zero-copy reads — klienter kan mappe svaret direkte inn i minnet uten å måtte parse eller kopiere data mellom buffere.
-
Tverrspråklig støtte — det finnes native biblioteker for Python (
pyarrow), C# (Apache.Arrow), Java, Rust, Go, JavaScript og mer, så du kan konsumere resultater i praktisk talt hvilket som helst språk. - Effektiv komprimering — LZ4-komprimering reduserer nyttelaststørrelsen.
- Skjema-først-design — hver Arrow-strøm starter med en skjemamelding som erklærer kolonnenavn, typer og metadata, slik at klientene kjenner det eksakte dataoppsettet før de leser rader.
DAX til pil-type kartlegging
Execute DAX Queries API kartlegger DAX-datatyper til Arrow-typer som følger:
| DAX-type | Piltype | Merknader |
|---|---|---|
| Heltall (heltall) | int64 |
Direkte 64-bits heltall |
| Desimaltall | double |
Dobbelpresisjons flyttall |
| Valuta (fast desimal) | decimal128(19, 4) |
Tapsfri presisjon på fire desimalplasser |
| Dobbel | double |
Dobbelpresisjons flyttall |
| DatoTid | date64 |
Millisekunder siden Unix-epoken |
| boolsk | bool |
|
| Streng | utf8 |
Ordbok-kodet som standard for effektivitet |
| Binary | binary |
|
| Variant | dense_union |
Union av int64, valuta, bool, dato64, float64, utf8 |
Når man skal bruke Arrow-endepunktet
Bruk Arrow-endepunktet når du:
- Hente mer enn noen hundre rader fra en semantisk modell.
- Feed resultater inn i pandas, polars, Spark eller andre søyleformede prosesseringsrammeverk.
- Bygg en mellomstor tjeneste som proxyer DAX-spørringer for nedstrøms forbrukere.
- Trenger presise numeriske eller datotyper uten manuell typepåvirkning.
For enkle, små spørringer eller raske ad-hoc-oppslag der JSON foretrekkes, er det eldre Execute Queries API-et fortsatt et enkelt valg.
Hensyn og begrensninger
Før du tar i bruk Execute DAX Queries API, bør du gjennomgå følgende forskjeller og begrensninger sammenlignet med det eldre Execute Queries API:
| Execute Queries API | Kjør DAX Queries API | |
|---|---|---|
| Endepunkt | executeQueries |
executeDaxQueries |
| Kapasitetskrav | Fungerer på Pro, PPU og Premium/Fabric | Kun Premium- eller Fabric-kapasitet |
| Leierinnstillinger | Dataset Execute Query REST API (under utviklerinnstillinger) | Dataset Execute Queries REST API (under Developer settings) og Allow XMLA endpoints and Analyze in Excel with on-premises semantic models (under Integration settings) kreves. Tillat tjenesteprincipaler å bruke Power BI APIer (under Developer settings) er kun nødvendig ved autentisering med en tjenesteprincipal. |
| Spørringsinput |
queries[] array (én spørring per kall) |
Enkelt query streng (flere EVALUATE setninger tillatt) |
| Responsformater | Kun JSON | Kun Arrow IPC |
| Ytterligere parametere | Begrenset |
queryTimeout, resultsetRowcountLimit, schemaOnly, , executionMetricsmemoryLimit |
| Direkteavspilling | Ikke strømmet | Strømmet ende-til-ende (chunked transfer) |
| Begrensninger for resultatstørrelse | Hard grense på 100 000 rader og 1 000 000 verdier per spørring | Ingen fast rad- eller verdigrense (bruk resultsetRowcountLimit for å sette tak om nødvendig) |
| Paginering | Støttes ikke | Ikke støttet — bruk TOPN eller resultsetRowcountLimit for store resultater |
| Arrow-bibliotek kreves | Nei (kun JSON) | Ja — et Arrow-bibliotek (for eksempel pyarrow eller Apache.Arrow) er nødvendig for å deserialisere svaret |