Miksi kyselyäni suoritetaan useita kertoja?
Kun päivität Power Queryssä, taustalla tehdään paljon, jotta saat käyttökokemuksen sujuvasti ja jotta voit suorittaa kyselysi tehokkaasti ja turvallisesti. Joissakin tapauksissa saatat kuitenkin huomata, että Power Query käynnistää useita tietolähdepyyntöjä, kun tiedot päivitetään. Joskus nämä pyynnöt ovat normaaleja, mutta toisinaan niitä voidaan estää.
Seuraavissa osissa kuvataan muutamia esiintymiä, kun Power Query voi lähettää useita pyyntöjä tietolähteeseen.
Liittimet voivat tehdä useita kutsuja tietolähteeseen eri syistä, kuten metatiedoista, tulosten välimuistiin tallentamisesta, sivuttamisesta ja niin edelleen. Tämä toiminta on normaalia, ja se on suunniteltu toimimaan tällä tavalla.
Samasta tietolähteestä voi ilmetä useita pyyntöjä, jos kyseisestä tietolähteestä haetaan useita kyselyjä. Nämä pyynnöt voidaan tehdä myös tapauksessa, jossa vain yksi kysely viittaa tietolähteeseen. Jos yksi tai useampi muu kysely viittaa tähän kyselyyn, jokainen kysely ja kaikki sen tarvitsemat kyselyt arvioidaan erikseen.
Työpöytäympäristössä tietomallin kaikkien taulukoiden yksittäinen päivitys suoritetaan yksittäisen jaetun välimuistin avulla. Välimuistitallennus voi pienentää useiden samaan tietolähteeseen tehtyjen pyyntöjen todennäköisyyttä, sillä yksi kysely voi hyötyä siitä, että sama pyyntö on jo lähetetty ja tallennettu välimuistiin eri kyselylle. Tästäkin voit kuitenkin saada useita pyyntöjä, koska:
- Tietolähdettä ei tallenneta välimuistiin (esimerkiksi paikalliset CSV-tiedostot).
- Pyyntö tietolähteelle eroaa pyynnöstä, joka oli jo tallennettu välimuistiin jatkokäsittelytoimintojen vuoksi (jotka voivat muuttaa lähteeseen delegointia).
- Välimuisti on liian pieni (mikä on suhteellisen epätodennäköistä).
- Kyselyt suoritetaan suunnilleen samanaikaisesti.
Pilviympäristössä kukin kysely päivitetään käyttämällä omaa erillistä välimuistiaan. Kysely ei siis voi hyötyä samasta pyynnöstä, koska se on jo tallennettu välimuistiin eri kyselyä varten.
Joskus Power Queryn taittokerros voi luoda useita pyyntöjä tietolähteeseen jatkokäsittelyssä suoritettavien toimintojen perusteella. Tällaisissa tapauksissa saatat välttää useita pyyntöjä käyttämällä -toimintoa Table.Buffer
. Lisätietoja: Taulukon puskurointi
Power BI Desktopissa Analysis Services (AS) päivittää tiedot kahden arvioinnin avulla: yksi skeeman noutamiseen, kuten AS tekee pyytämällä nolla riviä, ja toinen tietojen noutamiseen. Jos nollarivisen rakenteen käsittely edellyttää tietojen noutamista, voidaan tehdä tietolähdepyyntöjen kaksoiskappaleita.
Tietosuoja tekee omat arvionsa kustakin kyselystä määrittääkseen, onko kyselyitä turvallinen suorittaa yhdessä. Tämä arviointi voi joskus aiheuttaa useita pyyntöjä tietolähteelle. Merkki siitä, että tietty pyyntö on peräisin tietosuoja-analyysistä, on, että sillä on TOP 1000 -ehto (vaikka kaikki tietolähteet eivät tue tällaista ehtoa). Yleensä tietosuojan poistaminen käytöstä poistaisi top 1000 -pyynnön tai muut tietosuojaan liittyvät pyynnöt päivityksen aikana. Lisätietoja: Tietosuojan palomuurin poistaminen käytöstä
Tietosuojan arviointien tapaan Power Query -editori lataa oletusarvoisesti jokaisen kyselyvaiheen 1 000 ensimmäisen rivin esikatselun. Näiden rivien lataaminen auttaa varmistamaan, että tietojen esikatselu on valmis näytettäväksi heti, kun vaihe valitaan, mutta se voi myös aiheuttaa tietolähdepyyntöjen kaksoiskappaleita. Lisätietoja: Tausta-analyysin poistaminen käytöstä
Erilaiset Power Query -editorin taustatehtävät voivat myös käynnistää ylimääräisiä tietolähdepyyntöjä (esimerkiksi kyselyn delegointi lähteeseen -analyysi, sarakeprofilointi, Power Queryn 1000 rivin esikatselun automaattinen päivitys, joka käynnistyy tulosten lataamisen jälkeen Exceliin jne.).
Voit eristää useiden kyselyiden esiintymiä poistamalla kyselyprosessin tietyt osat käytöstä ja eristääksesi niiden määrän, josta pyyntöjen kaksoiskappaleet ovat peräisin. Jos esimerkiksi aloitat:
- Power Query -editorissa
- Palomuuri on poistettu käytöstä
- Tausta-analyysi on poistettu käytöstä
- Kun sarakkeen profilointi ja muut taustatehtävät on poistettu käytöstä
- [Valinnainen] Teet
Table.Buffer
Tässä esimerkissä sinulla on vain yksi M-arviointi, joka tapahtuu, kun päivität Power Query -editorin esikatselun. Jos päällekkäisiä pyyntöjä esiintyy tässä vaiheessa, ne ovat jotenkin luontaisia siinä, miten kysely tehdään. Jos et ole, ja jos otat aiemmin kuvatut asetukset käyttöön yksi kerrallaan, voit tarkkailla, missä vaiheessa pyyntöjen kaksoiskappaleet alkavat tapahtua.
Seuraavissa osioissa kuvataan nämä vaiheet tarkemmin.
Sinun ei tarvitse yhdistää kyselyä uudelleen tai luoda sitä uudelleen. Avaa testattava kysely Power Query -editorissa. Voit monistaa kyselyn editorissa, jos et halua sekoittaa olemassa olevaa kyselyä.
Seuraava vaihe on tietosuojan palomuurin poistaminen käytöstä. Tässä vaiheessa oletetaan, että et ole huolissasi tietovuodoista lähteiden välillä, joten tietosuojan palomuurin poistaminen käytöstä voidaan tehdä käyttämällä Always ignore Privacy Level -asetuksia, jotka on kuvattu kohdassa Excelin Nopean yhdistämisen asetus tai Ohita yksityisyystasot ja mahdollisesti paranna suorituskykyä -asetus, joka on kuvattu Power BI Desktopin yksityisyystasoissa Power BI Desktopissa.
Muista kumota tämä vaihe ennen normaalin testauksen jatkamista.
Seuraava vaihe on tausta-analyysin poistaminen käytöstä. Tausta-analyysia hallitaan Salli tietojen esikatselun latataminen taustalla -asetuksella, joka on kuvattu kohdassa Power Queryn taustapäivityksen poistaminen käytöstä Power BI:ssä. Voit myös poistaa tämän asetuksen käytöstä Excelissä.
Vaihtoehtoisesti voit myös Table.Buffer
pakottaa kaikki tiedot luettavaksi, mikä jäljittelee kuormituksen aikana tapahtuvia tietoja. Table.Buffer
Käyttö Power Query -editorissa:
Valitse Power Query -editorin kaavarivillä oleva fx-painike uuden vaiheen lisäämiseksi.
Ympäröi kaavarivillä edellisen vaiheen nimi arvolla Table.Buffer(<aiempi vaiheen nimi tulee tähän>). Jos esimerkiksi edellisen vaiheen nimi
Source
oli , kaavarivi näyttää kohteen= Source
. Muokkaa kaavarivin vaihetta ja sano= Table.Buffer(Source)
.
Lisätietoja: Table.Buffer
Suorita testi suorittamalla päivitys Power Query -editorissa.