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.
Importante
Questa funzionalità si trova in Anteprima.
ODBC (Open Database Connectivity) è uno standard ampiamente adottato che consente alle applicazioni client di connettersi e lavorare con i dati provenienti da database e piattaforme Big Data.
Il driver Microsoft ODBC per Fabric Data Engineering ti permette di connettere, interrogare e gestire carichi di lavoro Spark in Fabric con l'affidabilità e la semplicità dello standard ODBC. Costruito sulle API Livy di Fabric, il driver offre connettività Spark SQL sicura e flessibile per le tue applicazioni compatibili con C/C++, .NET, Python e altre compatibili ODBC su Linux.
Funzionalità principali
- Conforme a ODBC 3.x: Implementazione completa della specifica ODBC 3.x.
- Autenticazione Microsoft Entra ID: Flussi di autenticazione multipli, inclusi interfaccia della riga di comando di Azure, credenziali client, certificati e autenticazione tramite token di accesso.
- Supporto alle query Spark SQL: esecuzione diretta delle istruzioni SQL di Spark.
-
Supporto completo dei tipi di dati: Supporto per tutti i tipi di dati SQL di Spark, inclusi i tipi complessi (
ARRAY,MAP, eSTRUCT). - Riutilizzo della sessione: gestione delle sessioni integrata per migliorare le prestazioni.
- Supporto per tabelle grandi: gestione ottimizzata per grandi set di risultati con dimensioni di pagina configurabili.
- Preprefezione asincrona: caricamento dati in background per migliorare le prestazioni.
- Supporto proxy: configurazione proxy HTTP per ambienti aziendali.
- Supporto multi-schema per la casa sul lago: collegati a uno schema specifico all'interno di una casa sul lago.
Note
In Apache Spark open source, il database e lo schema vengono usati come sinonimi. Ad esempio, eseguire SHOW SCHEMAS o SHOW DATABASES in un notebook Fabric restituisce lo stesso risultato: una lista di tutti gli schemi nella casa del lago.
Prerequisiti
Prima di utilizzare il driver Microsoft ODBC per Microsoft Fabric Data Engineering su Linux, assicurati di avere i seguenti prerequisiti:
- Sistema operativo: Ubuntu 22.04 o successiva, Debian 11 o successiva, o Red Hat Enterprise Linux (RHEL) 8 o successivamente su x86-64.
-
unixODBC: Il gestore di driver ODBC per Linux. Installa i
unixodbcpacchetti e.unixodbc-dev - Accesso Fabric: Accesso a uno spazio di lavoro Fabric.
- Credenziali Microsoft Entra ID: Credenziali appropriate per l'autenticazione.
- ID dello spazio di lavoro e della casa sul lago: gli identificatori GUID per il tuo spazio di lavoro Fabric e la casa sul lago.
- interfaccia della riga di comando di Azure (opzionale): Richiesta quando si utilizza l'autenticazione interfaccia della riga di comando di Azure.
Scarica e installa su Linux
Il driver Microsoft ODBC per Microsoft Fabric Data Engineering versione 1.0.0 è disponibile in anteprima pubblica.
Per installare il driver:
Estrarre
ms-sparksql-odbc-linux-1.0.0.zip.Apri un terminale nella directory estratta.
Installa il pacchetto Debian:
sudo dpkg -i microsoft-fabric-odbc-driver-1.0.0-Linux.deb
Il pacchetto installa i seguenti file:
| File | Luogo installato |
|---|---|
| Libreria dei piloti | /usr/lib/libmicrosoftfabricodbc.so |
| Modello di registrazione piloti | /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template |
| Modello di configurazione DSN | /usr/share/microsoft-fabric-odbc-driver/odbc.ini.template |
| License | /usr/share/doc/microsoft-fabric-odbc-driver/LICENSE |
| Guida all'uso | /usr/share/doc/microsoft-fabric-odbc-driver/USAGE_Linux.md |
Registrare manualmente il driver
Il package registra automaticamente il driver con unixODBC. Per registrare manualmente il driver, esegui:
sudo odbcinst -i -d -f /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template
Verificare l'installazione
Verifica che il driver sia registrato e che la libreria sia installata:
odbcinst -q -d
ls -la /usr/lib/libmicrosoftfabricodbc.so
Il odbcinst comando dovrebbe elencare [Microsoft ODBC Driver for Microsoft Fabric Data Engineering].
Disinstalla il driver
Per disinstallare il driver, esegui il seguente comando:
sudo dpkg -r microsoft-fabric-odbc-driver
Questo comando rimuove i file del driver e disregistra il driver da unixODBC.
Esempio di avvio rapido
I seguenti esempi si collegano a Fabric ed eseguino una query SQL di Spark. Completa i prerequisiti e installa il driver prima di eseguire un esempio.
esempio di Python
import pyodbc
connection_string = (
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=AZURE_CLI;"
)
conn = pyodbc.connect(connection_string, timeout=30)
cursor = conn.cursor()
cursor.execute("SELECT 'Hello from Fabric!' AS message")
row = cursor.fetchone()
print(row.message)
conn.close()
Esempio di C/C++
#include <sql.h>
#include <sqlext.h>
#include <iostream>
int main() {
SQLHENV henv = SQL_NULL_HENV;
SQLHDBC hdbc = SQL_NULL_HDBC;
SQLHSTMT hstmt = SQL_NULL_HSTMT;
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
const char* connectionString =
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=AZURE_CLI;";
SQLRETURN result = SQLDriverConnect(
hdbc,
NULL,
(SQLCHAR*)connectionString,
SQL_NTS,
NULL,
0,
NULL,
SQL_DRIVER_NOPROMPT);
if (SQL_SUCCEEDED(result)) {
std::cout << "Connected successfully!" << std::endl;
SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
result = SQLExecDirect(
hstmt,
(SQLCHAR*)"SELECT 'Hello from Fabric!' AS message",
SQL_NTS);
if (SQL_SUCCEEDED(result)) {
char message[256];
SQLLEN indicator;
while (SQLFetch(hstmt) == SQL_SUCCESS) {
SQLGetData(
hstmt,
1,
SQL_C_CHAR,
message,
sizeof(message),
&indicator);
std::cout << message << std::endl;
}
}
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
SQLDisconnect(hdbc);
}
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, henv);
return 0;
}
Costruisci e esegui l'esempio:
g++ -o fabric_test fabric_test.cpp -lodbc -std=c++17
./fabric_test
esempio di .NET
using System.Data.Odbc;
string connectionString =
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};" +
"WorkspaceId=<workspace-id>;" +
"LakehouseId=<lakehouse-id>;" +
"AuthFlow=AZURE_CLI;";
using var connection = new OdbcConnection(connectionString);
await connection.OpenAsync();
Console.WriteLine("Connected successfully!");
using var command = new OdbcCommand(
"SELECT 'Hello from Fabric!' AS message",
connection);
using var reader = await command.ExecuteReaderAsync();
if (await reader.ReadAsync())
{
Console.WriteLine(reader.GetString(0));
}
Formato stringa di connessione
Stringa di connessione di base
Usa il seguente formato di stringa di connessione:
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};<parameter1>=<value1>;<parameter2>=<value2>;...
Componenti della stringa di connessione
| Componente | Descrizione | Example |
|---|---|---|
DRIVER |
Identificatore del driver ODBC | {Microsoft ODBC Driver for Microsoft Fabric Data Engineering} |
WorkspaceId |
Identificatore dello spazio di lavoro Fabric (GUID) | 4bbf89a8-66bb-443f-91af-df31e6a7560b |
LakehouseId |
Identificatore Fabric della casa del lago (GUID) | d8faa650-1343-496b-b9cc-d4168a676f90 |
AuthFlow |
Metodo di autenticazione |
AZURE_CLI, CLIENT_CREDENTIAL, CLIENT_CERTIFICATEo ACCESS_TOKEN |
Esempi di stringhe di connessione
Connessione di base
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI
Connessione con le opzioni di prestazione
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;ReuseSession=true;LargeTableSupport=true;PageSizeBytes=18874368
Connessione con il logging
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;LogLevel=DEBUG;LogFile=/tmp/odbc_driver.log
Authentication
Il driver Microsoft ODBC per Microsoft Fabric Data Engineering supporta più metodi di autenticazione tramite Microsoft Entra ID. Configura l'autenticazione usando il parametro AuthFlow nella stringa di connessione o DSN.
Metodi di autenticazione
Valore della proprietà AuthFlow |
Descrizione |
|---|---|
AZURE_CLI |
Sviluppo con le credenziali dell'interfaccia della riga di comando di Azure |
CLIENT_CREDENTIAL |
Committente del servizio con un segreto del cliente |
CLIENT_CERTIFICATE |
Principale di servizio con certificato |
ACCESS_TOKEN |
Token di accesso a portatore pre-acquisito |
Note
L'autenticazione interattiva tramite browser non è disponibile sui server Linux headless. Usa invece interfaccia della riga di comando di Azure, credenziali client, autenticazione basata su certificati o token di accesso.
Autenticazione dell’interfaccia della riga di comando di Azure
Usa l'autenticazione interfaccia della riga di comando di Azure per lo sviluppo e le applicazioni interattive.
connection_string = (
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=AZURE_CLI;"
"Scope=https://api.fabric.microsoft.com/.default;"
)
conn = pyodbc.connect(connection_string)
Prima di connetterti, verifica che interfaccia della riga di comando di Azure sia installata e accedi:
az --version
az login
Per installare interfaccia della riga di comando di Azure su Debian o Ubuntu, usa il gestore di pacchetti:
sudo apt-get update
sudo apt-get install -y azure-cli
Autenticazione delle credenziali client
Usa l'autenticazione delle credenziali del client per servizi automatizzati e lavori in background.
connection_string = (
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=CLIENT_CREDENTIAL;"
f"TenantId={tenant_id};"
f"ClientId={client_id};"
f"ClientSecret={client_secret};"
)
Fornire i parametri seguenti:
-
TenantId: L'ID tenant di Microsoft Entra. -
ClientId: ID dell'applicazione (client). -
ClientSecret: Il segreto del cliente.
Memorizza i segreti in un archivio segreto sicuro o in variabili di ambiente. Non memorizzare segreti in stringhe di connessione in testo semplice o file INI.
Autenticazione basata su certificati
Utilizzare l'autenticazione basata su certificati per applicazioni aziendali che richiedono credenziali di certificazione.
connection_string = (
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=CLIENT_CERTIFICATE;"
"TenantId=<tenant-id>;"
"ClientId=<client-id>;"
"CertificatePath=/path/to/cert.pfx;"
"CertificatePassword=<password>;"
)
Fornire i parametri seguenti:
-
TenantId: L'ID tenant di Microsoft Entra. -
ClientId: ID dell'applicazione (client). -
CertificatePath: Il percorso verso il file di certificati PFX o PKCS12. -
CertificatePassword: La password del certificato.
Autenticazione del token di accesso
Usa l'autenticazione del token di accesso quando la tua applicazione acquisisce un token tramite un altro meccanismo.
access_token = acquire_token_from_custom_source()
connection_string = (
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=ACCESS_TOKEN;"
f"AccessToken={access_token};"
)
Parametri di configurazione
Parametri obbligatori
Includere questi parametri in ogni stringa di connessione:
| Parametro | Type | Descrizione | Example |
|---|---|---|---|
WorkspaceId |
UUID (Identificatore Unico Universale) | Identificatore dell'area di lavoro infrastruttura | 4bbf89a8-... |
LakehouseId |
UUID (Identificatore Unico Universale) | Identificatore Fabric della casa sul lago | d8faa650-... |
AuthFlow |
Stringa | Tipo di flusso di autenticazione | AZURE_CLI |
Parametri facoltativi
Impostazioni di connessione
| Parametro | Type | Default | Descrizione |
|---|---|---|---|
Database |
Stringa | None | Database specifico a cui collegarsi |
Scope |
Stringa | https://api.fabric.microsoft.com/.default |
Ambito OAuth |
Impostazioni delle prestazioni
| Parametro | Type | Default | Descrizione |
|---|---|---|---|
ReuseSession |
Boolean | true |
Riutilizza una sessione Spark esistente |
LargeTableSupport |
Boolean | false |
Abilitare le ottimizzazioni per set di risultati di grandi dimensioni |
EnableAsyncPrefetch |
Boolean | false |
Abilitare la prelettura dei dati in background |
PageSizeBytes |
Integer |
18874368 (18 MB) |
Dimensione della pagina per la paginazione dei risultati da 1 a 18 MB |
Impostazioni di registrazione
| Parametro | Type | Default | Descrizione |
|---|---|---|---|
LogLevel |
Stringa | INFO |
Livello logaritmico: TRACE, DEBUG, INFO, WARN, o ERROR |
LogFile |
Stringa | odbc_driver.log |
Percorso di log assoluto o relativo |
Impostazioni proxy
| Parametro | Type | Default | Descrizione |
|---|---|---|---|
UseProxy |
Boolean | false |
Abilita un proxy |
ProxyHost |
Stringa | None | Nome host proxy |
ProxyPort |
Integer | None | Porta proxy |
ProxyUsername |
Stringa | None | Nome utente per autenticazione proxy |
ProxyPassword |
Stringa | None | Password di autenticazione proxy |
Configurazione DSN
Su Linux, configura i nomi delle sorgenti dati (DSN) nei file INI invece che nel registro Windows.
| File | Scope | Access |
|---|---|---|
/etc/odbc.ini |
DSN a livello di sistema | Richiede sudo |
~/.odbc.ini |
DSN specifiche per utente | Solo utente corrente |
Creare una DSN
Copia il modello installato:
cp /usr/share/microsoft-fabric-odbc-driver/odbc.ini.template ~/.odbc.ini
Modifica ~/.odbc.ini con i dettagli del tuo spazio di lavoro Fabric:
[FabricDSN]
Description = Microsoft Fabric Data Engineering
Driver = Microsoft ODBC Driver for Microsoft Fabric Data Engineering
WorkspaceId = <workspace-id>
LakehouseId = <lakehouse-id>
AuthFlow = AZURE_CLI
LogLevel = INFO
# LogFile = /tmp/fabric_odbc.log
# LargeTableSupport = true
# ReuseSession = true
Verifica il DSN
Elenca le DSN configurate e poi testa la connessione:
odbcinst -q -s
isql -v FabricDSN
Il isql comando richiede gli strumenti a riga di comando unixODBC.
Usa una DSN nelle applicazioni
conn = pyodbc.connect("DSN=FabricDSN")
using var connection = new OdbcConnection("DSN=FabricDSN");
await connection.OpenAsync();
SQLRETURN result = SQLConnect(
hdbc,
(SQLCHAR*)"FabricDSN",
SQL_NTS,
NULL,
0,
NULL,
0);
Esempi di utilizzo
Testa una connessione con isql
Inizia una sessione SQL interattiva:
isql -v FabricDSN
Esegui una singola query:
echo "SELECT 1 AS test" | isql -v FabricDSN -b
Lavoro con grandi insiemi di risultati
import pyodbc
connection_string = (
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=AZURE_CLI;"
"LargeTableSupport=true;"
"PageSizeBytes=18874368;"
"EnableAsyncPrefetch=1;"
)
conn = pyodbc.connect(connection_string)
cursor = conn.cursor()
cursor.execute("SELECT * FROM large_table")
row_count = 0
while True:
rows = cursor.fetchmany(1000)
if not rows:
break
for row in rows:
row_count += 1
if row_count % 10000 == 0:
print(f"Processed {row_count} rows")
print(f"Total rows processed: {row_count}")
conn.close()
Scopri schemi e tabelle
import pyodbc
conn = pyodbc.connect(connection_string)
cursor = conn.cursor()
cursor.execute("SHOW TABLES")
for table in cursor.fetchall():
print(table)
cursor.execute("DESCRIBE employees")
for column in cursor.fetchall():
print(column)
cursor.execute("SHOW SCHEMAS")
for schema in cursor.fetchall():
print(schema)
conn.close()
Mappatura del tipo di dati
Il driver esegue il mapping dei tipi di dati Spark SQL ai tipi SQL ODBC:
| Tipo SQL Spark | Tipo ODBC SQL | Tipo C/C++ | Tipo Python | Tipo .NET |
|---|---|---|---|---|
BOOLEAN |
SQL_BIT |
SQLCHAR |
bool |
bool |
BYTE |
SQL_TINYINT |
SQLSCHAR |
int |
sbyte |
SHORT |
SQL_SMALLINT |
SQLSMALLINT |
int |
short |
INT |
SQL_INTEGER |
SQLINTEGER |
int |
int |
LONG |
SQL_BIGINT |
SQLBIGINT |
int |
long |
FLOAT |
SQL_REAL |
SQLREAL |
float |
float |
DOUBLE |
SQL_DOUBLE |
SQLDOUBLE |
float |
double |
DECIMAL |
SQL_DECIMAL |
SQLCHAR* |
decimal.Decimal |
decimal |
STRING |
SQL_VARCHAR |
SQLCHAR* |
str |
string |
VARCHAR(n) |
SQL_VARCHAR |
SQLCHAR* |
str |
string |
CHAR(n) |
SQL_CHAR |
SQLCHAR* |
str |
string |
BINARY |
SQL_BINARY |
SQLCHAR* |
bytes |
byte[] |
DATE |
SQL_TYPE_DATE |
SQL_DATE_STRUCT |
datetime.date |
DateTime |
TIMESTAMP |
SQL_TYPE_TIMESTAMP |
SQL_TIMESTAMP_STRUCT |
datetime.datetime |
DateTime |
ARRAY |
SQL_VARCHAR |
SQLCHAR* |
stringa JSON | string |
MAP |
SQL_VARCHAR |
SQLCHAR* |
stringa JSON | string |
STRUCT |
SQL_VARCHAR |
SQLCHAR* |
stringa JSON | string |
Differenze tra le piattaforme
| Feature | Windows | Linux |
|---|---|---|
| Pilota manager | Microsoft ODBC Driver Manager | unixODBC |
| Binario del driver | microsoftfabricodbc.dll |
libmicrosoftfabricodbc.so |
| Configurazione DSN | Registro e interfaccia grafica di Windows |
/etc/odbc.ini e ~/.odbc.ini |
| Registrazione piloti | Registro di sistema e odbcad32.exe |
odbcinst -i -d -f |
| Client HTTP | WinHTTP | libcurl |
| TLS | Supporto integrato di Windows | Openssl |
| Autenticazione del certificato | Windows CryptoAPI | OpenSSL con file RS256 e PEM o PFX |
| Autenticazione interattiva | Finestra del browser | Non disponibile sui server headless |
| Imballaggio | Programma di installazione MSI | Pacchetto Linux |
Troubleshooting
Conducente non trovato
Problema: La connessione fallisce con [IM002] Data source name not found and no default driver specified.
Soluzioni:
- Verifica la registrazione dei conducenti eseguendo
odbcinst -q -d. - Verificare che
/usr/lib/libmicrosoftfabricodbc.soesista. - Registra il conducente facendo eseguire
sudo odbcinst -i -d -f /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template. - Reinstalla il pacchetto eseguendo
sudo dpkg -i microsoft-fabric-odbc-driver-1.0.0-Linux.deb.
DSN non trovato
Problema: La connessione fallisce con [IM002] Data source name not found.
Soluzioni:
- Verifica la configurazione DSN eseguendo
odbcinst -q -s. - Verifica che
~/.odbc.inio/etc/odbc.iniche contenga la sezione DSN. - Assicurati che il
Drivervalore corrisponda esattamente al nome del conducente registrato.
Errori di connessione
Problema: il driver non riesce a collegarsi a Fabric.
Soluzioni:
- Verifica che l'ID dello spazio di lavoro e l'ID del lacon siano GUID validi.
- Controlla l'autenticazione interfaccia della riga di comando di Azure eseguendo
az account show. - Assicurati di avere i permessi necessari per lo spazio di lavoro Fabric.
- Controlla la connettività di rete e le impostazioni del proxy.
Errori di autenticazione
Problema: l'autenticazione interfaccia della riga di comando di Azure fallisce.
Soluzioni:
- Corri
az logina rinfrescare le tue credenziali. - Imposta l'abbonamento corretto eseguendo
az account set --subscription <subscription-id>. - Controlla il token eseguendo
az account get-access-token --resource https://api.fabric.microsoft.com. - Assicurati che il tuo account abbia i permessi necessari per lo spazio di lavoro Fabric.
Errori nella libreria condivisa
Problema: Il conducente segnala error while loading shared libraries: libmicrosoftfabricodbc.so.
Soluzioni:
- Reinstalla il pacchetto eseguendo
sudo dpkg -i microsoft-fabric-odbc-driver-1.0.0-Linux.deb. - Verificare che
/usr/lib/libmicrosoftfabricodbc.soesista. - Esegui
sudo ldconfigper aggiornare la cache della libreria condivisa.
Timeout delle query
Problema: le query si esauriscono su tabelle grandi.
Soluzioni:
- Aggiungere
LargeTableSupport=truealla stringa di connessione. - Aggiusta
PageSizeBytesper la dimensione del risultato. - Aggiungere
EnableAsyncPrefetch=1alla stringa di connessione. - Usa una
LIMITclausola per limitare la dimensione del risultato.
Abilitare la registrazione
Abilita il logging dettagliato in una DSN:
[FabricDSN]
LogLevel = DEBUG
LogFile = /tmp/fabric_odbc_debug.log
In alternativa, aggiungi parametri di logging alla stringa di connessione:
LogLevel=DEBUG;LogFile=/tmp/fabric_odbc_debug.log;
Il driver supporta i seguenti livelli log:
-
TRACE: Include tutte le chiamate API. -
DEBUG: Include informazioni dettagliate sul debug. -
INFO: Include informazioni generali ed è il valore predefinito. -
WARN: Include solo avvertimenti. -
ERROR: Include solo errori.
Abilita il tracciamento unixODBC
Per la diagnostica delle chiamate ODBC di basso livello, aggiungere la seguente configurazione a /etc/odbcinst.ini:
[ODBC]
Trace = yes
TraceFile = /tmp/odbc_trace.log
Disattiva il tracciamento quando hai finito di risolvere i problemi per evitare sovraccarichi di prestazioni inutili.