Sdílet prostřednictvím


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í.

Snímek obrazovky s důrazem na možnost vytvoření projektu rozšíření sady Power Query SDK

Po výběru tohoto tlačítka se zobrazí výzva k zadání názvu nového projektu. Pojmenujte tento nový projekt TripPin.

Snímek obrazovky s novým projektem rozšíření vytvořeným s názvem TripPin pomocí sady Power Query SDK

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 na Uri.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.

Snímek obrazovky znázorňující spuštění úlohy sestavení před testováním konektoru

Výsledek této operace vytvoří novou složku Bin , ve které je sestavený konektor uložený jako TripPin.mez.

Snímek obrazovky s novou složkou přihrádky vytvořenou v souboru konektoru s příponou mez a názvem TripPin.mez se nachází na adrese.

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:

  1. Vyberte možnost Nastavit přihlašovací údaje.
  2. Jako zdroj dat vyberte TripPin .
  3. Jako soubor dotazu nebo testu vyberte soubor TripPin.query.pq.
  4. 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.

Snímek obrazovky s dialogovým oknem výstupu zobrazující podrobnosti o nově vytvořeném ověřování pro connectur TripPin pomocí adresy URL předané v souboru .query.pq

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.

Snímek obrazovky s několika alternativami k vyhodnocení aktuálního souboru Power Query

V dialogovém okně výstupu se zobrazí zpráva o výsledcích vyhodnocení a také nové okno s názvem PQTest result.

Snímek obrazovky okna výsledků PQTest zobrazující výsledky provedeného vyhodnocení

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ů.

  1. Vytvořte adresář [Moje dokumenty]\Power BI Desktop\Vlastní Připojení or.
  2. Zkopírujte soubor s příponou (TripPin.mez) do tohoto adresáře.
  3. 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í).
  4. Restartujte Power BI Desktop.
  5. 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.

Dialogové okno Načíst data

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.

Vyvolání funkce

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í.

Obrázek výzvy k zadání přihlašovacích údajů nastavený na Anonymní a nastavení úrovně nastavené na nejkratší adresu URL

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.

Navigační tabulka

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í.

Zaznamenejte mě.

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.

Další kroky

TripPin Část 2 – Datový Připojení or pro službu REST