Povolenie režimu DirectQuery pre konektor založený na ODBC

Použitie vstavanej funkcie Odbc.DataSource jazyka M je odporúčaným spôsobom vytvorenia vlastných konektorov pre zdroje údajov, ktoré majú existujúci ovládač ODBC a/alebo podporujú syntax dotazu SQL. Zabalenie funkcie Odbc.DataSource umožňuje, aby váš konektor zdedil predvolené správanie pri skladania dotazov na základe možností, ktoré uvádza váš ovládač. To umožní nástroju M generovať príkazy SQL založené na filtroch a iných transformáciách definovaných používateľom v rámci prostredia Power Query bez toho, aby bolo potrebné zadať túto logiku v rámci samotného konektora.

Rozšírenia ODBC môžu voliteľne povoliť režim DirectQuery, čo službe Power BI umožňuje dynamicky generovať dotazy v režime runtime bez toho, aby bolo vopred uložené do vyrovnávacej pamäte dátového modelu používateľa.

Poznámka

Povolenie podpory režimu DirectQuery zvyšuje úroveň obtiažnosti a zložitosti konektora. Keď je režim DirectQuery povolený, Power BI zabráni nástroju M kompenzovať operácie, ktoré nie je možné úplne odoslať do základného zdroja údajov.

Tento článok predpokladá znalosť vytvorenia základného vlastného konektora.

Väčšina príkladov kódu v nasledujúcich častiach nájdete v ukážke rozhrania SqlODBC. Iné vzorky možno nájsť v adresári ukážok ODBC.

Funkcie rozšíriteľnosti rozhrania ODBC

Nástroj M poskytuje dve funkcie zdroja údajov súvisiace s ODBC: Odbc.DataSource a Odbc.Query.

Funkcia Odbc.DataSource poskytuje predvolenú navigačnú tabuľku so všetkými databázami, tabuľkami a zobrazeniami z vášho systému. Táto funkcia tiež podporuje postupné posúvanie dotazov a umožňuje celý rad možností prispôsobenia. Väčšina rozšírení založených na ODBC používa túto funkciu ako svoju primárnu funkciu rozšíriteľnosti. Funkcia akceptuje dva argumenty – reťazec pripojenia a záznam možností, ktoré poskytujú prepísania správania.

Funkcia Odbc.Query umožňuje vykonávať príkazy SQL prostredníctvom ovládača ODBC. Funguje ako passthrough (passthrough) na vykonanie dotazu. Na rozdiel od funkcie Odbc.DataSource neposkytuje funkcie postupného posúvania dotazov a vyžaduje, aby dotazy SQL poskytol konektor (alebo koncový používateľ). Pri vytváraní vlastného konektora sa táto funkcia zvyčajne používa interne na spustenie dotazov na načítanie metaúdajov, ktoré nemusia byť vystavené prostredníctvom bežných kanálov ODBC. Funkcia akceptuje dva argumenty – reťazec pripojenia a dotaz SQL.

Pokyny na funkciu zdroja údajov

Vlastné konektory môžu prijať ľubovoľný počet argumentov funkcie. Ak však chcete zachovať konzistentnosť so vstavanými funkciami zdroja údajov, ktoré sa dodávajú s power query, odporúčajú sa tieto pokyny:

  • Vyžadovať minimálnu množinu parametrov používaných na vytvorenie pripojenia k serveru. Čím menej parametrov musia koncoví používatelia poskytnúť, tým jednoduchšie sa bude používať konektor.

  • Napriek tomu, že môžete definovať parametre s pevným počtom hodnôt (teda rozbaľovacieho zoznamu v používateľskom rozhraní), parametre sa zadávajú pred overení používateľa. Všetky hodnoty, ktoré je možné zistiť pomocou programovania po overení používateľa (napríklad katalóg alebo názov databázy), je potrebné vybrať prostredníctvom navigátora. Predvoleným správaním funkcie Odbc.DataSource je vrátiť hierarchickú navigačnú tabuľku pozostávajúcu z katalógu (databázy), schémy a názvov tabuliek. Toto správanie však môže byť prepísané v rámci konektora.

  • Ak máte pocit, že používatelia zvyčajne vedia, aké hodnoty majú zadať pre položky, ktoré by vybrali v navigátore (napríklad názov databázy), tieto parametre by boli voliteľné. Parametre, ktoré je možné zistiť pomocou programovania, by sa nemali vytvárať pomocou programovania.

  • Posledným parametrom funkcie by mal byť voliteľný záznam s názvom "možnosti". Tento parameter zvyčajne umožňuje pokročilým používateľom nastaviť bežné vlastnosti súvisiace s ROZHRANÍm ODBC (napríklad CommandTimeout), nastaviť prepísania správania špecifické pre váš konektor a umožňuje budúcu rozšíriteľnosť bez vplyvu spätnej kompatibility pre vašu funkciu.

  • Argumenty zabezpečenia alebo poverení nesmú byť nikdy súčasťou vašich parametrov funkcie zdroja údajov, pretože hodnoty zadané v dialógovom okne pripojenia budú trvalé pre dotaz používateľa. Parametre týkajúce sa poverení by mali byť zadané ako súčasť podporovaných metód overovania konektora.

Predvolene sú všetky požadované parametre pre funkciu zdroja údajov zahrnuté do hodnoty Cesta k zdroju údajov, ktorá sa používa na identifikáciu prihlasovacích údajov používateľa.

Zatiaľ čo používateľské rozhranie vstavanej funkcie Odbc.DataSource poskytuje rozbaľovací zoznam, ktorý umožňuje používateľovi vybrať DSN, táto funkcia nie je k dispozícii prostredníctvom rozšíriteľnosti. Ak je konfigurácia zdroja údajov dosť zložitá na to, aby vyžadovala plne prispôsobiteľné dialógové okno konfigurácie, odporúčame, aby ste od vašich koncových používateľov vyžadovali predbežnú konfiguráciu systému DSN a aby sa funkcia v názve DSN nachádzala ako textové pole.

Ďalšie kroky