Jaa


Power Queryn kyselysuunnitelma (esikatselu)

Power Queryn kyselysuunnitelma on ominaisuus, joka tarjoaa paremman näkymän kyselyn arviointiin. On hyödyllistä määrittää, miksi tietty kysely ei ehkä delegoida lähteeseen tietyssä vaiheessa.

Käytännöllisen esimerkin avulla tässä artikkelissa esitellään pääasiallinen käyttötapaus ja mahdolliset edut, jotka saadaan kyselysuunnitelmaominaisuuden avulla kyselyvaiheiden tarkasteluun. Tässä artikkelissa käytetyt esimerkit on luotu käyttämällä Azure SQL Serverin AdventureWorksLT-mallitietokantaa, jonka voit ladata AdventureWorksin esimerkkitietokannoista.

Muistiinpano

Power Queryn kyselysuunnitelmaominaisuus on käytettävissä vain Power Query Onlinessa.

Power Queryn kyselysuunnitelmaominaisuuden käytön ehdotettu prosessi tarkastelemalla kyselyn delegoinnin ilmaisimia lähteeseen, tarkista sitten valitun vaiheen kyselysuunnitelma ja toteuta lopuksi kyselysuunnitelman tarkistamisesta saadut muutokset.

Tämä artikkeli on jaettu suositeltujen vaiheiden sarjaan kyselysuunnitelman tulkitsemiseksi. Nämä vaiheet ovat seuraavat:

  1. Tarkista kyselyn delegoinnin ilmaisimet lähteeseen.
  2. Tarkista sen kyselysuunnitelma valitsemalla kyselyn vaihe.
  3. Toteuta kyselyn muutokset.

Seuraavien vaiheiden avulla voit luoda kyselyn omassa Power Query Online -ympäristössäsi.

  1. Valitse Power Query – Valitse tietolähde ja valitse Tyhjä kysely.

  2. Korvaa tyhjän kyselyn komentosarja seuraavalla kyselyllä.

    let
      Source = Sql.Database("servername", "database"),
      Navigation = Source{[Schema = "Sales", Item = "SalesOrderHeader"]}[Data],
      #"Removed other columns" = Table.SelectColumns(Navigation, {"SalesOrderID", "OrderDate", "SalesOrderNumber", "PurchaseOrderNumber", "AccountNumber", "CustomerID", "TotalDue"}),
      #"Filtered rows" = Table.SelectRows(#"Removed other columns", each [TotalDue] > 1000),
      #"Kept bottom rows" = Table.LastN(#"Filtered rows", 5)
    in
      #"Kept bottom rows"
    
  3. database Muuta servername oman ympäristösi nimet ja anna niille oikeat nimet.

  4. (Valinnainen) Jos yrität muodostaa yhteyden paikalliseen ympäristöön palvelimeen ja tietokantaan, muista määrittää yhdyskäytävä kyseistä ympäristöä varten.

  5. Valitse Seuraava.

  6. Valitse Power Query -editori Määritä yhteys ja anna tietolähteesi tunnistetiedot.

Muistiinpano

Jos haluat lisätietoja yhteyden muodostamisesta SQL Serveriin, siirry SQL Server -tietokantaan.

Näiden vaiheiden jälkeen kyselysi näyttää seuraavan kuvan kaltaiselta.

Esimerkkikysely, jossa kyselyn delegoinnin ilmaisimet ovat käytössä.Tämä kysely muodostaa yhteyden SalesOrderHeader-taulukkoon ja valitsee muutamia sarakkeita viidestä viimeisestä tilauksesta, joiden TotalDue-arvo on yli 1000.

Muistiinpano

Tässä artikkelissa käytetään yksinkertaistettua esimerkkiä tämän ominaisuuden esittelyssä, mutta tässä artikkelissa kuvatut käsitteet koskevat kaikkia kyselyitä. Suosittelemme, että sinulla on hyvä tietämys kyselyn delegoimisesta lähteeseen ennen kyselysuunnitelman lukemista. Jos haluat lisätietoja kyselyn delegoimisesta lähteeseen, siirry kohtaan Kyselyn delegoinnin perusteet lähteeseen.

1. Tarkista kyselyn delegoinnin lähteeseen -ilmaisimet

Muistiinpano

Suosittelemme, että luet ennen tämän osion lukemista artikkelin Kyselyn delegointi lähteeseen -ilmaisimet.

Tämän prosessin ensimmäinen vaihe on tarkistaa kysely ja kiinnittää erityistä huomiota kyselyn delegoinnin ilmaisimiin. Tavoitteena on tarkastella vaiheita, jotka on merkitty delegoimatta lähteeseen. Sen jälkeen näet, voisiko yleiskyselyn muutokset delegoida nämä muunnokset kokonaan lähteeseen.

Kyselyn lähteeseen delegoinnin ilmaisimet mallikyselylle Käytössä olevat vaiheet -ruudussa.

