Microsoft ODBC driver for Microsoft Fabric Data Engineering on Linux (Podgląd)

Important

Ta funkcja jest dostępna w wersji zapoznawczej.

ODBC (Open Database Connectivity) to powszechnie przyjęty standard, który umożliwia aplikacjom klienckim łączenie się z bazami danych i platformami danych big data oraz pracę z nimi.

Sterownik Microsoft ODBC dla Fabric Data Engineering pozwala podłączać, zapytywać i zarządzać obciążeniami Spark w Fabric z niezawodnością i prostotą standardu ODBC. Oparty na API Livy firmy Fabric, sterownik zapewnia bezpieczną i elastyczną łączność Spark SQL z C/C++, .NET, Python oraz innymi aplikacjami kompatybilnymi z ODBC na Linuksie.

Kluczowe funkcje

  • Zgodność z ODBC 3.x: Pełna implementacja specyfikacji ODBC 3.x.
  • Uwierzytelnianie Microsoft Entra ID: Wiele przepływów uwierzytelniania, w tym Azure CLI, dane klienta, uwierzytelnianie oparte na certyfikatach oraz uwierzytelnianie za pomocą tokenów dostępu.
  • Wsparcie zapytań SQL w Spark: Bezpośrednie wykonywanie instrukcji SQL Spark.
  • Kompleksowe wsparcie typów danych: Obsługa wszystkich typów danych SQL Spark, w tym typów złożonych (ARRAY, MAP, i STRUCT).
  • Ponowne wykorzystanie sesji: Wbudowane zarządzanie sesjami dla lepszej wydajności.
  • Obsługa dużych tabel: Optymalizacja obsługi dużych zestawów wyników z konfigurowalnymi rozmiarami stron.
  • Async prefetch: Ładowanie danych w tle dla lepszej wydajności.
  • Wsparcie proxy: konfiguracja proxy HTTP dla środowisk korporacyjnych.
  • Wsparcie dla wieloschematowych domów nad jeziorem: Połącz się z konkretnym schematem w domku nad jeziorem.

Note

W przypadku platformy Apache Spark typu open source baza danych i schemat są używane synonimowo. Na przykład uruchomienie SHOW SCHEMAS lub SHOW DATABASES w notatniku Fabric daje ten sam wynik: listę wszystkich schematów w domku nad jeziorem.

Wymagania wstępne

Zanim użyjesz sterownika Microsoft ODBC dla Microsoft Fabric Data Engineering na Linuksie, upewnij się, że masz następujące wymagania wstępne:

  • System operacyjny: Ubuntu 22.04 lub nowszy, Debian 11 lub nowszy, albo Red Hat Enterprise Linux (RHEL) 8 lub nowszy na x86-64.
  • unixODBC: Menedżer sterowników ODBC dla Linuksa. Zainstaluj pakiety unixodbc i unixodbc-dev pakiety.
  • Fabric access: Dostęp do przestrzeni roboczej Fabric.
  • Dane uwierzytelniające Microsoft Entra ID: Odpowiednie dane uwierzytelniające do uwierzytelniania.
  • Identyfikatory przestrzeni roboczej i domów nad jeziorem: identyfikatory GUID dla twojej przestrzeni roboczej Fabric i domku nad jeziorem.
  • Azure CLI (opcjonalnie): Wymagane przy użyciu uwierzytelniania Azure CLI.

Pobierz i zainstaluj na Linuksie

Microsoft ODBC Driver for Microsoft Fabric Data Engineering w wersji 1.0.0 jest dostępny w wersji publicznej.

Aby zainstalować sterownik:

  1. Wyodrębnij ms-sparksql-odbc-linux-1.0.0.zip.

  2. Otwórz terminal w rozpakowanym katalogu.

  3. Zainstaluj pakiet Debian:

    sudo dpkg -i microsoft-fabric-odbc-driver-1.0.0-Linux.deb
    

Pakiet instaluje następujące pliki:

File Lokalizacja zainstalowana
Biblioteka sterowników /usr/lib/libmicrosoftfabricodbc.so
Szablon rejestracji kierowcy /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template
Szablon konfiguracji DSN /usr/share/microsoft-fabric-odbc-driver/odbc.ini.template
License /usr/share/doc/microsoft-fabric-odbc-driver/LICENSE
Przewodnik użytkowania /usr/share/doc/microsoft-fabric-odbc-driver/USAGE_Linux.md

Rejestruj sterownik ręcznie

