TripPin časť 1 – konektor údajov pre službu OData

Tento kurz s viacerými časťami sa zaoberá vytváraním nového rozšírenia zdroja údajov pre Power Query. Tento kurz sa má uskutočniť postupne – každá lekcia vychádza z konektora vytvoreného v predchádzajúcich lekciách a postupne pridáva nové možnosti do konektora.

V tejto lekcii:

  • Vytvorenie nového projektu Pripojenie údajov alebo pomocou súpravy Visual Studio SDK
  • Vytvorenie základnej funkcie na vyžiadanie údajov zo zdroja
  • Testovanie konektora vo Visual Studiu
  • Registrácia konektora v aplikácii Power BI Desktop

Vytvorenie základného konektora OData

V tejto časti vytvoríte nový projekt Pripojenie údaje, poskytnete základné informácie a otestujete ho vo Visual Studiu.

Otvorte Visual Studio a vytvorte nový projekt. V priečinku Power Query vyberte položku Údaje Pripojenie alebo projekt. Pre túto ukážku nastavte názov projektu na TripPin.

VSProject.

Otvorte súbor TripPin.pq a prilepte do nasledujúcej definície konektora.

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" }
];

Táto definícia konektora obsahuje:

  • Záznam definície zdroja údajov pre konektor TripPin
  • Vyhlásenie, že implicitné (anonymné) je jediným typom overovania pre tento zdroj
  • Funkcia (TripPinImpl) s implementáciou, ktorá volá informačný kanál OData.Feed.
  • Zdieľaná funkcia (TripPin.Feed), ktorá nastaví typ parametra na Uri.Type
  • Publikuje sa záznam zdroja údajov, ktorý umožní, aby sa konektor zobrazil v dialógovom okne Získať údaje v službe Power BI.

Otvorte súbor TripPin.query.pq. Nahraďte aktuálny obsah zavolaním funkcie exportovanej funkcie.

TripPin.Feed("https://services.odata.org/v4/TripPinService/")

Výberom tlačidla Spustiť spustite pomôcku dotazu jazyka M.

Súbor <project.query.pq> sa používa na otestovanie rozšírenia bez toho, aby ste ho museli nasadiť do priečinka v priehradke aplikácie Power BI Desktop. Výberom tlačidla Spustiť (alebo stlačením klávesu F5) sa vaše rozšírenie automaticky skompiluje a spustí sa pomôcka dotazu jazyka M.

