Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Esta característica se encuentra en versión preliminar.
ODBC (conectividad abierta de bases de datos) es un estándar ampliamente adoptado que permite a las aplicaciones cliente conectarse y trabajar con datos de bases de datos y plataformas de macrodatos.
El controlador ODBC de Microsoft para Fabric Data Engineering te permite conectar, consultar y gestionar cargas de trabajo de Spark en Fabric con la fiabilidad y simplicidad del estándar ODBC. Construido sobre las APIs Livy de Fabric, el controlador proporciona conectividad Spark SQL segura y flexible para tus aplicaciones compatibles con C/C++, .NET, Python y otras compatibles con ODBC en Linux.
Características clave
- Compatible con ODBC 3.x: Implementación completa de la especificación ODBC 3.x.
- Autenticación Microsoft Entra ID: Múltiples flujos de autenticación, incluyendo CLI de Azure, credenciales de cliente, autenticación basada en certificados y autenticación de token de acceso.
- Soporte para consultas SQL de Spark: Ejecución directa de sentencias SQL de Spark.
-
Soporte integral de tipos de datos: Soporte para todos los tipos de datos SQL de Spark, incluyendo tipos complejos (
ARRAY,MAP, ySTRUCT). - Reutilización de sesión: Gestión de sesiones integrada para mejorar el rendimiento.
- Soporte para tablas grandes: Manejo optimizado para grandes conjuntos de resultados con tamaños de página configurables.
- Prelectura asincrónica: Carga de datos en segundo plano para mejorar el rendimiento.
- Soporte de proxy: Configuración de proxy HTTP para entornos empresariales.
- Soporte multi-esquema para casas de lago: Conectarse a un esquema específico dentro de una casa de lago.
Note
En Apache Spark de código abierto, la base de datos y el esquema se usan como sinónimos. Por ejemplo, al ejecutar SHOW SCHEMAS o SHOW DATABASES en un cuaderno Fabric se devuelve el mismo resultado: una lista de todos los esquemas en la casa del lago.
Prerequisites
Antes de usar el controlador ODBC de Microsoft para Microsoft Fabric Data Engineering en Linux, asegúrate de cumplir con los siguientes requisitos previos:
- Sistema operativo: Ubuntu 22.04 o posterior, Debian 11 o posterior, o Red Hat Enterprise Linux (RHEL) 8 o posterior en x86-64.
-
unixODBC: El gestor de controladores ODBC para Linux. Instala los
unixodbcpaquetes de y (yunixodbc-devlos paquetes). - Acceso a Fabric: Acceso a un espacio de trabajo Fabric.
- Credenciales Microsoft Entra ID: Credenciales adecuadas para la autenticación.
- IDs de espacio de trabajo y casa del lago: Los identificadores GUID para tu espacio de trabajo Fabric y la casa del lago.
- CLI de Azure (opcional): Obligatorio cuando usas autenticación con CLI de Azure.
Descargar e instalar en Linux
El controlador ODBC de Microsoft para Microsoft Fabric Data Engineering versión 1.0.0 está disponible en vista previa pública.
Para instalar el controlador, haga lo siguiente:
Extraiga
ms-sparksql-odbc-linux-1.0.0.zip.Abre un terminal en el directorio extraído.
Instala el paquete Debian:
sudo dpkg -i microsoft-fabric-odbc-driver-1.0.0-Linux.deb
El paquete instala los siguientes archivos:
| Archivo | Ubicación instalada |
|---|---|
| Biblioteca de pilotos | /usr/lib/libmicrosoftfabricodbc.so |
| Plantilla de registro de pilotos | /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template |
| Plantilla de configuración DSN | /usr/share/microsoft-fabric-odbc-driver/odbc.ini.template |
| License | /usr/share/doc/microsoft-fabric-odbc-driver/LICENSE |
| Guía de uso | /usr/share/doc/microsoft-fabric-odbc-driver/USAGE_Linux.md |
Controladora de registro manual
El paquete registra automáticamente el controlador con unixODBC. Para registrar el controlador manualmente, ejecuta:
sudo odbcinst -i -d -f /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template
Comprobación de la instalación
Verifica que el controlador esté registrado y que la biblioteca esté instalada:
odbcinst -q -d
ls -la /usr/lib/libmicrosoftfabricodbc.so
El odbcinst comando debería indicar [Microsoft ODBC Driver for Microsoft Fabric Data Engineering].
Desinstala el controlador
Para desinstalar el controlador, ejecuta el siguiente comando:
sudo dpkg -r microsoft-fabric-odbc-driver
Este comando elimina los archivos del controlador y desregistra el controlador de unixODBC.
Ejemplo de inicio rápido
Los siguientes ejemplos se conectan a Fabric y ejecutan una consulta SQL de Spark. Cumple los requisitos previos e instala el controlador antes de ejecutar un ejemplo.
ejemplo de 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()
Ejemplo de 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;
}
Construye y ejecuta el ejemplo:
g++ -o fabric_test fabric_test.cpp -lodbc -std=c++17
./fabric_test
ejemplo de .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 de la cadena de conexión
Cadena de conexión básica
Utiliza el siguiente formato de cadena de conexión:
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};<parameter1>=<value1>;<parameter2>=<value2>;...
Componentes de cadena de conexión
| Component | Descripción | Ejemplo |
|---|---|---|
DRIVER |
Identificador del controlador ODBC | {Microsoft ODBC Driver for Microsoft Fabric Data Engineering} |
WorkspaceId |
Identificador de espacio de trabajo Fabric (GUID) | 4bbf89a8-66bb-443f-91af-df31e6a7560b |
LakehouseId |
Identificador Fabric de la casa del lago (GUID) | d8faa650-1343-496b-b9cc-d4168a676f90 |
AuthFlow |
Método de autenticación |
AZURE_CLI, CLIENT_CREDENTIAL, CLIENT_CERTIFICATE o ACCESS_TOKEN |
Ejemplos de cadena de conexión
Conexión básica
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI
Conexión con opciones de rendimiento
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;ReuseSession=true;LargeTableSupport=true;PageSizeBytes=18874368
Conexión con la tala
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
El controlador Microsoft ODBC para Microsoft Fabric Data Engineering soporta múltiples métodos de autenticación a través de Microsoft Entra ID. Configura la autenticación usando el AuthFlow parámetro de la cadena de conexión o DSN.
Métodos de autenticación
AuthFlow valor |
Descripción |
|---|---|
AZURE_CLI |
Desarrollo mediante credenciales de la CLI de Azure |
CLIENT_CREDENTIAL |
Principal de servicio con un secreto de cliente |
CLIENT_CERTIFICATE |
Principal de servicio con certificado |
ACCESS_TOKEN |
Token de acceso de portador adquirido previamente |
Note
La autenticación interactiva por navegador no está disponible en servidores Linux sin pantalla. Utiliza CLI de Azure, credenciales de cliente, autenticación basada en certificados o token de acceso.
Autenticación de la CLI de Azure
Utiliza la autenticación de CLI de Azure para aplicaciones de desarrollo e interactivas.
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)
Antes de conectarte, verifica que la CLI de Azure esté instalada y inicia sesión:
az --version
az login
Para instalar CLI de Azure en Debian o Ubuntu, utiliza el gestor de paquetes:
sudo apt-get update
sudo apt-get install -y azure-cli
Autenticación de credenciales del cliente
Utiliza la autenticación de credenciales del cliente para servicios automatizados y trabajos en segundo plano.
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};"
)
Introduzca los siguientes parámetros:
-
TenantId: El ID del tenant de Microsoft Entra. -
ClientId: el identificador de la aplicación (cliente). -
ClientSecret: El secreto del cliente.
Almacena secretos en un almacén secreto seguro o en variables de entorno. No almacenes secretos en cadenas de conexión en texto plano ni en archivos INI.
Autenticación basada en certificados
Utiliza autenticación basada en certificados para aplicaciones empresariales que requieren credenciales de certificado.
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>;"
)
Introduzca los siguientes parámetros:
-
TenantId: El ID del tenant de Microsoft Entra. -
ClientId: el identificador de la aplicación (cliente). -
CertificatePath: La ruta hacia el archivo de certificados PFX o PKCS12. -
CertificatePassword: La contraseña del certificado.
Autenticación de token de acceso
Utiliza la autenticación de token de acceso cuando tu aplicación adquiera un token a través de otro mecanismo.
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};"
)
Parámetros de configuración
Parámetros necesarios
Incluye estos parámetros en cada cadena de conexión:
| Parámetro | Tipo | Descripción | Ejemplo |
|---|---|---|---|
WorkspaceId |
Identificador Único Universal (UUID) | Identificador del área de trabajo de Fabric | 4bbf89a8-... |
LakehouseId |
Identificador Único Universal (UUID) | Identificador de Fabric lakehouse | d8faa650-... |
AuthFlow |
String | Tipo de flujo de autenticación | AZURE_CLI |
Parámetros opcionales
Configuración de conexión
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
Database |
String | Ninguno | Base de datos específica a la que conectarse |
Scope |
String | https://api.fabric.microsoft.com/.default |
Ámbito de OAuth |
Configuración de rendimiento
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
ReuseSession |
Boolean | true |
Reutilizar una sesión existente de Spark |
LargeTableSupport |
Boolean | false |
Habilitación de optimizaciones para grandes conjuntos de resultados |
EnableAsyncPrefetch |
Boolean | false |
Habilitar la precarga de datos en segundo plano |
PageSizeBytes |
Entero |
18874368 (18 MB) |
Tamaño de página para la paginación de resultados de 1 a 18 MB |
Configuración del registro
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
LogLevel |
String | INFO |
Nivel logarítmico: TRACE, DEBUG, INFO, WARN, o ERROR |
LogFile |
String | odbc_driver.log |
Ruta de archivo de registro absoluta o relativa |
Configuración del proxy
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
UseProxy |
Boolean | false |
Habilitar un proxy |
ProxyHost |
String | Ninguno | Nombre de host proxy |
ProxyPort |
Entero | Ninguno | Puerto de proxy |
ProxyUsername |
String | Ninguno | Nombre de usuario de autenticación proxy |
ProxyPassword |
String | Ninguno | Contraseña de autenticación de proxy |
Configuración de DSN
En Linux, configura los nombres de las fuentes de datos (DSNs) en archivos INI en lugar del registro de Windows.
| Archivo | Ámbito | Access |
|---|---|---|
/etc/odbc.ini |
DSN a nivel de sistema | Requiere sudo |
~/.odbc.ini |
DSN específicos para usuarios | Solo usuario actual |
Creación de un DSN
Copia la plantilla instalada:
cp /usr/share/microsoft-fabric-odbc-driver/odbc.ini.template ~/.odbc.ini
Edición ~/.odbc.ini con los detalles de tu espacio de trabajo en 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 la DSN
Enumera las DSN configuradas y luego prueba la conexión:
odbcinst -q -s
isql -v FabricDSN
El isql comando requiere las herramientas de línea de comandos unixODBC.
Utilizar una DSN en aplicaciones
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);
Ejemplos de uso
Prueba una conexión con isql
Inicia una sesión SQL interactiva:
isql -v FabricDSN
Ejecuta una sola consulta:
echo "SELECT 1 AS test" | isql -v FabricDSN -b
Trabajo con grandes conjuntos de resultados
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()
Descubre esquemas y tablas
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()
Asignación de tipos de datos
El controlador asigna los tipos de datos de Spark SQL a tipos de SQL ODBC:
| Tipo Spark SQL | Tipo ODBC SQL | Tipo C/C++ | Tipo de Python | Tipo de .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* |
Cadena JSON. | string |
MAP |
SQL_VARCHAR |
SQLCHAR* |
Cadena JSON. | string |
STRUCT |
SQL_VARCHAR |
SQLCHAR* |
Cadena JSON. | string |
Diferencias entre plataformas
| Feature | Windows | Linux |
|---|---|---|
| Mánager de pilotos | Administrador de controladores Microsoft ODBC | unixODBC |
| Binario de controladores | microsoftfabricodbc.dll |
libmicrosoftfabricodbc.so |
| Configuración de DSN | Registro y interfaz gráfica de Windows |
/etc/odbc.ini y ~/.odbc.ini |
| Matrícula de pilotos | Registro y odbcad32.exe |
odbcinst -i -d -f |
| Cliente HTTP | WinHTTP | libcurl |
| TLS | Soporte integrado para Windows | OpenSSL |
| Autenticación de certificado | Windows CryptoAPI | OpenSSL con archivos RS256 y PEM o PFX |
| Autenticación interactiva | Ventana del navegador | No disponible en servidores headless |
| Embalaje | Instalador MSI | Paquete Linux |
Troubleshooting
Conductor no encontrado
Problema: La conexión falla con [IM002] Data source name not found and no default driver specified.
Soluciones:
- Verifica el registro de los conductores ejecutando
odbcinst -q -d. - Compruebe que
/usr/lib/libmicrosoftfabricodbc.soexiste. - Registra al conductor ejecutando
sudo odbcinst -i -d -f /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template. - Reinstala el paquete ejecutando
sudo dpkg -i microsoft-fabric-odbc-driver-1.0.0-Linux.deb.
No se encontró DSN
Problema: La conexión falla con [IM002] Data source name not found.
Soluciones:
- Verifica la configuración del DSN ejecutando
odbcinst -q -s. - Verifica eso
~/.odbc.inio/etc/odbc.inicontiene la sección DSN. - Asegúrate de que el
Drivervalor coincida exactamente con el nombre del conductor registrado.
Fallos de conexión
Problema: El controlador no puede conectarse a Fabric.
Soluciones:
- Verifica que el ID del espacio de trabajo y el ID de la casa del lago sean GUIDs válidos.
- Comprueba la autenticación de CLI de Azure ejecutando
az account show. - Asegúrate de tener los permisos necesarios para el espacio de trabajo de Fabric.
- Comprueba la conectividad de red y la configuración del proxy.
Errores de autenticación
Problema: La autenticación de CLI de Azure falla.
Soluciones:
- Corre
az logina refrescar tus credenciales. - Configura la suscripción correcta ejecutando
az account set --subscription <subscription-id>. - Comprueba el token ejecutando
az account get-access-token --resource https://api.fabric.microsoft.com. - Asegúrate de que tu cuenta tenga los permisos necesarios para el espacio de trabajo de Fabric.
Errores de biblioteca compartida
Problema: El conductor informa error while loading shared libraries: libmicrosoftfabricodbc.so.
Soluciones:
- Reinstala el paquete ejecutando
sudo dpkg -i microsoft-fabric-odbc-driver-1.0.0-Linux.deb. - Compruebe que
/usr/lib/libmicrosoftfabricodbc.soexiste. - Ejecuta
sudo ldconfigpara actualizar la caché compartida de la biblioteca.
Tiempos de espera de las consultas
Problema: Las consultas se agotan en tablas grandes.
Soluciones:
- Agregue
LargeTableSupport=truea la cadena de conexión. - Ajusta
PageSizeBytesel tamaño del resultado. - Agregue
EnableAsyncPrefetch=1a la cadena de conexión. - Utiliza una
LIMITcláusula para restringir el tamaño del resultado.
Habilitar registro
Habilitar el registro detallado en una DSN:
[FabricDSN]
LogLevel = DEBUG
LogFile = /tmp/fabric_odbc_debug.log
Alternativamente, añadir parámetros de registro a la cadena de conexión:
LogLevel=DEBUG;LogFile=/tmp/fabric_odbc_debug.log;
El controlador soporta los siguientes niveles logarítmicos:
-
TRACE: Incluye todas las llamadas a la API. -
DEBUG: Incluye información detallada de depuración. -
INFO: Incluye información general y es el valor predeterminado. -
WARN: Incluye solo advertencias. -
ERROR: Solo incluye errores.
Activar el trazado de unixODBC
Para diagnósticos de llamadas ODBC de bajo nivel, añade la siguiente configuración a /etc/odbcinst.ini:
[ODBC]
Trace = yes
TraceFile = /tmp/odbc_trace.log
Desactiva el rastreo cuando termines de solucionar problemas para evitar sobrecarga de rendimiento innecesaria.