Pakiet automatycznie rejestruje sterownik w unixODBC. Aby zarejestrować sterownika ręcznie, wykonaj:

sudo odbcinst -i -d -f /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template

Weryfikowanie instalacji

Sprawdź, czy sterownik jest zarejestrowany i że biblioteka jest zainstalowana:

odbcinst -q -d
ls -la /usr/lib/libmicrosoftfabricodbc.so

Polecenie odbcinst powinno zawierać .[Microsoft ODBC Driver for Microsoft Fabric Data Engineering]

Odinstaluj sterownik

Aby odinstalować sterownik, wykonaj następujące polecenie:

sudo dpkg -r microsoft-fabric-odbc-driver

To polecenie usuwa pliki sterownika i rejestruje sterownik z unixODBC.

Przykład szybkiego startu

Poniższe przykłady łączą się z Fabric i uruchamiają zapytanie SQL w Spark. Wypełnij wymagania wstępne i zainstaluj sterownik, zanim uruchomisz przykład.

Przykład języka 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()

Przykład 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;
}

Zbuduj i uruchom przykład:

g++ -o fabric_test fabric_test.cpp -lodbc -std=c++17
./fabric_test

Przykład platformy .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));
}

Format łańcucha połączenia

Podstawowe parametry połączenia

Użyj poniższego formatu parametry połączenia:

DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};<parameter1>=<value1>;<parameter2>=<value2>;...

Składniki parametrów połączenia

Component Description Przykład
DRIVER Identyfikator sterownika ODBC {Microsoft ODBC Driver for Microsoft Fabric Data Engineering}
WorkspaceId Identyfikator przestrzeni roboczej Fabric (GUID) 4bbf89a8-66bb-443f-91af-df31e6a7560b
LakehouseId Identyfikator Fabric lakehouse (GUID) d8faa650-1343-496b-b9cc-d4168a676f90
AuthFlow Metoda uwierzytelniania AZURE_CLI, CLIENT_CREDENTIAL, CLIENT_CERTIFICATElub ACCESS_TOKEN

Przykładowe parametry połączenia

Podstawowe połączenie

DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI

Powiązanie z opcjami wydajności

DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;ReuseSession=true;LargeTableSupport=true;PageSizeBytes=18874368

Powiązanie z logowaniem

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

Uwierzytelnianie

Sterownik Microsoft ODBC dla Microsoft Fabric Data Engineering obsługuje wiele metod uwierzytelniania poprzez Microsoft Entra ID. Konfiguruj uwierzytelnianie, używając parametru AuthFlow w parametry połączenia lub DSN.

Metody uwierzytelniania

AuthFlow Wartość Description
AZURE_CLI Tworzenie przy użyciu poświadczeń Azure CLI
CLIENT_CREDENTIAL Zasada usługi z klientem sekretem
CLIENT_CERTIFICATE Główny pracownik z certyfikatem
ACCESS_TOKEN Wstępnie uzyskany token dostępu nosiciela

Note

Interaktywna autoryzacja przeglądarki nie jest dostępna na serwerach headless z Linuksem. Zamiast tego używaj Azure CLI, danych do uwierzytelniania klienta, uwierzytelniania opartego na certyfikatach lub tokenów dostępu.

Uwierzytelnianie CLI platformy Azure

Używaj uwierzytelniania Azure CLI do tworzenia i aplikacji interaktywnych.

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)

Przed połączeniem sprawdź, czy Azure CLI jest zainstalowany i zaloguj się:

az --version
az login

Aby zainstalować Azure CLI na Debianie lub Ubuntu, użyj menedżera pakietów:

sudo apt-get update
sudo apt-get install -y azure-cli

Uwierzytelnianie danych klienta

Używaj uwierzytelniania klienta do automatycznych usług i zadań w tle.

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};"
)

Podaj następujące parametry:

  • TenantId: ID tenanta Microsoft Entra.
  • ClientId: identyfikator aplikacji (klienta).
  • ClientSecret: Sekret klienta.

Sekrety przechowywania w bezpiecznym sejfowym magazynie lub zmienne środowiskowe. Nie przechowuj sekretów w tekstowych łańcuchach połączeń ani plikach INI.

Uwierzytelnianie oparte na certyfikatach

Używaj uwierzytelniania opartego na certyfikatach dla aplikacji korporacyjnych wymagających certyfikatów uwierzytelniających.

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>;"
)

