Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
At bruge M's indbyggede Odbc.DataSource-funktion er den anbefalede måde at skabe brugerdefinerede connectors til datakilder, der har en eksisterende ODBC-driver og/eller understøtter en SQL-forespørgselssyntaks. Wrapping af Odbc.DataSource-funktionen gør det muligt for din connector at arve standard query folding-adfærd baseret på de funktioner, din driver rapporterer. Denne adfærd gør det muligt for M-motoren at generere SQL-sætninger baseret på filtre og andre transformationer, som brugeren definerer i Power Query-oplevelsen, uden at skulle levere denne logik direkte i connectoren.
ODBC-udvidelser kan valgfrit aktivere DirectQuery-tilstand, hvilket gør det muligt for Power BI dynamisk at generere forespørgsler under kørsel uden at forudcache brugerens datamodel.
Notat
Aktivering af DirectQuery-understøttelse øger sværhedsgraden og kompleksitetsgraden af din connector. Når DirectQuery er aktiveret, forhindrer Power BI, at M-motoren kompenserer for operationer, der ikke kan skubbes fuldt ud til den underliggende datakilde.
Denne artikel forudsætter kendskab til oprettelsen af en grundlæggende brugerdefineret connector.
Se SqlODBC-eksemplet for de fleste kodeeksempler i de følgende afsnit. Andre eksempler kan findes i ODBC's samples-katalog.
ODBC's udvidelsesfunktioner
M-motoren leverer to ODBC-relaterede datakildefunktioner: Odbc.DataSource og Odbc.Query.
Funktionen Odbc.DataSource giver en standard navigationstabel med alle databaser, tabeller og visninger fra dit system. Denne funktion understøtter også folding af forespørgsler og tillader en række tilpasningsmuligheder. De fleste ODBC-baserede udvidelser bruger denne funktion som deres primære udvidelsesfunktion. Funktionen accepterer to argumenter—en forbindelsesstreng og en optionspost til at give adfærdsoverrides.
Odbc.Query-funktionen tillader dig at udføre SQL-statements gennem en ODBC-driver. Den fungerer som en passthrough til forespørgselskørsel. I modsætning til Odbc.DataSource-funktionen tilbyder den ikke query folding-funktionalitet og kræver, at SQL-forespørgsler leveres af connectoren (eller slutbrugeren). Når du bygger en brugerdefineret connector, bruges denne funktion typisk internt til at køre forespørgsler for at hente metadata, som måske ikke er eksponeret gennem almindelige ODBC-kanaler. Funktionen accepterer to argumenter—en forbindelsesstreng og en SQL-forespørgsel.
Retningslinjer for datakildefunktion
Brugerdefinerede stik kan acceptere et vilkårligt antal funktionsargumenter. Men for at forblive konsistente med de indbyggede datakildefunktioner, der følger med Power Query, anbefales følgende retningslinjer:
Krav det minimale sæt parametre, der bruges til at etablere forbindelse til din server. Jo færre parametre brugerne skal tilbyde, desto nemmere er dit stik at bruge.
Selvom du kan definere parametre med et fast antal værdier (for eksempel en dropdown-liste i UI), indtastes parametre, før brugeren autentificeres. Alle værdier, der kan opdages programmatisk efter brugerens autentificering (såsom katalog- eller databasenavn), bør kunne vælges via Navigatoren. Standardadfærden for Odbc.DataSource-funktionen er at returnere en hierarkisk navigationstabel bestående af katalog- (database-), skema- og tabelnavne. Denne adfærd kan dog overtrumfes i din connector.
Hvis du føler, at dine brugere typisk ved, hvilke værdier de skal indtaste for elementer, de vælger fra Navigatoren (såsom databasenavnet), så gør disse parametre valgfrie. Parametre, der kan opdages programmatisk, bør ikke gøres obligatoriske.
Den sidste parameter for din funktion bør være en valgfri post kaldet "options". Denne parameter tillader typisk avancerede brugere at sætte almindelige ODBC-relaterede egenskaber (såsom
CommandTimeout), sætte adfærdsoverskrivninger specifikke for din connector, og muliggør fremtidig udvidelse uden at påvirke bagudkompatibilitet for din funktion.Sikkerheds-/legitimationsrelaterede argumenter MÅ ALDRIG være en del af dine datakildefunktionsparametre, da værdier, der indtastes i forbindelsesdialogen, bevares i brugerens forespørgsel. Legitimationsrelaterede parametre bør specificeres som en del af connectorens understøttede autentificeringsmetoder.
Som standard indregnes alle nødvendige parametre for din datakildefunktion i værdien Data Source Path, der bruges til at identificere brugeroplysninger.
Selvom brugerfladen for den indbyggede Odbc.DataSource-funktion giver en dropdown-menu, der tillader brugeren at vælge et DSN, er denne funktionalitet ikke tilgængelig via udvidelsesmuligheder. Hvis din datakildekonfiguration er kompleks nok til at kræve en fuldt tilpasselig konfigurationsdialog, anbefaler vi, at du får dine slutbrugere til at forudkonfigurere et system-DSN, og at din funktion tager DSN-navnet som et tekstfelt.