Tässä esimerkissä ainoa vaihe, jota ei voi delegoida lähteeseen, on Säilytetyt alimmat rivit, joka on helppo tunnistaa ei-taitetun vaiheen ilmaisimen kautta. Tämä vaihe on myös kyselyn viimeinen vaihe.

Tavoitteena on nyt tarkastella tätä vaihetta ja ymmärtää, mitä delegoidaan takaisin tietolähteeseen ja mitä ei voi delegoida lähteeseen.

2. Tarkista sen kyselysuunnitelma valitsemalla kyselyvaihe

Olet tunnistanut Säilytetyt alimmat rivit -vaiheen kiinnostavaksi vaiheeksi, koska se ei taita takaisin tietolähteeseen. Napsauta vaihetta hiiren kakkospainikkeella ja valitse Näytä kyselysuunnitelma -vaihtoehto. Tämä toiminto näyttää uuden valintaikkunan, joka sisältää kaavion valitun vaiheen kyselysuunnitelmasta.

Kyselysuunnitelma-valintaikkuna, joka esittelee kyselysuunnitelman kaavionäkymän, jossa solmut on yhdistetty riveillä.Power Query yrittää optimoida kyselysi hyödyntämällä laiskuutta arviointia ja kyselyn delegointia lähteeseen, kuten kohdassa Kyselyn delegoinnin perusteet on mainittu. Tämä kyselysuunnitelma edustaa M-kyselyn optimoituja käännöksiä alkuperäiseen kyselyyn, joka lähetetään tietolähteeseen. Se sisältää myös kaikki Power Query -moduulin suorittamat muunnokset. Järjestys, jossa solmut näkyvät, noudattaa kyselyn järjestystä, joka alkaa kyselyn viimeisestä vaiheesta tai tulosteeseen, joka on esitetty kaavion vasemmassa reunassa, ja tässä tapauksessa On Table.LastN-solmu , joka edustaa Säilytetyt alimmat rivit -vaihetta.

Valintaikkunan alaosassa on palkki, jossa on kuvakkeita, joiden avulla voit lähentää tai loitontaa kyselysuunnitelmanäkymää, ja muita painikkeita, joiden avulla voit hallita näkymää. Edellisessä kuvassa tämän palkin Sovita tarkasteluun -vaihtoehtoa käytettiin solmujen arvostamiseen.

Kyselysuunnitelma-valintaikkuna, jossa solmuja suurennetaan näkymän parantamiseksi.

Muistiinpano

Kyselysuunnitelma edustaa optimoituja suunnitelmia. Kun moduuli arvioi kyselyä, se yrittää taittaa kaikki operaattorit tietolähteeksi. Joissain tapauksissa se saattaa jopa järjestää vaiheet sisäisesti uudelleen ja maksimoida lähteeseen delegoinnin. Tätä silmällä pitäen tässä optimoidussa kyselysuunnitelmassa olevat solmut/operaattorit sisältävät yleensä lähteeseen delegoidun tietolähdekyselyn ja operaattorit, joita ei voitu delegoida lähteeseen ja jotka arvioidaan paikallisesti.

Tunnista taitetut solmut muista solmuista

Voit tunnistaa solmut tässä kaaviossa kahdeksi ryhmäksi:

  • Taitetut solmut: Tämä solmu voi olla joko Value.NativeQuery tai tietolähdesolmu, kuten Sql.Database. Ne voidaan myös tunnistaa selitteen etäyhteydellä niiden funktion nimen alla.
  • Ei-taitettavat solmut: Muut taulukko-operaattorit, kuten Table.SelectRows, Table.SelectColumnsja muut funktiot, joita ei voitu delegoida lähteeseen. Ne voidaan myös tunnistaa tunnisteilla Full scan ja Streaming.

Seuraavassa kuvassa näytetään taitetut solmut punaisen suorakulmion sisällä. Muita solmuja ei voitu delegoida takaisin tietolähteeseen. Sinun on tarkistettava muut solmut, koska tavoitteena on yrittää saada kyseiset solmut takaisin tietolähteeseen.

Valintaikkunan alaosassa olevat Kyselysuunnitelma-näkymän ohjausobjektit, joissa on valittuna Sovita näkymään -vaihtoehto. Voit näyttää laajennetut tiedot valitsemalla Näytä tiedot joidenkin solmujen alareunasta. Esimerkiksi solmun Value.NativeQuery tiedoissa näkyy alkuperäinen kysely (SQL:ssä), joka lähetetään tietolähteeseen.

Kyselysuunnitelman Value.NativeQuery-solmun tietonäkymä. Tässä näytetty kysely ei ehkä ole täsmälleen sama kysely kuin tietolähteeseen lähetetty kysely, mutta se on hyvä arvio. Tässä tapauksessa se kertoo tarkalleen, mihin sarakkeisiin Tehdään kysely SalesOrderHeader-taulukosta ja miten se suodattaa kyseisen taulukon käyttämällä TotalDue-kenttää saadakseen vain rivejä, joissa kyseisen kentän arvo on suurempi kuin 1 000. Power Query -moduuli laskee sen vieressä olevan solmun Table.LastN paikallisesti, koska sitä ei voi delegoida lähteeseen.