Podaj następujące parametry:

  • TenantId: ID tenanta Microsoft Entra.
  • ClientId: identyfikator aplikacji (klienta).
  • CertificatePath: Ścieżka do pliku certyfikatu PFX lub PKCS12.
  • CertificatePassword: Hasło do certyfikatu.

Uwierzytelnianie tokenu dostępu

Używaj uwierzytelniania za pomocą tokena dostępu, gdy Twoja aplikacja pozyskuje token za pomocą innego mechanizmu.

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};"
)

Parametry konfiguracji

Wymagane parametry

Uwzględnij te parametry w każdym parametry połączenia:

Parameter Typ Description Przykład
WorkspaceId UUID Identyfikator obszaru roboczego sieci szkieletowej 4bbf89a8-...
LakehouseId UUID Identyfikator jeziora Fabric d8faa650-...
AuthFlow String Typ przepływu uwierzytelniania AZURE_CLI

Parametry opcjonalne

Ustawienia połączenia

Parameter Typ Wartość domyślna Description
Database String Żadne Określona baza danych do nawiązania połączenia z
Scope String https://api.fabric.microsoft.com/.default Zakres OAuth

Ustawienia wydajności

Parameter Typ Wartość domyślna Description
ReuseSession logiczny true Ponowne wykorzystanie istniejącej sesji Spark
LargeTableSupport logiczny false Włączanie optymalizacji dla dużych zestawów wyników
EnableAsyncPrefetch logiczny false Włącz pobieranie danych w tle
PageSizeBytes Integer 18874368 (18 MB) Rozmiar strony do paginacji wyników od 1 do 18 MB

Ustawienia rejestrowania

Parameter Typ Wartość domyślna Description
LogLevel String INFO Poziom logaritmu: TRACE, DEBUG, INFO, WARN, lub ERROR
LogFile String odbc_driver.log Absolutna lub względna ścieżka pliku log

Ustawienia serwera proxy

Parameter Typ Wartość domyślna Description
UseProxy logiczny false Włącz proxy
ProxyHost String Żadne Nazwa hosta proxy
ProxyPort Integer Żadne Port serwera proxy
ProxyUsername String Żadne Nazwa użytkownika uwierzytelniania proxy
ProxyPassword String Żadne Hasło uwierzytelniania serwera proxy

Konfiguracja DSN

Na Linuksie konfiguruj nazwy źródeł danych (DSN) w plikach INI zamiast w rejestrze Windows.

File Scope Access
/etc/odbc.ini DSN ogólnosystemowe Wymaga sudo
~/.odbc.ini Specyficzne dla użytkownika DSN Tylko bieżący użytkownik

Utwórz DSN

Skopiuj zainstalowany szablon:

cp /usr/share/microsoft-fabric-odbc-driver/odbc.ini.template ~/.odbc.ini

Edytuj ~/.odbc.ini szczegóły dotyczące twojej przestrzeni roboczej 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

Zweryfikowaj DSN

Wypisz skonfigurowane DSN, a następnie przetestuj połączenie:

odbcinst -q -s
isql -v FabricDSN

Polecenie wymaga isql narzędzi wiersza poleceń unixODBC.

Używaj DSN w aplikacjach

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);

Przykłady użycia

Przetestowaj połączenie z isql

Rozpocznij interaktywną sesję SQL:

isql -v FabricDSN

Wykonaj jedno zapytanie:

echo "SELECT 1 AS test" | isql -v FabricDSN -b

Praca z dużymi zbiorami wyników

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()

Odkryj schematy i tabele

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()

Mapowanie typu danych

Sterownik mapuje typy danych Spark SQL na typy SQL ODBC:

Typ Spark SQL Typ SQL ODBC Typ C/C++ Typ języka Python Typ platformy .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* Ciąg JSON string
MAP SQL_VARCHAR SQLCHAR* Ciąg JSON string
STRUCT SQL_VARCHAR SQLCHAR* Ciąg JSON string

Różnice między platformami

Funkcja Windows Linux
Menedżer kierowcy Menedżer sterowników Microsoft ODBC unixODBC
Sterownik binarny microsoftfabricodbc.dll libmicrosoftfabricodbc.so
Konfiguracja DSN Rejestr i interfejs graficzny Windows /etc/odbc.ini i ~/.odbc.ini
Rejestracja kierowcy Rejestr i odbcad32.exe odbcinst -i -d -f
Klient HTTP WinHTTP Libcurl
magazyn lokalny wątku Wbudowane wsparcie dla Windows Openssl
Uwierzytelnianie certyfikatu Windows CryptoAPI OpenSSL z plikami RS256 oraz PEM lub PFX
Uwierzytelnianie interakcyjne Okno przeglądarki Niedostępne na serwerach bezgłowych
Opakowanie Instalator MSI Pakiet Linux

