Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med API:et Kör DAX-frågor kan du köra DAX-frågor mot Power BI semantiska modeller och hämta resultat programmatiskt i Apache Arrow IPC-format, ett binärt kolumnformat som är utformat för analys med höga prestanda. Genom att returnera frågeresultat direkt i Pilformat eliminerar API:et serialiseringskostnaderna och ger ditt program åtkomst till starkt maskinskrivna, analysklara data.
Varför Arrow?
Den befintliga Slutpunkt för att utföra frågor returnerar resultat som JSON. Den nyare slutpunkten för att köra DAX-frågor returnerar resultat exklusivt i Apache Arrow IPC-format, ett binärt kolumnformat som är utformat för högpresterande analys. I följande tabell jämförs de två svarsformaten:
| JSON (Execute Queries API) | Arrow (kör DAX-fråge-API) | |
|---|---|---|
| Format | Radorienterad JSON | Columnar Arrow IPC |
| Nyttolaststorlek | Större (omkostnader för strängkodning) | Mindre (binär, komprimerad) |
| Typåtergivning | Förlust (allt är sträng/tal) | Förlustfri (ursprungligt datum, decimal, int64) |
| Deserialisering | Parsa + typ framtvinga | Ingen kopiering har lästs in i DataFrame |
| Bäst för | Små frågor, enkla integreringar | Stora resultatuppsättningar, analyspipelines |
Tips/Råd
Använd API:et Kör DAX-frågor för alla klientprogram som kan använda binära Arrow IPC-strömmar – detta omfattar Python (pyarrow), C# (Apache.Arrow), Java, Rust, Go och andra språk med stöd för Arrow-bibliotek. För plattformar med låg kod/ingen kod, Power Automate flöden eller andra lösningar som bara kan använda JSON fortsätter du att använda äldre Execute-frågor API. API:et 'Utför frågor' saknar de avancerade parametrar som är tillgängliga i 'Utför DAX-frågor' (till exempel queryTimeout och resultsetRowcountLimit), men det är fortfarande det bästa valet när JSON-utfall krävs.
Apache Arrow IPC-format
Apache Arrow definierar ett språkoberoende kolumnminnesformat som har använts brett i dataekosystemet, vilket gör det till en av de mest allmänt tillgängliga datarepresentationerna. Strömningsformatet Arrow IPC (Inter-Process Communication) omsluter kolumnbaserade postbatcher med schemametadata, vilket möjliggör:
- Nollkopieringsläsningar – klienter kan mappa svaret direkt till minnet utan att parsa eller kopiera data mellan buffertar.
-
Cross-language support – interna bibliotek finns för Python (
pyarrow), C# (Apache.Arrow), Java, Rust, Go, JavaScript med mera, så att du kan använda resultat på praktiskt taget alla språk. - Effektiv komprimering – LZ4-komprimering minskar nyttolaststorleken.
- Schema-först-design – varje Arrow-ström börjar med ett schemameddelande som deklarerar kolumnnamn, datatyper och metadata, så att klienterna känner till den exakta datalayouten innan de börjar läsa några rader.
DAX-till-Arrow-typmappning
API:et Kör DAX-frågor mappar DAX-datatyper till piltyper på följande sätt:
| DAX-typ | Piltyp | Noteringar |
|---|---|---|
| Heltal | int64 |
Omedelbar 64-bitars heltal |
| Decimal | double |
Flyttal med dubbel precision |
| Valuta (fast decimalpunkt) | decimal128(19, 4) |
Förlustfri precision på fyra decimaler |
| Double | double |
Flyttal med dubbel precision |
| Datum och tid | date64 |
Millisekunder sedan Unix-epoken |
| Boolean | bool |
|
| String | utf8 |
Ordlistekodad som standard för effektivitet |
| Binary | binary |
|
| Variant | dense_union |
Union av int64, valuta, bool, date64, float64, utf8 |
När du ska använda pilslutpunkten
Använd pilslutpunkten när du:
- Hämta mer än några hundra rader från en semantisk modell.
- Mata in resultat i pandas, polars, Spark eller andra ramverk för kolumnbearbetning.
- Skapa en mellannivåtjänst som proxyar DAX-frågor för slutanvändare.
- Behöver exakta numeriska eller datumtyper utan manuell typtvång.
För enkla, små frågor eller snabba ad hoc-sökningar där JSON är att föredra är det äldre EXECUTE Queries API fortfarande ett enkelt val.
Överväganden och begränsningar
Innan du implementerar API:et Kör DAX-frågor bör du granska följande skillnader och begränsningar jämfört med det äldre EXECUTE Queries-API:et:
| Kör api för frågor | Köra DAX-fråge-API | |
|---|---|---|
| Slutpunkt | executeQueries |
executeDaxQueries |
| Kapacitetskrav | Fungerar på Pro, PPU och Premium/Fabric | Premium eller Fabric-kapacitet |
| Abonnentinställningar | REST-API:t för att köra frågor på datauppsättningens (under Utvecklarinställningar) | |
| Frågeindata |
queries[] fält (en sökfråga per anrop) |
Enkel query sträng (flera EVALUATE instruktioner tillåts) |
| Svarsformat | Endast JSON | Endast Arrow IPC |
| Ytterligare parametrar | Limited |
queryTimeout, resultsetRowcountLimit, schemaOnly, executionMetrics, memoryLimit |
| Streaming | Strömmas inte | Strömmad från slutpunkt till slutpunkt (segmenterad överföring) |
| Storleksgränser för resultat | Hård gräns på 100 000 rader och 1 000 000 värden per fråga | Ingen fast rad eller värdegräns (använd resultsetRowcountLimit för att begränsa vid behov) |
| Paginering | Stöds ej | Stöds inte – använd TOPN eller resultsetRowcountLimit för stora resultat |
| Pilbibliotek krävs | Nej (endast JSON) | Ja – ett pilbibliotek (till exempel pyarrow eller Apache.Arrow) krävs för att deserialisera svaret |