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 Visual Studio 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 Visual Studió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 Visual Studióban.

Nyissa meg a Visual Studiót, és hozzon létre egy új projektet. A Power Query mappában válassza az Adat Csatlakozás or projektet. Ehhez a mintához állítsa a projekt nevét a következőre TripPin: .

VSProject.

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 BI 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/")

A Start gombra kattintva indítsa el az M Query segédprogramot.

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 Start gombra kattintva (vagy az F5 billentyű lenyomásával) automatikusan lefordítja a bővítményt, és elindítja az M Query segédprogramot.

A lekérdezés első futtatása hitelesítőadat-hibát eredményez. A Power Queryben az üzemeltetési alkalmazás hitelesítőadat-kéréssé konvertálja ezt a hibát. A Visual Studióban hasonló üzenet jelenik meg, amely felhívja, hogy melyik adatforrás hiányzik a hitelesítő adatokból és az adatforrás elérési útjából. Válassza ki az adatforrás elérési útjai közül a legrövidebbet (https://services.odata.org/)– ez az elérési út alatti összes URL-címre alkalmazza a hitelesítő adatokat.

Válassza ki a Névtelen hitelesítő adattípust, majd válassza a Hitelesítő adatok beállítása lehetőséget.

Image of M Query Output dialog, with the Errors tab selected, and the Data Source Path filled in and the Credential Type set to Anonymous.

A párbeszédpanel bezárásához kattintson az OK gombra, majd ismét a Start gombra. Megjelenik egy lekérdezésvégrehajtási állapot párbeszédpanel, végül pedig egy lekérdezés eredménytáblája, amely a lekérdezésből visszaadott adatokat jeleníti meg.

Query results.

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éldául:

  • 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

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 összecsuká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.

  1. A Visual Studióban válassza a Build | Build Solution (F6) a menüsávról. Ez létrehozza a .mez fájlt a projekthez. Alapértelmezés szerint ez a projekt bin\Debug mappájába kerül.
  2. Hozzon létre egy könyvtárat [My Documents]\Power BI Desktop\Custom Connectors .
  3. Másolja a bővítményfájlt ebbe a könyvtárba.
  4. 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).
  5. Indítsa újra a Power BI Desktopot.
  6. 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.

Get Data Dialog.

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.

Invoke Function.

Mivel ez az első alkalom, hogy hozzáfér ehhez az adatforráshoz, a rendszer kérni fogja a hitelesítő adatok megadását. Ellenőrizze, hogy a legrövidebb URL-cím van-e kiválasztva, majd válassza a Csatlakozás.

Image of credential prompt set to Anonymous and the level setting set to the shortest URL.

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.

Nav Table.

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.

Me Record.

Összefoglalá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, nagyon 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.

További lépések

TripPin 2. rész – Rest szolgáltatás adat Csatlakozás or