TripPin část 1 – Datový konektor pro službu OData
Tento vícedílný kurz popisuje vytvoření nového rozšíření zdroje dat pro Power Query. Tento kurz se má provést postupně – každá lekce vychází z konektoru vytvořeného v předchozích lekcích a postupně přidává do konektoru nové funkce.
V této lekci:
- Vytvoření nového projektu datového Připojení oru pomocí sady Power Query SDK
- Vytvoření základní funkce pro načtení dat ze zdroje
- Testování konektoru v sadě Power Query SDK
- Registrace konektoru v Power BI Desktopu
Vytvoření základního konektoru OData
V této části vytvoříte nový projekt datového Připojení oru, poskytnete některé základní informace a otestujete ho v sadě Power Query SDK.
Otevřete Visual Studio Code. Doporučujeme vytvořit nový pracovní prostor a pak vytvořit nový projekt rozšíření. Pokud chcete vytvořit nový projekt rozšíření, otevřete průzkumníka a v části Power Query SDK vyberte tlačítko Vytvořit projekt rozšíření.
Po výběru tohoto tlačítka se zobrazí výzva k zadání názvu nového projektu. Pojmenujte tento nový projekt TripPin
.
Otevřete soubor TripPin.pq a vložte následující definici konektoru.
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" }
];
Tato definice konektoru obsahuje:
- Záznam definice zdroje dat pro konektor TripPin
- Deklarace, která implicitní (anonymní) je jediným typem ověřování pro tento zdroj.
- Funkce (
TripPinImpl
) s implementací, která volá OData.Feed - Sdílená funkce (
TripPin.Feed
), která nastaví typ parametru naUri.Type
- Záznam publikování zdroje dat, který konektoru umožňuje zobrazit v dialogovém okně Získat data v Power Query
Otevřete soubor TripPin.query.pq. Nahraďte aktuální obsah voláním exportované funkce.
TripPin.Feed("https://services.odata.org/v4/TripPinService/")
Než konektor otestujete, musíte ho sestavit. Uděláte to tak, že přejdete do terminálu a vyberete možnost Spustit úlohu sestavení... (klávesová zkratka Ctrl + Shift + B). Doporučujeme zvolit možnost MakePQX , ale obě možnosti, které jsou k dispozici pro sestavení, by měly fungovat.
Výsledek této operace vytvoří novou složku Bin , ve které je sestavený konektor uložený jako TripPin.mez.
Soubor <project.query.pq> slouží k otestování rozšíření, aniž byste ho museli nasadit do složky přihrádky Power BI Desktopu. Použití nástrojů dostupných v sadě Power Query SDK:
- Vyberte možnost Nastavit přihlašovací údaje.
- Jako zdroj dat vyberte TripPin .
- Jako soubor dotazu nebo testu vyberte soubor TripPin.query.pq.
- Jako typ ověřování vyberte anonymní .
V dialogovém okně výstupu se zobrazí zpráva s potvrzením, že jste pro zdroj dat nastavili přihlašovací údaje a podrobnosti o jednotlivých vytvořených přihlašovacích údajích.
Poznámka:
Přihlašovací údaje můžete kdykoli vymazat pomocí příkazu Vymazat všechny přihlašovací údaje nebo zkontrolovat dostupné přihlašovací údaje pomocí příkazu List credentials v nástrojích sady Power Query SDK.
Teď s přihlašovacími údaji vyberete soubor TripPin.query.pq a buď v dokumentu vyberete pravým tlačítkem, vyhodnoťte aktuální soubor power query, nebo použijte možnost Vyhodnotit aktuální soubor z nástrojů sady Power Query SDK.
V dialogovém okně výstupu se zobrazí zpráva o výsledcích vyhodnocení a také nové okno s názvem PQTest result.
Okno výsledku PQTest se skládá ze tří karet:
- Výstup: Zobrazí náhled dat v mřížce.
- Shrnutí: Obecné podrobnosti vyhodnocení, jako jsou StartTime, EndTime, Duration, soubor použitý pro vyhodnocení, stav a další.
- Zdroj dat: Poskytuje informace o zdroji dat, který byl použit z kind, název funkce a cesta.
Můžete vyzkoušet několik různých adres URL OData v testovacím souboru a zjistit, jak se vrátí různé výsledky. Příklad:
https://services.odata.org/v4/TripPinService/Me
https://services.odata.org/v4/TripPinService/GetPersonWithMostFriends()
https://services.odata.org/v4/TripPinService/People
Soubor TripPin.query.pq může obsahovat jednotlivé příkazy, příkazy let nebo dokumenty s úplnými oddíly.
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é
Při práci nezapomeňte soubory vždy uložit. Pokud v souboru TripPin.pq provedete změny, měli byste vždy aktivovat následnou úlohu sestavení, abyste měli jistotu, že testujete s nejnovější verzí konektoru.
Otevřete Fiddler a zachyťte provoz HTTP a spusťte dotaz. Měli byste vidět několik různých požadavků na services.odata.org vygenerovaný procesem kontejneru mashupu. Vidíte, že přístup ke kořenové adrese URL služby má za následek stav 302 a přesměrování na delší verzi adresy URL. Následující přesměrování je dalším chováním, které z funkcí základní knihovny získáte "zdarma".
Pokud se podíváte na adresy URL, je potřeba si uvědomit, že můžete vidět posouvání dotazů, ke kterým došlo s příkazem SelectColumns
.
https://services.odata.org/v4/TripPinService/People?$select=UserName%2CFirstName%2CLastName
Pokud do dotazu přidáte další transformace, uvidíte, jak ovlivňují vygenerovanou adresu URL.
Toto chování je důležité si uvědomit. I když jste neimplementovali explicitní logiku posouvání, váš konektor tyto funkce dědí z funkce OData.Feed . Příkazy jazyka M jsou schopné – kontexty filtru budou proudit z jedné funkce do druhé, kdykoli je to možné. To se podobá způsobu, jakým funkce zdroje dat používané v rámci vašeho konektoru dědí svůj kontext ověřování a přihlašovací údaje. V pozdějších lekcích nahradíte použití OData.Feed, které má nativní možnosti posouvání, web.contents, který ne. Pokud chcete získat stejnou úroveň funkcí, budete muset použít Table.View
rozhraní a implementovat vlastní explicitní logiku posouvání.
Načtení rozšíření v Power BI Desktopu
Pokud chcete rozšíření použít v Power BI Desktopu, budete muset zkopírovat výstupní soubor projektu konektoru (TripPin.mez) do vašeho vlastního adresáře Připojení orů.
- Vytvořte adresář [Moje dokumenty]\Power BI Desktop\Vlastní Připojení or.
- Zkopírujte soubor s příponou (TripPin.mez) do tohoto adresáře.
- Zaškrtněte políčko (Nedoporučuje se) Povolit načtení libovolného rozšíření bez ověření nebo upozornění v Power BI Desktopu (v části Možnosti souborů>a nastavení>Možnosti>zabezpečení>datových rozšíření).
- Restartujte Power BI Desktop.
- Výběrem možnosti Získat data > zobrazíte dialogové okno Získat data.
Rozšíření můžete vyhledat zadáním jeho názvu do vyhledávacího pole.
Vyberte název funkce a vyberte Připojení. Zobrazí se zpráva třetí strany – pokračujte výběrem možnosti Pokračovat . Zobrazí se dialogové okno vyvolání funkce. Zadejte kořenovou adresu URL služby (https://services.odata.org/v4/TripPinService/
) a vyberte OK.
Vzhledem k tomu, že k tomuto zdroji dat přistupujete poprvé, zobrazí se výzva k zadání přihlašovacích údajů. Zkontrolujte, jestli je vybraná nejkratší adresa URL, a pak vyberte Připojení.
Všimněte si, že místo získání jednoduché tabulky dat se zobrazí navigátor. Důvodem je to, že funkce OData.Feed vrací tabulku se speciálními metadaty, že prostředí Power Query ví, že se má zobrazit jako navigační tabulka. Tento názorný postup popisuje, jak můžete vytvořit a přizpůsobit vlastní navigační tabulku v budoucí lekci.
Vyberte tabulku Já a pak vyberte Transformovat data. Všimněte si, že sloupce už mají přiřazené typy (dobře, většina z nich). Toto je další funkce základní funkce OData.Feed . Pokud se díváte na žádosti ve Fiddleru, uvidíte, že jste načítali dokument $metadata služby. Implementace OData modulu to dělá automaticky k určení schématu služby, datových typů a relací.
Závěr
Tato lekce vás provede vytvořením jednoduchého konektoru založeného na funkci knihovny OData.Feed . Jak jste viděli, k povolení plně funkčního konektoru nad základní funkcí je potřeba malá logika OData
. Další funkce s povolenou rozšiřitelností, například ODBC. Zdroj dat poskytuje podobné možnosti.
V další lekci nahradíte použití OData.Feed méně schopnou funkcí – Web.Contents. Každá lekce implementuje další funkce konektoru, včetně stránkování, detekce metadat/schématu a posouvání dotazů na syntaxi dotazů OData, dokud váš vlastní konektor nepodporuje stejnou škálu funkcí jako OData.Feed.