Power Query -kyselyn taittaminen

Tämä artikkeli on suunnattu tietomallintajille, jotka kehittävät malleja Power Pivotissa tai Power BI Desktop. Siinä kuvataan, mitä Power Query kyselyn delegointi lähteeseen on ja miksi se on tärkeää tietomallien suunnittelussa. Tässä artikkelissa kuvataan myös tietolähteet ja muunnokset, joiden avulla kyselyt voidaan delegoida lähteeseen, ja miten voidaan selvittää, että Power Query kyselyt voidaan delegoida lähteeseen – joko kokonaan tai osittain.

Kyselyn delegointi lähteeseen on Power Query kyselyn kyky luoda yksittäinen kyselylauseke lähdetietojen noutamista ja muuntamista varten. Power Query koostemoduuli pyrkii tekemään kyselyn delegoinnin lähteeseen aina, kun se on mahdollista tehokkuuden vuoksi.

Kyselyn delegointi lähteeseen on tärkeä aihe tietojen mallinnuksessa monesta syytä:

  • Tuontimallitaulukot: Tuontimallitaulukoiden (Power Pivot tai Power BI Desktop) tietojen päivitys tapahtuu tehokkaasti resurssien käytön ja päivityksen keston suhteen.
  • DirectQuery- ja kaksoistallennustilan taulukot: Kunkin DirectQuery- ja kaksoistallennustilan taulukon (vain Power BI) on perustuttava Power Query kyselyyn, joka voidaan delegoida lähteeseen.
  • Lisäävä päivitys: Lisäävä tietojen päivittäminen (vain Power BI) on tehokasta resurssien käytön ja päivityksen keston suhteen. Itse asiassa Power BI:n lisäävän päivityksen määritysikkuna ilmoittaa varoituksesta, jos se määrittää, että taulukon kyselyn delegointi lähteeseen ei ole mahdollista. Jos sitä ei voida saavuttaa, lisäävän päivityksen tavoite on tappiollinen. Koostemoduuli vaaditaan sitten noutamaan kaikki lähderivit ja käyttämään suodattimia lisäävien muutosten määritykseen.

Kyselyn delegointi lähteeseen voi tapahtua koko Power Query -kyselylle tai sen vaiheiden alijoukolle. Kun kyselyn delegointi lähteeseen ei onnistu – joko osittain tai kokonaan – Power Query koostemoduulin on kompensoitava se käsittelemällä tietojen muunnokset itse. Tämä prosessi voi edellyttää lähdekyselyjen tulosten noutamista, mikä vaatii erittäin paljon resursseja ja on hidasta suurten tietojoukkojen kohdalla.

Suosittelemme, että pyrit tehostamaan mallien suunnittelua varmistamalla, että kyselyn delegointi lähteeseen onnistuu aina, kun se on mahdollista.

Lähteeseen delegointia tukevat lähteet

Useimmat tietolähteet, joissa on kyselykieli, tukevat kyselyn delegointia lähteeseen. Näitä tietolähteitä voivat olla esimerkiksi relaatiotietokannat, OData-syötteet (mukaan lukien SharePoint-luettelot), Exchange ja Active Directory. Kuitenkin tietolähteet, kuten tietuetiedostot, blob-objektit ja verkko, eivät yleensä tue sitä.

Muunnokset, jotka voidaan delegoida lähteeseen

Relaatiotietolähteen muunnokset, joiden kyselyt voidaan delegoida lähteeseen, ovat ne, jotka voidaan kirjoittaa yksittäisenä SELECT-lauseena. SELECT-lause voidaan muodostaa sopivilla WHERE-, GROUP BY- ja JOIN-lauseilla. Se voi sisältää myös sarakelausekkeita (laskutoimituksia), jotka käyttävät SQL-tietokantojen tukemia yleisiä sisäisiä funktioita.