Pri prvom spustení dotazu sa zobrazí chyba poverenia. V power query hostiteľská aplikácia skonvertuje túto chybu na výzvu na poverenia. Vo Visual Studiu sa zobrazí podobná výzva, ktorá vás bude hlásiť, v ktorom zdroji údajov chýbajú poverenia, a o jeho ceste k zdroju údajov. Vyberte najkratšiu z ciest k zdroju údajov (https://services.odata.org/) – toto použije vaše prihlasovacie údaje na všetky adresy URL v rámci tejto cesty.

Vyberte typ anonymných poverení a potom vyberte položku Nastaviť poverenia.

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.

Výberom položky OK zatvorte dialógové okno a potom znova vyberte tlačidlo Spustiť . Zobrazí sa dialógové okno so stavom vykonávania dotazu a nakoniec tabuľka Výsledok dotazu zobrazujúca údaje vrátené z vášho dotazu.

Query results.

Môžete vyskúšať niekoľko rôznych URL adries OData v testovacom súbore a zistiť, aké sú vrátené rôzne výsledky. Napríklad:

  • https://services.odata.org/v4/TripPinService/Me
  • https://services.odata.org/v4/TripPinService/GetPersonWithMostFriends()
  • https://services.odata.org/v4/TripPinService/People

Súbor TripPin.query.pq môže obsahovať jednotlivé príkazy, príkazy let alebo úplné dokumenty sekcie.

let
    Source = TripPin.Feed("https://services.odata.org/v4/TripPinService/"),
    People = Source{[Name="People"]}[Data],
    SelectColumns = Table.SelectColumns(People, {"UserName", "FirstName", "LastName"})
in
    SelectColumns

Otvorte aplikáciu Fiddler , aby ste zaznamenávali prenos HTTP a spustili dotaz. Malo by sa zobraziť niekoľko rôznych požiadaviek na services.odata.org vygenerovaných procesom kontajnera mashup. Prístup k koreňovej URL adrese služby má za následok stav 302 a presmerovanie na dlhšiu verziu URL adresy. Sledovaním presmerovaní získate "zdarma" ďalšie správanie zo základných funkcií knižnice.

Všimnite si, že ak sa pozriete na URL adresy, uvidíte postupné posúvanie dotazov, ktoré sa stalo s príkazom SelectColumns . https://services.odata.org/v4/TripPinService/People?$select=UserName%2CFirstName%2CLastName

Ak do dotazu pridáte ďalšie transformácie, uvidíte, ako ovplyvnia vygenerované URL adresy.

Toto správanie je dôležité si uvedomiť. Napriek tomu, že ste neimplementovali explicitú logiku skladania, konektor zdedí tieto možnosti z funkcie OData.Feed . Príkazy jazyka M umožňujú vytváranie – kontexty filtra sa vždy, keď je to možné, budú prúdiť z jednej funkcie do druhej. Je to podobné ako v prípade, akým funkcie zdroja údajov používané v rámci vášho konektora dedia ich kontext overenia a poverenia. V ďalších lekciách nahradíte použitie informačného kanála OData.Feed, ktorý má natívne možnosti skladania, pomocou webového.obsahu, ktorý nie. Ak chcete získať rovnakú úroveň možností, budete musieť použiť Table.View rozhranie a implementovať vlastnú explicitú logiku postupného posúvania.

Načítanie rozšírenia v aplikácii Power BI Desktop

Ak chcete použiť svoje rozšírenie v aplikácii Power BI Desktop, budete musieť skopírovať výstupný súbor svojho projektu konektora (TripPin.mez) do adresára Custom Pripojenie ors.

  1. Vo Visual Studiu vyberte položku Zostaviť | Vytvoriť riešenie (F6) z panela s ponukami. Tým sa vygeneruje súbor .mez pre projekt . Predvolene sa bude ukladať do priečinka bin\Debug vášho projektu.
  2. Vytvorte [My Documents]\Power BI Desktop\Custom Connectors adresár.
  3. Skopírujte súbor rozšírenia do tohto adresára.
  4. Začiarknite možnosť (Neodporúča sa) Povoliť načítanie ľubovoľného rozšírenia bez overenia alebo upozornenia v aplikácii Power BI Desktop (v časti Možnosti súboru>a nastavenia>MožnostiMožnosti>Údajové rozšírenia zabezpečenia).>
  5. Reštartujte aplikáciu Power BI Desktop.
  6. Výberom položky Získať údaje > Viac otvorte dialógové okno Získať údaje .

Svoje rozšírenie môžete vyhľadať zadaním jeho názvu do vyhľadávacieho poľa.

Get Data Dialog.

Vyberte názov funkcie a vyberte položku Pripojenie. Zobrazí sa správa tretej strany – ak chcete pokračovať, vyberte položku Pokračovať . Teraz sa zobrazí dialógové okno vyvolania funkcie. Zadajte koreňovú URL adresu služby (https://services.odata.org/v4/TripPinService/) a vyberte položku OK.

Invoke Function.

Keďže k tomuto zdroju údajov pristupujete prvýkrát, zobrazí sa výzva na zadanie poverení. Skontrolujte, či je vybratá najkratšia URL adresa, a potom vyberte položku Pripojenie.

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

Všimnite si, že namiesto jednoduchej tabuľky s údajmi sa zobrazí navigátor. Dôvodom je , že funkcia OData.Feed vráti tabuľku so špeciálnymi metaúdajmi, ktorú vie prostredie Power Query zobraziť ako tabuľku navigácie. V tomto návode sa dozviete, ako môžete vytvoriť a prispôsobiť vlastnú navigačnú tabuľku v budúcej lekcii.

Nav Table.

Vyberte tabuľku Me (Ja ) a potom vyberte položku Transformovať údaje. Všimnite si, že stĺpce už majú priradené typy (teda väčšinu z nich). Ide o ďalšiu funkciu základnej funkcie informačného kanála OData. Ak si pozriete požiadavky v aplikácii Fiddler, uvidíte, že ste načítali dokument $metadata služby. Implementácia funkcie OData nástroja to automaticky určí schému, typy údajov a vzťahy služby.

Me Record.

Záver

V tejto lekcii sme prešli vytvorením jednoduchého konektora založeného na funkcii knižnice OData.Feed . Ako ste videli, na povolenie plne funkčného konektora nad základnou funkciou je potrebná len veľmi malá logika OData . Ďalšie funkcie povolené rozšíriteľnosť, napríklad ODBC. ZdrojÚdajov, poskytnite podobné možnosti.

V ďalšej lekcii nahradíte použitie informačného kanála OData za funkciu Web.Contents, ktorá je menej funkčná. Každá lekcia implementuje viac funkcií konektora vrátane stránkovania, detekcie metaúdajov/schémy a postupného posúvania dotazov do syntaxe dotazu OData, až kým váš vlastný konektor nebude podporovať rovnaký rozsah možností ako OData.Feed.

Ďalšie kroky

TripPin Part 2 – Data Pripojenie or for a REST Service