Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Execute DAX Queries API mahdollistaa DAX-kyselyjen ajamisen Power BI semanttisia malleja vastaan ja tulosten hakemisen ohjelmallisesti Apache Arrow IPC -muodossa, joka on saranekemainen binäärimuoto, joka on suunniteltu suorituskykyiseen analytiikkaan. Palauttamalla kyselytulokset suoraan Arrow-muodossa API poistaa sarjoittamisen kuormituksen ja antaa sovelluksellesi pääsyn vahvasti tyypitettyyn, analyysivalmiiseen dataan.
Miksi Arrow?
Nykyinen Execute Queries -päätepiste palauttaa tulokset JSON-muodossa. Uudempi Execute DAX Queries -päätepiste palauttaa tulokset yksinomaan Apache Arrow IPC -muodossa, joka on sarakkeemainen binäärimuoto, joka on suunniteltu korkean suorituskyvyn analytiikkaan. Seuraava taulukko vertaa kahta vastausmuotoa:
| JSON (Execute Queries API) | Arrow (Suorita DAX Queries API) | |
|---|---|---|
| Muoto | Rivipohjainen JSON | Columnar Arrow IPC |
| Hyötykuorman koko | Suurempi (merkkijonokoodin ylimääräinen ylimääräinen) | Pienempi (binäärinen, puristettu) |
| Tyyppiuskollisuus | Häviöllinen (kaikki on merkkijonoa/numeroa) | Häviötön (alkuperäinen päivämäärä, desimaali, int64) |
| Deserialisointi | Jäsentäminen + tyyppipakotus | Nollakopioiden lukeminen DataFrameen |
| Sopii parhaiten | Pienet kyselyt, yksinkertaiset integraatiot | Suuret tulosjoukot, analytiikkaputket |
Vinkki
Käytä Execute DAX Queries API:ta kaikille asiakassovelluksille, jotka voivat käyttää binäärisiä Arrow IPC -virtoja — tähän kuuluvat Python (pyarrow), C# (Apache.Arrow), Java, Rust, Go ja muut Arrow-kirjaston tukikielet. Low-code/no-code-alustoilla, Power Automate-flow-alustoilla tai muilla ratkaisuilla, jotka voivat käyttää vain JSON:ia, jatkavat vanhan Execute Queries API:n käyttöä. Vaikka Execute Queries API:sta puuttuvat Execute DAX Queries -ohjelman kehittyneet parametrit (kuten queryTimeout ja resultsetRowcountLimit), se on edelleen sopiva valinta, kun JSON-tulosta tarvitaan.
Apache Arrow IPC-formaatti
Apache Arrow määrittelee kielestä riippumattoman pylväsmuistimuodon, joka on laajasti otettu käyttöön koko dataekosysteemistössä, tehden siitä yhden laajimmin tuetuista dataesityksistä. Arrow IPC (Inter-Process Communication) -suoratoistoformaatti käärii sarakkemaiset tietueerät skeemametatiedoilla, mahdollistaen:
- Nollakopio-lukemiset — asiakkaat voivat kartoittaa vastauksen suoraan muistiin ilman tietojen jäsentämistä tai kopioimista puskurien välillä.
-
Monikielinen tuki — natiivikirjastoja löytyy Python (
pyarrow), C# (Apache.Arrow), Java, Rust, Go, JavaScript ja muille, joten voit käyttää tuloksia käytännössä millä tahansa kielellä. - Tehokas pakkaus — LZ4-pakkaus pienentää hyötykuorman kokoa.
- Skeemalähtöinen suunnittelu — jokainen nuolivirta alkaa skeemaviestillä, joka ilmoittaa sarakkeiden nimet, tyypit ja metatiedot, joten asiakkaat tietävät tarkan datan asettelun ennen rivien lukemista.
DAX:n ja Arrow-tyyppien kartoitus
Execute DAX Queries API yhdistää DAX-tietotyypit nuolityyppeihin seuraavasti:
| DAX-tyyppi | Nuolityyppi | Huomautuksia |
|---|---|---|
| Kokonaisluku (kokonaisluku) | int64 |
Suora 64-bittinen kokonaisluku |
| Desimaali | double |
Kaksoistarkkuuden liukuluku |
| Valuutta (kiinteä desimaali) | decimal128(19, 4) |
Häviötön neljän desimaalin tarkkuus |
| Kaksinkertainen | double |
Kaksoistarkkuuden liukuluku |
| Päivämäärä ja aika | date64 |
Millisekunteja Unix-aikakaudesta |
| totuusarvo | bool |
|
| Merkkijono | utf8 |
Sanakirjakoodattu oletuksena tehokkuuden vuoksi |
| Binary | binary |
|
| Muuttuja | dense_union |
int64, valuutan, bool, date64, float64, utf8:n yhdistelmä |
Milloin käyttää Arrow-päätepistettä
Käytä Arrow-päätepistettä, kun:
- Hae semanttisesta mallista yli muutama sata riviä.
- Syötä tulokset pandoihin, polaareihin, Sparkiin tai muihin pylväspohjaisiin prosessointikehyksiin.
- Rakenna keskitasoinen palvelu, joka välittää DAX-kyselyt alavirran kuluttajille.
- Tarvitset tarkat numeeriset tai päivämäärätyypit ilman manuaalista tyyppipakkoa.
Yksinkertaisissa, pienissä kyselyissä tai nopeissa ad hoc -hauissa, joissa JSON on suositeltava, vanhempi Execute Queries API on edelleen suoraviivainen valinta.
Huomioitavat asiat ja rajoitukset
Ennen kuin otat käyttöön Execute DAX Queries API:n, tarkastele seuraavia eroja ja rajoituksia verrattuna vanhempaan Execute Queries API:hin:
| Suorita kyselyt API | Suorita DAX Queries API | |
|---|---|---|
| Päätepiste | executeQueries |
executeDaxQueries |
| Kapasiteettivaatimus | Työskentelee Pro-, PPU- ja Premium/Fabric-malleilla | Premium- tai Fabric-kapasiteetti |
| Vuokraajan asetukset | Dataset Execute Queries REST API ( kehittäjäasetuksissa) | Dataset Execute Queries REST API (Developer settings) ja Allow XMLA-päätepisteet ja Analyze in Excel with in-premises semanttic models (Integration settings) ovat pakollisia. Salli palveluperiaatteiden käyttää Power BI rajapintoja (Kehittäjäasetukset) vaaditaan vain palvelukeskeisellä todennuksella. |
| Kyselysyöte |
queries[] taulukko (yksi kysely per kutsu) |
Yksittäinen query merkkijono (useita EVALUATE lauseita sallittu) |
| Vastausmuodot | Vain JSON | Vain Arrow IPC |
| Lisäparametrit | Rajoitettu |
queryTimeout, resultsetRowcountLimit, , schemaOnlyexecutionMetrics, ,memoryLimit |
| Suoratoisto | Ei striimattua | Suoratoisto päästä päähän (chunked transfer) |
| Tuloskokorajoitukset | Kova raja 100 000 riviä ja 1 000 000 arvoa per kysely | Ei kiinteää rivi- tai arvorajaa (käytä resultsetRowcountLimit tarvittaessa rajoitukseen) |
| Sivutus | Ei tuettu | Ei tuettu — käytä TOPN tai resultsetRowcountLimit saa suuria tuloksia |
| Nuolikirjasto vaaditaan | Ei (vain JSON) | Kyllä — Arrow-kirjasto (kuten pyarrow tai Apache.Arrow) tarvitaan vastauksen deserialisoimiseen |