Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'uso della funzione Odbc.DataSource predefinita di M è il modo consigliato per creare connettori personalizzati per le origini dati con un driver ODBC esistente e/o supportare una sintassi di query SQL. Il wrapping della funzione Odbc.DataSource consente al connettore di ereditare il comportamento predefinito di riduzione delle query in base alle funzionalità segnalate dal driver. Questo comportamento consente al motore M di generare istruzioni SQL basate su filtri e altre trasformazioni definite dall'utente all'interno dell'esperienza di Power Query, senza dover fornire questa logica all'interno del connettore stesso.
Le estensioni ODBC possono facoltativamente abilitare la modalità DirectQuery, consentendo a Power BI di generare dinamicamente query in fase di esecuzione senza precaching del modello di dati dell'utente.
Annotazioni
L'abilitazione del supporto directQuery aumenta il livello di difficoltà e complessità del connettore. Quando DirectQuery è abilitato, Power BI impedisce al motore M di compensare le operazioni che non possono essere completamente trasferite all'origine dati sottostante.
Questo articolo presuppone familiarità con la creazione di un connettore personalizzato di base.
Per la maggior parte degli esempi di codice, vedere l'esempio SqlODBC nelle sezioni seguenti. Altri esempi sono disponibili nella directory degli esempi ODBC.
Funzioni di estendibilità ODBC
Il motore M fornisce due funzioni di origine dati correlate a ODBC: Odbc.DataSource e Odbc.Query.
La funzione Odbc.DataSource fornisce una tabella di spostamento predefinita con tutti i database, le tabelle e le viste del sistema. Questa funzione supporta anche la riduzione delle query e consente una gamma di opzioni di personalizzazione. La maggior parte delle estensioni basate su ODBC usa questa funzione come funzione di estendibilità primaria. La funzione accetta due argomenti, una stringa di connessione e un record di opzioni per fornire sostituzioni del comportamento.
La funzione Odbc.Query consente di eseguire istruzioni SQL tramite un driver ODBC. Funge da pass-through per l'esecuzione di query. A differenza della funzione Odbc.DataSource , non fornisce funzionalità di riduzione delle query e richiede che le query SQL vengano fornite dal connettore (o dall'utente finale). Quando si compila un connettore personalizzato, questa funzione viene in genere usata internamente per eseguire query per recuperare i metadati che potrebbero non essere esposti tramite i normali canali ODBC. La funzione accetta due argomenti, una stringa di connessione e una query SQL.
Linee guida sulle funzioni della fonte dati
I connettori personalizzati possono accettare un numero qualsiasi di argomenti di funzione. Tuttavia, per mantenere la coerenza con le funzioni predefinite dell'origine dati fornite con Power Query, sono consigliate le linee guida seguenti:
Richiedere il set minimo di parametri usati per stabilire una connessione al server. Meno parametri devono fornire gli utenti finali, più facile è usare il connettore.
Sebbene sia possibile definire parametri con un numero fisso di valori (ad esempio, un elenco a discesa nell'interfaccia utente), i parametri vengono immessi prima dell'autenticazione dell'utente. Tutti i valori che possono essere individuati a livello di codice dopo l'autenticazione dell'utente (ad esempio il catalogo o il nome del database) devono essere selezionabili tramite Lo strumento di navigazione. Il comportamento predefinito per la funzione Odbc.DataSource consiste nel restituire una tabella di spostamento gerarchica costituita da nomi di catalogo (database), schema e tabella. Tuttavia, questo comportamento può essere sostituito all'interno del tuo connettore.
Se si ritiene che gli utenti sappiano in genere quali valori immettere per gli elementi selezionati dallo Strumento di navigazione (ad esempio il nome del database), rendere questi parametri facoltativi. I parametri che possono essere individuati a livello di codice non devono essere richiesti.
L'ultimo parametro per la funzione deve essere un record facoltativo denominato "options". Questo parametro consente in genere agli utenti avanzati di impostare proprietà comuni correlate a ODBC (ad esempio
CommandTimeout), impostare gli override del comportamento specifici per il connettore e consente un'estendibilità futura senza influire sulla compatibilità con le versioni precedenti per la funzione.Gli argomenti correlati alla sicurezza/credenziali NON DEVONO mai far parte dei parametri della funzione dell'origine dati, perché i valori immessi nella finestra di dialogo di connessione vengono mantenuti nella query dell'utente. I parametri correlati alle credenziali devono essere specificati come parte dei metodi di autenticazione supportati dal connettore.
Per impostazione predefinita, tutti i parametri obbligatori per la funzione dell'origine dati vengono inseriti nel valore Percorso origine dati usato per identificare le credenziali utente.
Mentre l'interfaccia utente per la funzione Odbc.DataSource predefinita fornisce un elenco a discesa che consente all'utente di selezionare un DSN, questa funzionalità non è disponibile tramite estendibilità. Se la configurazione dell'origine dati è abbastanza complessa da richiedere una finestra di dialogo di configurazione completamente personalizzabile, è consigliabile richiedere agli utenti finali di preconfigurare un DSN di sistema e di fare in modo che la funzione accetti il nome del DSN come un campo di testo.