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č. Toto správanie umožňuje 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 musela predchádzať dátovému 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.
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é sa nemusia zobrazovať prostredníctvom bežných kanálov ODBC. Funkcia akceptuje dva argumenty – reťazec pripojenia a dotaz SQL.
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 váš konektor používať.
Aj keď môžete definovať parametre s pevným počtom hodnôt (napríklad rozbaľovací zoznam 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 sú trvalé do dotazu 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 dostatočne zložitá a vyžaduje plne prispôsobiteľné konfiguračné dialógové okno, odporúčame, aby ste od vašich koncových používateľov vyžadovali vopred nakonfigurovanie systému DSN a aby vaša funkcia v názve DSN bola textovým poľom.