DirectQueryn käyttöönotto ODBC-pohjaiselle liittimelle
M:n sisäänrakennetun Odbc.DataSource-funktion käyttäminen on suositeltu tapa luoda mukautettuja liittimiä tietolähteille, joilla on aiemmin luotu ODBC-ohjain ja/tai jotka tukevat SQL-kyselyn syntaksia. Odbc.DataSource-funktion rivittämisen avulla liittimesi voi periä oletusarvoisen kyselyn delegointi lähteeseen ohjaimen raportoimien toimintojen perusteella. Tämän toiminnon avulla M-moduuli voi luoda SQL-lausekkeita, jotka perustuvat käyttäjän Power Query -käyttökokemuksessa määrittämiin suodattimiin ja muihin muunnoksiin, eikä tätä logiikkaa tarvitse antaa itse liittimen sisällä.
ODBC-laajennukset voivat halutessaan ottaa DirectQuery-tilan käyttöön, jolloin Power BI voi luoda kyselyjä dynaamisesti suorituksen aikana ilman käyttäjän tietomallin valmistelua.
Huomautus
DirectQuery-tuen käyttöönotto aiheuttaa liittimen vaikeuden ja monimutkaisuuden. Kun DirectQuery on käytössä, Power BI estää M-moduulia kompensoimasta toimintoja, joita ei voida lähettää kokonaan pohjana olevaan tietolähteeseen.
Tässä artikkelissa oletetaan, että opit luomaan mukautetun perusliittimen.
Katso sqlODBC-mallista suurin osa seuraavien osioiden koodiesimerkeistä. Muut näytteet löytyvät ODBC-mallihakemistosta.
M-moduuli tarjoaa kaksi ODBC:hen liittyvää tietolähdefunktiota: Odbc.DataSource ja Odbc.Query.
Odbc.DataSource-funktio tarjoaa oletusarvoisen siirtymistaulukon, joka sisältää kaikki järjestelmän tietokannat, taulukot ja näkymät. Tämä funktio tukee myös kyselyn delegointia lähteeseen, ja se mahdollistaa useita mukautusasetuksia. Useimmat ODBC-pohjaiset laajennukset käyttävät tätä funktiota ensisijaisena laajennettavuusfunktionaan. Funktio hyväksyy kaksi argumenttia – ühendusstring ja asetustietueen toiminnan ohittamiseksi.
Odbc.Query-funktion avulla voit suorittaa SQL-lausekkeita ODBC-ohjaimen kautta. Se toimii kyselyn suorittamisen läpivientinä. Toisin kuin Odbc.DataSource-funktio, se ei tarjoa kyselyn delegointi lähteeseen -toimintoa ja edellyttää, että yhdistin (tai loppukäyttäjä) tarjoaa SQL-kyselyt. Kun luot mukautetun liittimen, tätä funktiota käytetään yleensä sisäisesti kyselyiden suorittamiseen niiden metatietojen noutamiseksi, joita ei välttämättä näytetä tavallisten ODBC-kanavien kautta. Funktio hyväksyy kaksi argumenttia – ühendusstring ja SQL-kyselyn.
Mukautetut liittimet voivat hyväksyä minkä tahansa määrän funktioargumentteja. Jotta Power Querylla toimitettujen sisäänrakennettujen tietolähdefunktioiden johdonmukaisuus säilyy johdonmukaisena, suosittelemme kuitenkin seuraavia ohjeita:
Edellytä palvelimesi yhteyden muodostamiseen käytettyjen parametrien vähimmäisjoukko. Mitä vähemmän parametreja käyttäjien on annettava, sitä helpompi liitintä on käyttää.
Vaikka voit määrittää parametreja kiinteällä määrällä arvoja (esimerkiksi avattava luettelo käyttöliittymässä), parametrit syötetään ennen käyttäjän todentamista. Arvot, jotka voidaan löytää ohjelmallisesti käyttäjän todennuksen jälkeen (kuten luettelo tai tietokannan nimi), on valittava Navigatorin kautta. Odbc.DataSource-funktion oletustoiminta on hierarkkisen siirtymistaulukon palauttaminen. Se sisältää luettelon (tietokanta), rakenteen ja taulukon nimet. Tämä toiminta voidaan kuitenkin ohittaa liittimessä.
Jos tunnet, että käyttäjät yleensä tietävät, mitä arvoja syötetään kohteille, jotka he valitsisivat siirtymistoiminnosta (kuten tietokannan nimen), tee näistä parametreista valinnaisia. Ohjelmallisesti löydettävät parametrit eivät ole pakollisia.
Funktion viimeisen parametrin tulee olla valinnainen tietue nimeltä "options". Tämän parametrin avulla kehittyneet käyttäjät voivat yleensä määrittää yleisiä ODBC:hen liittyviä ominaisuuksia (esimerkiksi
CommandTimeout
), määrittää liittimeesi liittyvät ohitukset ja mahdollistaa jatkossa laajennettavuuden vaikuttamatta yhteensopivuuteen funktiosi kanssa taaksepäin.Tietoturvaan/tunnistetietoihin liittyvät argumentit eivät saa koskaan olla osa tietolähdefunktion parametreja, koska yhdistämisvalintaikkunaan syötetyt arvot pysyvät käyttäjän kyselyssä. Tunnistetietoihin liittyvät parametrit tulee määrittää osana liittimen tuettuja todennusmenetelmiä.
Oletusarvon mukaan kaikki tietolähdefunktion pakolliset parametrit otetaan mukaan tietolähteen polun arvoon, jota käytetään käyttäjän tunnistetietojen tunnistamiseen.
Vaikka sisäänrakennetun Odbc.DataSource-funktion käyttöliittymä sisältää avattavan valikon, jonka avulla käyttäjä voi valita DSN:n, tämä toiminto ei ole käytettävissä laajennettavuuden kautta. Jos tietolähteen määritys on niin monimutkainen, että se edellyttää täysin mukautettavaa määritysvalintaikkunaa, suosittelemme, että edellytät, että loppukäyttäjät määrittävät järjestelmän DSN:n valmiiksi ja että funktiosi ottaa DSN-nimen tekstikenttänä.