Zdieľať cez


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 Power Query SDK
  • Vytvorenie základnej funkcie na vyžiadanie údajov zo zdroja
  • Testovanie konektora v súprave SDK doplnku Power Query
  • 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 ich v súprave Power Query SDK.

Otvorte Visual Studio Code. Odporúčame, aby ste vytvorili nový pracovný priestor a potom vytvorili nový projekt rozšírenia. Ak chcete vytvoriť projekt nového rozšírenia, otvorte prieskumníka a v časti Power Query SDK vyberte tlačidlo Vytvoriť projekt rozšírenia.

Snímka obrazovky s dôrazom na možnosť vytvorenia projektu rozšírenia súpravy Power Query SDK.

Po výbere tohto tlačidla sa zobrazí výzva na zadanie názvu nového projektu. Pomenujte tento nový projekt TripPin.

Snímka obrazovky projektu nového rozšírenia vytvoreného s názvom TripPin pomocou súpravy SDK doplnku Power Query.

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
  • Publikujete záznam zdroja údajov, ktorý umožňuje, aby sa konektor zobrazil v dialógovom okne Získať údaje doplnku Power Query.

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

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

Pred otestovaním konektora musíte vytvoriť. Ak to chcete urobiť, prejdite do terminálu a vyberte možnosť Spustiť úlohu vytvárania... (Klávesová skratka Ctrl + Shift + B). Odporúčame vybrať možnosť MakePQX , ale obe možnosti dostupné na vytvorenie by mali fungovať.

Snímka obrazovky ukazujúca spustenie úlohy zostavy pred testovaním konektora.

Výsledkom tejto operácie sa vytvorí nový priečinok Bin , v ktorom je vytvorený konektor uložený vo formáte TripPin.mez.

Snímka obrazovky znázorňujúca nový priečinok priehradky, v ktorom sa nachádza súbor konektora s príponou mez a názov TripPin.mez.

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. Pomocou nástrojov dostupných v súprave SDK doplnku Power Query:

  1. Vyberte možnosť Nastaviť poverenia.
  2. Ako zdroj údajov vyberte možnosť TripPin .
  3. Ako súbor dotazu /testu vyberte súbor TripPin.query.pq .
  4. Ako typ overenia vyberte anonymné .

V dialógovom okne výstupu sa zobrazí hlásenie potvrdzujúce, že ste nastavili prihlasovacie údaje pre zdroj údajov a podrobnosti o každom vytvorenom prihlasovacom údaji.

Snímka obrazovky dialógového okna výstupu zobrazujúca podrobnosti o novovytvorenom overení pre trippin connectur pomocou URL adresy odovzdanej v súbore .query.pq.

Poznámka

Prihlasovacie údaje môžete vždy vymazať pomocou príkazu Vymazať VŠETKY poverenia alebo skontrolovať dostupné poverenia pomocou príkazu Zoznam prihlasovacích údajov v rámci nástrojov SDK doplnku Power Query.

Keď máte prihlasovacie údaje teraz na svojom mieste, vyberte súbor TripPin.query.pq a pravým tlačidlom vyberte v dokumente vyhodnotenie aktuálneho súboru power query alebo použite možnosť vyhodnotiť aktuálny súbor z nástrojov Súpravy Power Query SDK.

Snímka obrazovky znázorňujúca viacero alternatív na vyhodnotenie aktuálneho súboru Power Query.

Dialógové okno výstupu zobrazí hlásenie výsledkov z vášho vyhodnotenia a tiež nové okno s názvom Výsledok PQTest.

Snímka obrazovky znázorňujúca okno výsledkov PQTest zobrazujúce výsledky vykonaného hodnotenia.

Okno výsledku PQTest sa skladá z troch kariet:

  • Výstup: Zobrazí ukážku údajov v mriežke.
  • Súhrn: Všeobecné podrobnosti hodnotenia, ako napríklad StartTime, EndTime, Duration, súbor použitý na vyhodnotenie, stav a ďalšie.
  • DataSource: poskytuje informácie o zdroji údajov, ktorý bol použitý z druhu, názvu funkcie a cesty.

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

Dôležité

Vždy uložte súbory počas práce. Ak vykonáte zmeny v súbore TripPin.pq, mali by ste vždy spustiť nasledujúcu úlohu zostavy, aby ste sa uistili, že testujete na základe najnovšej verzie konektora.

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 explicitné skladanie logiky, 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ý tak nie je. 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. Vytvorte adresár [Moje dokumenty]\Power BI Desktop\Vlastné Pripojenie or.
  2. Skopírujte súbor rozšírenia (TripPin.mez) do tohto adresára.
  3. 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).>
  4. Reštartujte aplikáciu Power BI Desktop.
  5. 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.

Dialógové okno Načítať údaje.

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.

Vyvolať funkciu.

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.

Obrázok výzvy na zadanie poverení nastavený na anonymné a nastavenie úrovne nastavené na najkratšiu URL adresu.

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.

Navigačná tabuľka.

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.

Záznam mi.

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á 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á. 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 vlastný konektor nebude podporovať rovnaký rozsah možností ako informačný kanál OData.

Ďalšie kroky

TripPin Part 2 – Data Pripojenie or for a REST Service