Muistiinpano

Operaattorit eivät välttämättä täysin vastaa kyselyn komentosarjassa käytettyjä funktioita.

Tarkista taittamattomat solmut ja harkitse toimintoja, joilla muunnos delegoidaan lähteeseen

Olet nyt määrittänyt, mitä solmuja ei voitu delegoida lähteeseen, ja ne arvioidaan paikallisesti. Tässä tapauksessa sillä on Table.LastN vain solmu, mutta muissa skenaarioissa siinä voi olla paljon enemmän.

Tavoitteena on ottaa muutokset käyttöön kyselyssäsi, jotta vaihe voidaan delegoida lähteeseen. Jotkin mahdollisesti käyttöön otettavat muutokset voivat ulottua vaiheiden uudelleenjärjestämisestä vaihtoehtoisen logiikan käyttöön ottaminen kyselyssä, joka on tarkempi tietolähteelle. Tämä ei tarkoita sitä, että kaikki kyselyt ja kaikki toiminnot olisi taitettavissa joidenkin muutosten avulla. Suosittelemme kuitenkin määrittämään kokeiluversion avulla virheen, jos kyselysi voidaan delegoida takaisin lähteeseen.

Koska tietolähde on SQL Server -tietokanta, jos tavoitteena on noutaa viimeiset viisi tilausta taulukosta, hyvä vaihtoehto on hyödyntää TOP - ja ORDER BY -lauseita SQL:ssä. Koska SQL:ssä ei ole BOTTOM-lausetta, Table.LastN PowerQueryn muunnoksen muuntamista ei voi kääntää SQL:ksi. Voit poistaa Table.LastN vaiheen ja korvata sen seuraavasti:

  • Lajittele laskeva vaihe taulukon SalesOrderID-sarakkeen mukaan, koska tämä sarake määrittää, mikä tilaus menee ensin ja mikä on syötetty viimeiseksi.
  • Valitse viisi ylintä riviä taulukon lajittelun jälkeen, tämä muunnos toimii samalla tavalla kuin jos se olisi Säilytetyt alimmat rivit (Table.LastN).

Tämä vaihtoehto vastaa alkuperäistä kyselyä. Vaikka tämä vaihtoehto teoriassa vaikuttaa hyvältä, sinun on tehtävä muutokset nähdäksesi, tekeekö tämä vaihtoehto tämän solmun kokonaan takaisin tietolähteeseen.

3. Ota muutokset käyttöön kyselyssäsi

Ota käyttöön edellisessä osiossa käsitelty vaihtoehto:

  1. Sulje kyselysuunnitelma-valintaikkuna ja siirry takaisin Power Query -editori.

  2. Poista Alimmat rivit -vaihe.

  3. Lajittele SalesOrderID-sarake laskevaan järjestykseen.

    SalesOrderID-sarakkeen lajittelu laskevassa järjestyksessä automaattisen suodattimen valikon avulla.

  4. Valitse tietojen esikatselunäkymän vasemmasta yläkulmasta taulukkokuvake ja valitse vaihtoehto, jossa lukee Säilytä ylimmät rivit. Anna valintaikkunassa numero viisi argumenttina ja valitse OK.

    Taulukko-pikavalikon avulla voit valita Säilytä ylimmät rivit -muunnoksen, jos haluat säilyttää vain viisi ylintä riviä.

Kun muutokset on otettu käyttöön, tarkista kyselyn delegoinnin ilmaisimet uudelleen ja katso, antaako se taitetun ilmaisimen.

Kaikki Kyselyn delegointi lähteeseen -ilmaisimet ovat vihreitä ja osoittavat, että ne voidaan delegoida lähteeseen. Lopullinen taulukko tarjoaa samat rivit eri järjestyksessä. Nyt on aika tarkistaa viimeisimmän vaiheen kyselysuunnitelma, joka on nyt Säilytä ylimmät rivit. Nyt solmut on vain taitettu. Valitse Näytä tiedot -kohdasta Value.NativeQuery sen tarkistamiseksi, mikä kysely lähetetään tietokantaan.

Uusi kyselysuunnitelma, kun muutokset on tehty kyselyyn. Se näyttää nyt vain taitetut solmut, ja Value.NativeQuery näyttää kyselyn arvioivan SQL-lausekkeen kokonaisuudessaan.

Vaikka tässä artikkelissa ehdotetaan, mitä vaihtoehtoa kannattaa käyttää, päätavoitteena on, miten voit tutkia kyselyn delegointia lähteeseen kyselysuunnitelman avulla. Tässä artikkelissa on myös näkyvyys siihen, mitä tietolähteeseen lähetetään ja mitä muunnoksia tehdään paikallisesti.

Voit muokata koodiasi, jotta näet sen vaikutuksen kyselyssäsi. Käyttämällä Kyselyn delegointi lähteeseen -ilmaisimia saat myös paremman käsityksen siitä, mitkä vaiheet estävät kyselyn delegoimisen lähteeseen.