TripPin 1. rész – OData-szolgáltatás adatösszekötője
Ez a többrészes oktatóanyag a Power Query új adatforrásbővítményének létrehozását ismerteti. Az oktatóanyagot egymás után kell elvégezni – minden lecke az előző leckékben létrehozott összekötőre épül, és növekményesen új képességeket ad hozzá az összekötőhöz.
Ebben a leckében a következőt fogja:
- Új Data Csatlakozás or-projekt létrehozása a Power Query SDK használatával
- Alapfüggvény létrehozása egy forrásból származó adatok lekéréséhez
- Az összekötő tesztelése a Power Query SDK-ban
- Összekötő regisztrálása a Power BI Desktopban
Alapszintű OData-összekötő létrehozása
Ebben a szakaszban létrehoz egy új Data Csatlakozás or-projektet, megad néhány alapvető információt, és teszteli azt a Power Query SDK-ban.
Nyissa meg a Visual Studio Code-ot. Javasoljuk, hogy hozzon létre egy új munkaterületet, majd hozzon létre egy új bővítményprojektet. Az új bővítményprojekt létrehozásához nyissa meg az explorert, és a Power Query SDK szakaszban válassza a Bővítményprojekt létrehozása gombot.
A gomb kiválasztása után a rendszer kérni fogja, hogy adja meg az új projekt nevét. Nevezze el ezt az új projektet TripPin
.
Nyissa meg a TripPin.pq fájlt, és illessze be az alábbi összekötő definícióját.
section TripPin;
[DataSource.Kind="TripPin", Publish="TripPin.Publish"]
shared TripPin.Feed = Value.ReplaceType(TripPinImpl, type function (url as Uri.Type) as any);
TripPinImpl = (url as text) =>
let
source = OData.Feed(url)
in
source;
// Data Source Kind description
TripPin = [
Authentication = [
Anonymous = []
],
Label = "TripPin Part 1 - OData"
];
// Data Source UI publishing description
TripPin.Publish = [
Beta = true,
Category = "Other",
ButtonText = { "TripPin OData", "TripPin OData" }
];
Ez az összekötő-definíció a következőket tartalmazza:
- A TripPin-összekötő adatforrásdefiníciós rekordja
- Deklaráció, hogy az implicit (névtelen) az egyetlen hitelesítési típus ehhez a forráshoz
- OData.Feed meghívását hívó függvény (
TripPinImpl
) - Egy megosztott függvény (
TripPin.Feed
), amely a paraméter típusát a következőre állítja:Uri.Type
- Adatforrás-közzétételi rekord, amely lehetővé teszi, hogy az összekötő megjelenjen a Power Query Adatok lekérése párbeszédpanelen
Nyissa meg a TripPin.query.pq fájlt. Cserélje le az aktuális tartalmat az exportált függvény hívására.
TripPin.Feed("https://services.odata.org/v4/TripPinService/")
Mielőtt tesztelni tudja az összekötőt, létre kell készítenie. Ehhez nyissa meg a terminált, és válassza a Buildfeladat futtatása... lehetőséget (billentyűparancs: Ctrl + Shift + B). Javasoljuk, hogy a MakePQX lehetőséget válassza, de a buildeléshez elérhető bármelyik lehetőségnek működnie kell.
A művelet eredménye egy új Bin-mappát hoz létre, amelyben a beépített összekötő TripPin.mez néven lesz tárolva.
A <project.query.pq> fájl a bővítmény tesztelésére szolgál anélkül, hogy üzembe kellene helyeznie a Power BI Desktop tárolómappájában. A Power Query SDK-ben elérhető eszközök használata:
- Válassza a hitelesítő adatok beállítását.
- Adatforrásként válassza a TripPin lehetőséget.
- Válassza ki a TripPin.query.pq fájlt lekérdezési/tesztelési fájlként.
- Válassza ki a névtelent hitelesítési típusként.
A kimeneti párbeszédpanelen megjelenik egy üzenet, amely megerősíti, hogy beállította az adatforrás hitelesítő adatait és az egyes létrehozott hitelesítő adatok részleteit.
Feljegyzés
A Hitelesítő adatok törlése parancs használatával bármikor törölheti a hitelesítő adatokat, vagy ellenőrizheti a rendelkezésre álló hitelesítő adatokat a Power Query SDK-eszközök Lista hitelesítő adatai parancsával.
Ha a hitelesítő adatok most már használatban lesznek, válassza a TripPin.query.pq fájlt, és válassza ki a megfelelő lehetőséget a dokumentumban az aktuális Power Query-fájl kiértékeléséhez, vagy használja az aktuális fájl kiértékelését a Power Query SDK-eszközökről.
A kimeneti párbeszédpanelen megjelenik a kiértékelés eredményeinek üzenete, valamint egy új, PQTest eredmény nevű ablak.
A PQTest eredményablak három lapból áll:
- Kimenet: Megjeleníti az adatok előnézetét egy rácson.
- Összegzés: Általános kiértékelési adatok, például StartTime, EndTime, Időtartam, a kiértékeléshez használt fájl, az állapot stb.
- Adatforrás: Információt nyújt a Kind, a Függvény neve és az elérési út által használt adatforrásról.
A tesztfájlban kipróbálhat néhány különböző OData URL-címet, hogy megtudja, milyen eredményeket adnak vissza. Példa:
https://services.odata.org/v4/TripPinService/Me
https://services.odata.org/v4/TripPinService/GetPersonWithMostFriends()
https://services.odata.org/v4/TripPinService/People
A TripPin.query.pq fájl tartalmazhat egyetlen utasítást, let utasítást vagy teljes szakaszos dokumentumokat.
let
Source = TripPin.Feed("https://services.odata.org/v4/TripPinService/"),
People = Source{[Name="People"]}[Data],
SelectColumns = Table.SelectColumns(People, {"UserName", "FirstName", "LastName"})
in
SelectColumns
Fontos
Mindig mentse a fájlokat munka közben. Ha módosítja a TripPin.pq fájlt, mindig aktiválnia kell egy későbbi buildelési feladatot, hogy biztosan tesztelje az összekötő legújabb verzióját.
Nyissa meg a Fiddlert a HTTP-forgalom rögzítéséhez, és futtassa a lekérdezést. Látnia kell néhány különböző kérést a services.odata.org, amelyeket az egyesítő tároló folyamata generál. Láthatja, hogy a szolgáltatás gyökér URL-címének elérése 302-es állapotot eredményez, és átirányítja az URL hosszabb verziójára. A következő átirányítások egy másik viselkedés, amelyet "ingyen" kap az alaptárfüggvényekből.
Egy dolog, amit meg kell jegyezni, ha megtekinti az URL-címeket, az az, hogy láthatja a lekérdezés összecsukását, amely az SelectColumns
utasítással történt.
https://services.odata.org/v4/TripPinService/People?$select=UserName%2CFirstName%2CLastName
Ha további átalakításokat ad hozzá a lekérdezéshez, láthatja, hogy ezek hogyan befolyásolják a létrehozott URL-címet.
Ezt a viselkedést fontos megjegyezni. Bár nem implementál explicit hajtogatási logikát, az összekötő ezeket a képességeket az OData.Feed függvénytől örökli. Az M-utasítások írásra képesek – a szűrőkörnyezetek minden lehetséges esetben átfolynak az egyik függvényből a másikba. Ez a fogalom hasonló ahhoz, ahogyan az összekötőben használt adatforrásfüggvények öröklik a hitelesítési környezetüket és hitelesítő adataikat. A későbbi leckékben az OData.Feed használatát fogja lecserélni, amely natív összecsukási képességekkel rendelkezik, a Web.Contents-ra, ami nem. Az azonos szintű képességek eléréséhez az Table.View
interfészt kell használnia, és implementálnia kell a saját explicit összecsukható logikáját.
A bővítmény betöltése a Power BI Desktopban
Ha a Power BI Desktopban szeretné használni a bővítményt, át kell másolnia az összekötő projekt kimeneti fájlját (TripPin.mez) az Egyéni Csatlakozás ors könyvtárba.
- Hozzon létre egy [Saját dokumentumok]\Power BI Desktop\Egyéni Csatlakozás ors könyvtárat.
- Másolja a bővítményfájlt (TripPin.mez) ebbe a könyvtárba.
- Jelölje be a beállítást (Nem ajánlott) Bármely bővítmény betöltésének engedélyezése ellenőrzés vagy figyelmeztetés nélkül a Power BI Desktopban (a Fájlbeállítások>és beállítások>beállítások>biztonsági>adatkiterjesztések területen).
- Indítsa újra a Power BI Desktopot.
- Az Adatok lekérése párbeszédpanel megnyitásához válassza az Adatok > lekérése továbbiak lehetőséget.
A bővítmény megkereséséhez írja be a nevét a keresőmezőbe.
Válassza ki a függvény nevét, majd válassza a Csatlakozás. Megjelenik egy külső féltől származó üzenet – a folytatáshoz válassza a Folytatás lehetőséget. Ekkor megjelenik a függvényhívás párbeszédpanel. Adja meg a szolgáltatás gyökér URL-címét (https://services.odata.org/v4/TripPinService/
), és válassza az OK gombot.
Mivel ez az első alkalom, hogy hozzáfér ehhez az adatforráshoz, hitelesítő adatokat fog kérni. Ellenőrizze, hogy a legrövidebb URL-cím van-e kiválasztva, majd válassza a Csatlakozás.
Figyelje meg, hogy egyszerű adattábla helyett megjelenik a kezelő. Ennek az az oka, hogy az OData.Feed függvény egy speciális metaadatokat tartalmazó táblát ad vissza, amelyet a Power Query felülete navigációs táblaként tud megjeleníteni. Ez az útmutató bemutatja, hogyan hozhatja létre és szabhatja testre saját navigációs táblázatát egy későbbi leckében.
Jelölje ki a Me táblát, majd válassza az Adatok átalakítása lehetőséget. Figyelje meg, hogy az oszlopokhoz már vannak hozzárendelt típusok (ezek többsége is). Ez a mögöttes OData.Feed függvény egy másik funkciója. Ha megtekinti a kéréseket a Fiddlerben, láthatja, hogy lekérte a szolgáltatás $metadata dokumentumát. A motor OData-implementációja automatikusan meghatározza a szolgáltatás sémáját, adattípusait és kapcsolatait.
Összegzés
Ez a lecke végigvezette az OData.Feed könyvtárfüggvényen alapuló egyszerű összekötő létrehozásán. Mint látta, kevés logikára van szükség ahhoz, hogy egy teljesen működőképes összekötőt engedélyezhessen az OData
alapfüggvényen. Egyéb bővíthetőséget engedélyező függvények, például az ODBC. A DataSource hasonló képességeket biztosít.
A következő leckében az OData.Feed használatát egy kevésbé alkalmas függvényre , a Web.Contents függvényre cseréli. Minden lecke több összekötőfunkciót valósít meg, beleértve a lapozást, a metaadatokat/sémaészlelést és a lekérdezések OData-lekérdezési szintaxisra való összecsukását, amíg az egyéni összekötő nem támogatja az OData.Feed-hez hasonló képességeket.