Povolení DirectQuery pro konektor založený na rozhraní ODBC
Použití integrované funkce Odbc.DataSource jazyka M je doporučený způsob, jak vytvořit vlastní konektory pro zdroje dat, které mají existující ovladač ODBC nebo podporují syntaxi dotazu SQL. Zabalení funkce Odbc.DataSource umožňuje konektoru dědit výchozí chování posouvání dotazů na základě schopností hlášených ovladačem. Toto chování umožňuje modulu M generovat příkazy SQL na základě filtrů a dalších transformací definovaných uživatelem v prostředí Power Query, aniž by musel poskytovat tuto logiku v samotném konektoru.
Rozšíření ODBC můžou volitelně povolit režim DirectQuery, což umožňuje Power BI dynamicky generovat dotazy za běhu bez předběžného vytvoření datového modelu uživatele.
Poznámka
Povolení podpory DirectQuery zvyšuje úroveň složitosti a složitosti vašeho konektoru. Když je DirectQuery povolený, Power BI zabrání modulu M v kompenzaci operací, které nelze plně odeslat do podkladového zdroje dat.
Tento článek předpokládá znalost vytváření základního vlastního konektoru.
Většinu příkladů kódu najdete v ukázce SqlODBC v následujících částech. Další ukázky najdete v adresáři ukázek ODBC.
Modul M poskytuje dvě funkce zdroje dat související s rozhraním ODBC: Odbc.DataSource a Odbc.Query.
Funkce Odbc.DataSource poskytuje výchozí navigační tabulku se všemi databázemi, tabulkami a zobrazeními z vašeho systému. Tato funkce také podporuje posouvání dotazů a umožňuje řadu možností přizpůsobení. Většina rozšíření založených na rozhraní ODBC tuto funkci používá jako primární funkci rozšiřitelnosti. Funkce přijímá dva argumenty – připojovací řetězec a záznam možností, který poskytuje přepsání chování.
Funkce Odbc.Query umožňuje spouštět příkazy SQL prostřednictvím ovladače ODBC. Funguje jako předávací analýza při provádění dotazu. Na rozdíl od funkce Odbc.DataSource neposkytuje funkce posouvání dotazů a vyžaduje, aby dotazy SQL poskytoval konektor (nebo koncový uživatel). Při vytváření vlastního konektoru se tato funkce obvykle používá interně ke spouštění dotazů pro načítání metadat, která nemusí být vystavena prostřednictvím běžných kanálů ODBC. Funkce přijímá dva argumenty – připojovací řetězec a dotaz SQL.
Vlastní konektory můžou přijímat libovolný počet argumentů funkce. Pokud ale chcete zůstat konzistentní s předdefinovanými funkcemi zdroje dat dodávanými s Power Query, doporučujeme následující pokyny:
Vyžadovat minimální sadu parametrů použitých k navázání připojení k vašemu serveru. Čím méně parametrů musí koncoví uživatelé poskytnout, tím jednodušší je používat váš konektor.
Parametry sice můžete definovat s pevným počtem hodnot (například rozevírací seznam v uživatelském rozhraní), ale parametry se zadají před ověřením uživatele. Všechny hodnoty, které lze zjistit programově po ověření uživatele (například název katalogu nebo databáze), by měly být vybrány prostřednictvím Navigátoru. Výchozím chováním funkce Odbc.DataSource je vrácení hierarchické navigační tabulky skládající se z katalogu (databáze), schématu a názvů tabulek. Toto chování je však možné přepsat v rámci vašeho konektoru.
Pokud si myslíte, že uživatelé obvykle vědí, jaké hodnoty mají zadat pro položky, které by vybrali z Navigátoru (například název databáze), nastavte tyto parametry jako volitelné. Parametry, které je možné zjistit programově, by se neměly vyžadovat.
Posledním parametrem funkce by měl být volitelný záznam s názvem "options". Tento parametr obvykle umožňuje pokročilým uživatelům nastavit běžné vlastnosti související s rozhraním ODBC (například
CommandTimeout
), nastavit přepsání chování specifické pro váš konektor a umožňuje budoucí rozšiřitelnost, aniž by to mělo vliv na zpětnou kompatibilitu vaší funkce.Argumenty související se zabezpečením a přihlašovacími údaji nesmí být nikdy součástí parametrů funkce zdroje dat, protože hodnoty zadané v dialogovém okně pro připojení se zachovají do dotazu uživatele. Parametry související s přihlašovacími údaji by se měly zadat jako součást podporovaných metod ověřování konektoru.
Ve výchozím nastavení jsou všechny požadované parametry pro funkci zdroje dat faktorovány do hodnoty Cesta ke zdroji dat, která se používá k identifikaci přihlašovacích údajů uživatele.
I když uživatelské rozhraní integrované funkce Odbc.DataSource poskytuje rozevírací seznam, který uživateli umožňuje vybrat dsN, tato funkce není dostupná prostřednictvím rozšiřitelnosti. Pokud je konfigurace zdroje dat dostatečně složitá, aby vyžadovala plně přizpůsobitelný konfigurační dialog, doporučujeme, abyste koncovým uživatelům předkonfigurovali systémový název DSN a aby vaše funkce převzala název DSN jako textové pole.