Seuraavassa luettelossa kuvataan muunnokset, joiden kysely voidaan yleisesti ottaen delegoida lähteeseen.

  • Poistetaan sarakkeita.

  • Sarakkeiden nimeäminen uudelleen (SELECT-sarakealiakset).

  • Rivien suodattaminen staattisilla arvoilla tai Power Query parametreilla (WHERE-lauseen predikaatit).

  • Ryhmittely ja yhteenveto (GROUP BY -lause).

  • Tietuesarakkeiden laajentaminen (lähteen viiteavainsarakkeet) kahden lähdetaulukon liittämiseksi (JOIN-lause).

  • Samaan lähteeseen perustuvien lähteeseen delegoitavien kyselyiden ei-sumea yhdistäminen (JOIN-lause).

  • Samaan lähteeseen perustuvien lähteeseen delegoitavien kyselyiden liittaminen (UNION ALL -operaattori).

  • Mukautettujen sarakkeiden lisääminen yksinkertaisella logiikka (SELECT-sarakelausekkeet). Yksinkertainen logiikka viittaa mutkattomaan toimintaan, mahdollisesti myös sellaisten M-funktioiden käyttöön, joilla on SQL-tietolähteessä vastaavia funktioita, kuten matemaattisia tai tekstinkäsittelyfunktioita. Esimerkiksi seuraavat lausekkeet palauttavat OrderDate-sarakearvon vuosiosan (ja palauttavat numeerisen arvon).

    Date.Year([OrderDate])
    
  • Pivotointi ja pivotoinnin poistaminen (PIVOT- ja UNPIVOT-operaattorit).

Muunnokset, jotka estävät delegoinnin lähteeseen

Seuraavassa luettelossa kuvataan muunnokset, jotka estävät kyselyn delegoinnin lähteeseen. Tämän luettelon ei ole tarkoitus olla tyhjentävä luettelo.

  • Eri lähteisiin perustuvien kyselyiden yhdistäminen.

  • Eri lähteisiin perustuvien kyselyiden liittäminen

  • Mukautettujen sarakkeiden lisääminen monimutkaisella logiikalla. Monimutkainen logiikka viittaa sellaisten M-funktioiden käyttöön, joilla ei ole vastaavia funktioita tietolähteessä. Esimerkiksi seuraavat lausekkeet muotoilevat OrderDate-sarakearvoa (ja palauttavat tekstiarvon).

    Date.ToText([OrderDate], "yyyy")
    
  • Indeksisarakkeiden lisääminen.

  • Sarakkeen tietotyypin muuttaminen.

Ota huomioon, että kun Power Query -kysely sisältää useita tietolähteitä, tietolähteen tietosuojatasojen yhteensopimattomuus voi estää kyselyiden delegoimisen lähteeeen. Lisätietoja on artikkelissa Power BI Desktop yksityisyystasot.

Selvitä, milloin kysely voidaan delegoida lähteeseen

Power Query -editori ikkunassa on mahdollista selvittää, milloin Power Query kysely voidaan delegoida lähteeseen. Kun napsautat Kyselyasetukset-ruudussa hiiren kakkospainikkeella viimeistä käytössä olevaa vaihetta ja Näytä alkuperäinen kysely - asetus on käytössä (ei harmaana), koko kysely voidaan delegoida lähteeseen.

Esimerkki selvitettäessä, että Power Query voivat delegoida kyselyn lähteeseen Power BI Desktop.

Huomautus

Näytä natiivi kysely -asetus on käytettävissä vain tietyissä relaatio-DB:n tai SQL:n luovissa liittimissä. Se ei toimi esimerkiksi OData-pohjaisissa liittimillä, vaikka taitto tapahtuu taustassa. Kyselydiagnostiikka-ominaisuus on paras tapa nähdä, mitä lähteeseen delegointia on tapahtunut muille kuin SQL-liittimille (vaikka lähteeseen delegointivaiheita ei eksplisiittisesti korostettu – näet vain tuloksena saatavan URL-osoitteen, joka luotiin).

Jos haluat tarkastella lähteeseen delegoituu kyselyä, valitse Näytä alkuperäinen kysely -vaihtoehto. Näyttöön tulee alkuperäinen kysely, jota Power Query käyttää lähdetiedoissa.

Esimerkki Power BI Desktop alkuperäisestä kyselystä.

Jos Näytä alkuperäinen kysely -asetus ei ole käytössä (harmaa), tämä on todiste siitä, että kaikkia kyselyvaiheita ei voida delegoida lähteeseen. Se voi kuitenkin tarkoittaa, että vaiheiden alijoukko voidaan edelleen delegoida lähteeseen. Kun siirryt taaksepäin edellisestä vaiheesta, voit tarkistaa kunkin vaiheen nähdäksesi, onko Näytä alkuperäinen kysely - asetus käytössä. Jos näin on, olet selvittanut, missä kohtaa vaihejärjestyksessä kyselyn delegointi lähteeseen ei ole enää mahdollista.

Esimerkki selvitettäessä, että Power Query ei voi delegoida kyselyä lähteeseen Power BI Desktop.

Seuraavat vaiheet

Lisätietoja kyselyn delegoinnista lähteeseen ja siihen liittyvistä artikkeleista saat seuraavista lähteistä: