Lue englanniksi

Jaa


Kyselyn delegointi lähteeseen alkuperäisissä kyselyissä

Power Queryssa voit määrittää alkuperäisen kyselyn ja suorittaa sen tietolähteessä. Tietojen tuominen tietokannasta alkuperäisen tietokantakyselyn avulla -artikkelissa kerrotaan, miten tämä prosessi voidaan tehdä useiden tietolähteiden kanssa. Tässä artikkelissa kuvattua prosessia käyttämällä kyselysi ei kuitenkaan hyödynnä kyselyiden delegointia lähteeseen myöhemmissä kyselyvaiheissa.

Tässä artikkelissa esitellään vaihtoehtoinen menetelmä alkuperäisten kyselyjen luomiseksi tietolähteestä Value.NativeQuery-funktion avulla ja kyselyn delegointi lähteeseen -menetelmän pitämiseksi aktiivisena kyselyn myöhempää vaihetta varten.

Huomautus

Suosittelemme, että luet ohjeet kyselyn delegoimisesta lähteeseen ja kyselyn delegoinnin ilmaisimista , jotta ymmärrät paremmin tässä artikkelissa käytetyt käsitteet.

Tuetut tietoyhdistimet

Seuraavissa osissa kuvattu menetelmä koskee seuraavia tietoyhdistimiä:

Yhdistä kohteeseen tietolähteestä

Huomautus

Tässä artikkelissa käytetään tämän prosessin esittelyssä SQL Server -yhdistintä ja AdventureWorks2019-mallitietokantaa. Käyttökokemus voi vaihdella liittimestä toiseen, mutta tässä artikkelissa esitellään perusasiat siitä, miten tuettujen liittimien kyselyiden delegointi lähteeseen -ominaisuus otetaan käyttöön alkuperäisissä kyselyissä.

Kun muodostat yhteyden tietolähteeseen, on tärkeää, että muodostat yhteyden solmuun tai tasoon, jolla haluat suorittaa alkuperäisen kyselyn. Tässä artikkelissa kerrotaan esimerkiksi, että solmu on palvelimen sisäinen tietokantataso.

Näyttökuva yhteysasetusten valintaikkunasta, jossa yhteys AdventureWorks2019-tietokantaan on paikallisessa SQL Server -esiintymässä.

Kun olet määrittänut yhteysasetukset ja toimittanut yhteytesi tunnistetiedot, tietolähteen siirtymisvalintaikkuna avautuu. Siirtymisvalintaikkuna sisältää kaikki käytettävissä olevat objektit, joihin voit muodostaa yhteyden.

Tästä luettelosta on valittava objekti, jossa alkuperäinen kysely suoritetaan (kutsutaan myös kohteeksi). Tässä esimerkissä kyseinen objekti on tietokantataso.

Valitse Power Queryn siirtymisikkunassa tietokantasolmu siirtymisikkunassa ja pidä se painettuna (tai napsauta hiiren kakkospainikkeella) tietokantasolmua ja valitse Muunna tiedot -vaihtoehto. Jos valitset tämän vaihtoehdon, luo uuden kyselyn tietokantasi yleisnäkymästä, joka on kohde, jota tarvitset oman natiivikyselyn suorittamiseen.

Näyttökuva valitse tiedot -kohdasta, jossa käyttäjä napsauttaa tietokantasolmua hiiren kakkospainikkeella siirtymistoiminnossa ja korostaa Muunna tiedot -toimintoa.

Kun kyselysi laskeutuu Power Query -editoriin, vain Lähde-vaiheen pitäisi näkyä Käytössä olevat vaiheet -ruudussa. Tämä vaihe sisältää taulukon, joka sisältää kaikki tietokannan käytettävissä olevat objektit samalla tavalla kuin ne näkyivät Siirtymistoiminto-ikkunassa.

Näyttökuva kyselystä, jossa on vain lähdevaihe.

Value.NativeQuery-funktion käyttäminen

Tämän prosessin tavoitteena on suorittaa seuraava SQL-koodi ja käyttää Power Querylla lisää muunnoksia, jotka voidaan delegoida takaisin lähteeseen.

SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development'

Ensimmäinen vaihe oli määrittää oikea kohde, joka tässä tapauksessa on tietokanta, jossa SQL-koodi suoritetaan. Kun vaihe on saavuttanut oikean tavoitteen, voit valita kyseisen vaiheen – tässä tapauksessa Source-kohdan Käytössä olevat vaiheet -kohdassa – ja lisätä sitten mukautetun vaiheen valitsemalla fx-painikkeen kaavarivillä. Korvaa tässä esimerkissä Source kaava seuraavalla kaavalla:

Value.NativeQuery(Source, "SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development'  ", null, [EnableFolding = true])

Tämän kaavan tärkein osa on sen funktion neljännen parametrin valinnaisen tietueen käyttö, jonka EnableFolding-tietuekentäksi on asetettu true.

Näyttökuva uudesta mukautetusta vaihekaavasta, jossa käytetään Value.NativeQuery-funktiota ja eksplisiittistä SQL-kyselyä.

Huomautus

Lisätietoja Value.NativeQuery-funktiosta on virallisesta ohjeartikkelista.

Kun olet syöttämällä kaavan, näkyviin tulee varoitus, joka edellyttää, että otat käyttöön alkuperäiset kyselyt suoritettavaksi tietyssä vaiheessa. Valitse Jatka, jotta tämä vaihe arvioidaan.

Tämä SQL-lauseke tuottaa taulukon, jossa on vain kolme riviä ja kaksi saraketta.

Näyttökuva, jossa alkuperäisen kyselyn tulokset on arvioitu suhteessa kohdetietokantaan.

Kyselyn taittelun testaaminen

Jos haluat testata kyselyn delegointia lähteeseen kyselystä, voit yrittää käyttää suodatinta mihin tahansa sarakkeeseen ja tarkistaa, näyttääkö käytettyjen vaiheiden kyselyn delegoinnin ilmaisin lähteeseen -vaiheen taitettuna. Tässä tapauksessa voit suodattaa DepartmentID-sarakkeen niin, että arvot eivät ole yhtä suuria kuin kaksi.

Näyttökuva, jossa näytetään, miten DepartmentID-sarake suodatetaan niin, että siinä on vain arvot, jotka eivät ole kahden arvoisia.

Kun olet lisännyt tämän suodattimen, voit tarkistaa, että kyselyn delegoinnin ilmaisimet näyttävät edelleen kyselyn delegoinnin lähteeseen tässä uudessa vaiheessa.

Suodata vaihe, joka näytetään taitettuna takaisin tietolähteeseen käytössä olevien vaiheiden osiossa.

Jos haluat vahvistaa tietolähteeseen lähetettävän kyselyn, voit valita suodatetut rivit -vaiheen ja pitää sen painettuna (tai napsauttaa hiiren kakkospainikkeella) ja valita Näytä kyselysuunnitelma -vaihtoehdon, jos haluat tarkistaa tämän vaiheen kyselysuunnitelman.

Kyselysuunnitelmanäkymässä näet, että solmu, jonka nimi on Value.NativeQuery ja jolla on Näytä tiedot - hyperlinkki. Voit valita tämän hyperlinkin ja tarkastella tarkkaa kyselyä, joka lähetetään SQL Server -tietokantaan.

Alkuperäinen kysely rivitetään toisen SELECT-lausekkeen ympärille, jotta alkuperäisestä luodaan alikysely. Power Query tekee parhaansa optimaalisen kyselyn luomiseksi käytettyjen muunnosten ja alkuperäisen kyselyn mukaisesti.

Näyttökuva Suodatetut rivit -vaiheen kyselysuunnitelmasta.

Vihje

Tilanteissa, joissa saat virheitä, koska kyselyn delegointi lähteeseen ei ole mahdollista, suosittelemme, että yrität vahvistaa vaiheet alkuperäisen alkuperäisen alkuperäisen kyselyn alikyselyksi ja tarkistaa, onko syntaksi- tai kontekstiristiriitoja.