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.
Po výbere tohto tlačidla sa zobrazí výzva na zadanie názvu nového projektu. Pomenujte tento nový projekt TripPin
.
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 naUri.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ť.
Výsledkom tejto operácie sa vytvorí nový priečinok Bin , v ktorom je vytvorený konektor uložený vo formáte 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:
- Vyberte možnosť Nastaviť poverenia.
- Ako zdroj údajov vyberte možnosť TripPin .
- Ako súbor dotazu /testu vyberte súbor TripPin.query.pq .
- 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.
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.
Dialógové okno výstupu zobrazí hlásenie výsledkov z vášho vyhodnotenia a tiež nové okno s názvom Výsledok PQTest.
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.
- Vytvorte adresár [Moje dokumenty]\Power BI Desktop\Vlastné Pripojenie or.
- Skopírujte súbor rozšírenia (TripPin.mez) do tohto adresára.
- 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).>
- Reštartujte aplikáciu Power BI Desktop.
- 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.
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.
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.
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.
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á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.