Rozwiązywanie problemów

Kierowca nie znaleziony

Problem: Połączenie nie działa przy [IM002] Data source name not found and no default driver specified.

Rozwiązania:

  1. Sprawdź rejestrację kierowcy, uruchamiając odbcinst -q -d.
  2. Sprawdź, czy to /usr/lib/libmicrosoftfabricodbc.so istnieje.
  3. Zarejestruj sterownik, uruchamiając sudo odbcinst -i -d -f /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template.
  4. Przeinstaluj pakiet, uruchamiając sudo dpkg -i microsoft-fabric-odbc-driver-1.0.0-Linux.deb.

Nie znaleziono DSN

Problem: Połączenie nie działa przy [IM002] Data source name not found.

Rozwiązania:

  1. Zweryfikowaj konfigurację DSN, uruchamiając odbcinst -q -s.
  2. Zweryfikowaj, czy ~/.odbc.ini/etc/odbc.ini lub zawiera sekcję DSN.
  3. Upewnij się, że Driver wartość dokładnie odpowiada zarejestrowanemu nazwisku kierowcy.

Awarie połączenia

Problem: Sterownik nie może połączyć się z Fabric.

Rozwiązania:

  1. Sprawdź, czy identyfikator przestrzeni roboczej i identyfikator domu nad jeziorem są ważnymi GUID-ami.
  2. Sprawdź uwierzytelnianie Azure CLI poprzez uruchomienie az account show.
  3. Upewnij się, że masz wymagane uprawnienia do Fabric workspace.
  4. Sprawdź łączność sieciową i ustawienia proxy.

Błędy uwierzytelniania

Problem: uwierzytelnianie Azure CLI zawodzi.

Rozwiązania:

  1. Uciekaj az login , aby odświeżyć dane uwierzytelniające.
  2. Ustaw właściwą subskrypcję, uruchamiając az account set --subscription <subscription-id>.
  3. Sprawdź token, uruchamiając az account get-access-token --resource https://api.fabric.microsoft.com.
  4. Upewnij się, że Twoje konto ma wymagane uprawnienia do przestrzeni roboczej Fabric.

Błędy biblioteki współdzielonej

Problem: Sterownik zgłaszaerror while loading shared libraries: libmicrosoftfabricodbc.so .

Rozwiązania:

  1. Przeinstaluj pakiet, uruchamiając sudo dpkg -i microsoft-fabric-odbc-driver-1.0.0-Linux.deb.
  2. Sprawdź, czy to /usr/lib/libmicrosoftfabricodbc.so istnieje.
  3. Uruchom, sudo ldconfig aby odświeżyć pamięć podręczną współdzielonej biblioteki.

Limity czasu zapytań

Problem: Zapytania się wyłączają na dużych stołach.

Rozwiązania:

  1. Dodaj LargeTableSupport=true do parametrów połączenia.
  2. Dostosuj PageSizeBytes rozmiar wyniku.
  3. Dodaj EnableAsyncPrefetch=1 do parametrów połączenia.
  4. Użyj klauzuli LIMIT ograniczającej rozmiar wyniku.

Włącz logowanie

Umożliwienie szczegółowego logowania w DSN:

[FabricDSN]
LogLevel = DEBUG
LogFile  = /tmp/fabric_odbc_debug.log

Alternatywnie, można dodać parametry logowania do parametry połączenia:

LogLevel=DEBUG;LogFile=/tmp/fabric_odbc_debug.log;

Sterownik obsługuje następujące poziomy logów:

  • TRACE: Zawiera wszystkie wywołania API.
  • DEBUG: Zawiera szczegółowe informacje o debugowaniu.
  • INFO: Zawiera ogólne informacje i jest domyślna.
  • WARN: Zawiera tylko ostrzeżenia.
  • ERROR: Zawiera tylko błędy.

Włącz śledzenie unixODBC

Dla diagnostyki wywołań ODBC na niskim poziomie dodaj następującą konfigurację do /etc/odbcinst.ini:

[ODBC]
Trace     = yes
TraceFile = /tmp/odbc_trace.log

Wyłącz śledzenie po zakończeniu rozwiązywania problemów, aby uniknąć niepotrzebnych narzutów wydajnościowych.