Execute DAX Queries REST API:n hallinta

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.

kaavio, joka esittää Execute DAX Queries REST API -arkkitehtuurin. Asiakassovellukset (Python, C#, PowerShell) lähettävät POST-pyyntöjä ja vastaanottavat Arrow IPC -virtoja Power BI -palvelusta. Arrow-virran käsittelyputki näyttää kuusi asiakaspuolen vaihetta: Vastaanotto, Deserialisoi, Validointi, Materialisointi, Muunna ja Kulutus.

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