Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
ODBC (Open Database Connectivity) er en mye brukt standard som gjør det mulig for klientapplikasjoner å koble til og arbeide med data fra databaser og big data-plattformer.
Microsoft ODBC Driver for Fabric Data Engineering lar deg koble til, spørre og administrere Spark-arbeidsbelastninger i Fabric med påliteligheten og enkelheten til ODBC-standarden. Bygget på Fabric sine Livy-API-er, gir driveren sikker og fleksibel Spark SQL-tilkobling til dine C/C++, .NET, Python og andre ODBC-kompatible applikasjoner på Linux.
Viktige funksjoner
- ODBC 3.x-kompatibel: Full implementering av ODBC 3.x-spesifikasjonen.
- Microsoft Entra ID-autentisering: Flere autentiseringsprosesser, inkludert Azure CLI, klientlegitimasjon, sertifikatbasert autentisering og tilgangstokenautentisering.
- Spark SQL-spørringsstøtte: Direkte kjøring av Spark SQL-setninger.
-
Omfattende støtte for datatyper: Støtte for alle Spark SQL-datatyper, inkludert komplekse typer (
ARRAY,MAP, ogSTRUCT). - Gjenbruk av sesjoner: Innebygd sesjonsadministrasjon for bedre ytelse.
- Høy-samtidighetsmodus: Velg delte, varme server-side Livy-økter for å redusere tilkoblingsoppstartsforsinkelse og Spark-klyngespredning.
- Støtte for store tabeller: Optimalisert håndtering for store resultatsett med konfigurerbare sidestørrelser.
- Asynkron forhåndshenting: Bakgrunnsdata laster inn for bedre ytelse.
- Proxy-støtte: HTTP-proxykonfigurasjon for bedriftsmiljøer.
- Multi-skjema lakehouse-støtte: Koble til et spesifikt skjema i et lakehouse.
Obs!
I åpen kildekode Apache Spark brukes database og skjema synonymt. For eksempel, å kjøre SHOW SCHEMAS eller SHOW DATABASES i en Fabric-notatbok gir samme resultat: en liste over alle skjemaer i innsjøhuset.
Forutsetninger
Før du bruker Microsoft ODBC-driveren for Microsoft Fabric Data Engineering på Linux, må du sørge for at du har følgende forutsetninger:
- Operativsystem: Ubuntu 22.04 eller nyere, Debian 11 eller nyere, eller Red Hat Enterprise Linux (RHEL) 8 eller nyere på x86-64.
-
unixODBC: ODBC-driveradministratoren for Linux. Installer
unixodbcog-pakkeneunixodbc-dev. -
libcurl: HTTP-kjøretidsavhengigheten, for eksempel
libcurl4eller tilsvarende pakke for distribusjonen din. -
OpenSSL: TLS- og kryptografi-runtime-avhengighet, som for eksempel
openssloglibssl3tilsvarende pakker. - Fabric access: Tilgang til et Fabric-arbeidsområde.
- Microsoft Entra ID-legitimasjon: Passende legitimasjon for autentisering.
- Workspace- og lakehouse-ID-er: GUID-identifikatorene for din Fabric workspace og lakehouse.
- Azure CLI (valgfritt): Kreves når du bruker Azure CLI-autentisering.
Last ned og installer på Linux
For å installere driveren:
Trekk ut
ms-sparksql-odbc-linux-2.0.0.tar.Åpne en terminal i den utpakkede katalogen.
Installer Debian-pakken:
sudo dpkg -i microsoft-fabric-odbc-driver-2.0.0-Linux.deb
Pakken installerer følgende filer:
| Fil | Installert sted |
|---|---|
| Driverbibliotek | /usr/lib/libmicrosoftfabricodbc.so |
| Mal for førerregistrering | /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template |
| DSN-konfigurasjonsmal | /usr/share/microsoft-fabric-odbc-driver/odbc.ini.template |
| Lisens | /usr/share/doc/microsoft-fabric-odbc-driver/LICENSE |
| Bruksguide | /usr/share/doc/microsoft-fabric-odbc-driver/USAGE_Linux.md |
Installer en RPM-pakke
På RHEL, Fedora eller CentOS, installer RPM-pakken fra det utpakkede driverarkivet:
sudo dnf install ./microsoft-fabric-odbc-driver-*.x86_64.rpm
Alternativt, bruk rpm:
sudo rpm -i microsoft-fabric-odbc-driver-*.x86_64.rpm
Sjekk at RPM registrerte driveren:
odbcinst -q -d | grep "Microsoft"
For å avinstallere RPM-pakken, kjør:
sudo dnf remove microsoft-fabric-odbc-driver
Installer en tarball
For distribusjoner uten Debian- eller RPM-pakkestøtte, eller for et tilpasset installasjonssted, pakk ut .tar.gz pakken og kjør installasjonsskriptet:
tar -xzf microsoft-fabric-odbc-driver-2.0.0-linux-x86_64.tar.gz
cd microsoft-fabric-odbc-driver-2.0.0
# Install to /opt/microsoft/fabricodbc.
sudo ./install.sh
# Or install to a custom writable location.
./install.sh --prefix=$HOME/fabricodbc
Installasjonsskriptet støtter disse alternativene:
| Alternativ | Beskrivelse |
|---|---|
--prefix=<path> |
Installer i en egendefinert mappe. Standardverdien er /opt/microsoft/fabricodbc. |
--no-register |
Hopp over unixODBC-førerregistrering. |
--dry-run |
Vis de planlagte endringene uten å installere filer. |
--uninstall |
Fjern de installerte filene og avregistrer driveren. |
--help |
Vis kommandohjelp. |
For å verifisere standard tarball-installasjon, kjør:
odbcinst -q -d
ls -la /opt/microsoft/fabricodbc/lib/libmicrosoftfabricodbc.so
For å avinstallere den, kjør sudo ./install.sh --uninstall fra den pakkede pakkekatalogen.
Registrer driveren manuelt
Pakken registrerer automatisk driveren hos unixODBC. For å registrere driveren manuelt, kjør:
sudo odbcinst -i -d -f /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template
Verifiser installasjonen
Verifiser at driveren er registrert og at biblioteket er installert:
odbcinst -q -d
ls -la /usr/lib/libmicrosoftfabricodbc.so
Kommandoen odbcinst skal vise [Microsoft ODBC Driver for Microsoft Fabric Data Engineering].
Avinstaller driveren
For å avinstallere driveren, kjør følgende kommando:
sudo dpkg -r microsoft-fabric-odbc-driver
Denne kommandoen fjerner driverfilene og avregistrerer driveren fra unixODBC.
Eksempel på hurtigstart
Følgende eksempler kobler til Fabric og kjører en Spark SQL-spørring. Fullfør forutsetningene og installer driveren før du kjører et eksempel.
Python-eksempel
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()
C/C++-eksempel
#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;
}
Bygg og kjør eksempelet:
g++ -o fabric_test fabric_test.cpp -lodbc -std=c++17
./fabric_test
.NET-eksempel
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));
}
Tilkoblingsstrengformat
Grunnleggende tilkoblingsstreng
Bruk følgende tilkoblingsstreng-format:
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};<parameter1>=<value1>;<parameter2>=<value2>;...
Tilkoblingsstrengkomponenter
| Komponent | Beskrivelse | Eksempel |
|---|---|---|
DRIVER |
ODBC-driveridentifikator | {Microsoft ODBC Driver for Microsoft Fabric Data Engineering} |
WorkspaceId |
Fabric workspace-identifikator (GUID) | 4bbf89a8-66bb-443f-91af-df31e6a7560b |
LakehouseId |
Fabric lakehouse-identifikator (GUID) | d8faa650-1343-496b-b9cc-d4168a676f90 |
AuthFlow |
Godkjenningsmetode |
AZURE_CLI, CLIENT_CREDENTIAL, CLIENT_CERTIFICATE, eller ACCESS_TOKEN |
Eksempler på tilkoblingsstrenger
Grunnleggende forbindelse
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI
Tilkobling med ytelsesalternativer
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;ReuseSession=true;LargeTableSupport=true;PageSizeBytes=18874368
Forbindelse med hogst
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
Forbindelse med høy samtidighetsmodus
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;LivyMode=HighConcurrency;SessionTag=bi-dashboard
For fullstendig konfigurasjonsveiledning, se High-concurrency (HC) mode).
Godkjenning
Microsoft ODBC-driveren for Microsoft Fabric Data Engineering støtter flere autentiseringsmetoder gjennom Microsoft Entra ID. Konfigurer autentisering ved å bruke parameteren AuthFlow i tilkoblingsstreng eller DSN.
Godkjenningsmetoder
AuthFlow-verdi |
Beskrivelse |
|---|---|
AZURE_CLI |
Utvikling med Azure CLI-legitimasjoner |
CLIENT_CREDENTIAL |
Tjenesteansvarlig med en klienthemmelighet |
CLIENT_CERTIFICATE |
Tjenesteleder med sertifikat |
ACCESS_TOKEN |
Forhåndsanskaffet bærertilgangstoken |
FILE_TOKEN |
Leser en autentiseringstoken fra en fil |
Obs!
Interaktiv nettleserautentisering er ikke tilgjengelig på headless Linux-servere. Bruk Azure CLI, klientlegitimasjon, sertifikatbasert autentisering eller tilgangstokenautentisering i stedet.
Azure CLI-autentisering
Bruk Azure CLI-autentisering for utviklings- og interaktive applikasjoner.
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)
Før du kobler til, sjekk at Azure CLI er installert og logg inn:
az --version
az login
For å installere Azure CLI på Debian eller Ubuntu, bruk pakkebehandleren:
sudo apt-get update
sudo apt-get install -y azure-cli
Autentisering av klientopplysninger
Bruk autentisering av klientinformasjon for automatiserte tjenester og bakgrunnsjobber.
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};"
)
Oppgi følgende parametere:
-
TenantId: Microsoft Entra-leietaker-ID. -
ClientId: Applikasjons- (klient-)ID-en. -
ClientSecret: Klientens hemmelighet.
Lagre hemmeligheter i en sikker hemmelig lagring eller miljøvariabler. Ikke lagre hemmeligheter i klartekstforbindelser eller INI-filer.
Sertifikatbasert godkjenning
Bruk sertifikatbasert autentisering for bedriftsapplikasjoner som krever sertifikatlegitimasjon.
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>;"
)
Oppgi følgende parametere:
-
TenantId: Microsoft Entra-leietaker-ID. -
ClientId: Applikasjons- (klient-)ID-en. -
CertificatePath: Veien til PFX- eller PKCS12-sertifikatfilen. -
CertificatePassword: Sertifikatpassordet.
Autentisering av tilgangstoken
Bruk autentisering av tilgangstokenet når applikasjonen din får tak i en token gjennom en annen mekanisme.
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};"
)
Filtokenautentisering
Bruk filtokenautentisering i containeriserte miljøer og automatiserte pipelines der en annen prosess skriver en bærertoken til driverens velkjente tokenfil:
connection_string = (
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=FILE_TOKEN;"
)
For støttede cross-driver-egenskapaliaser, se Cross-driver-property aliases.
Konfigurasjonsparametere
Påkrevde parametere
Inkluder disse parameterne i hver tilkoblingsstreng:
| Parameteren | Type | Beskrivelse | Eksempel |
|---|---|---|---|
WorkspaceId |
UUID | Identifikator for stoffarbeidsområde | 4bbf89a8-... |
LakehouseId |
UUID | Fabric lakehouse-identifikator | d8faa650-... |
AuthFlow |
string | Autentiseringsflyttype | AZURE_CLI |
Valgfrie parametere
Tilkoblingsinnstillinger
| Parameteren | Type | Standard | Beskrivelse |
|---|---|---|---|
Database |
string | Ingen | Innledende database for klassisk modus. HC-modus aktiverer det ikke automatisk; kjør USE <database> etter tilkobling eller bruk fullt kvalifiserte tabellnavn. |
Scope |
string | https://api.fabric.microsoft.com/.default |
OAuth-omfang |
Ytelsesinnstillinger
| Parameteren | Type | Standard | Beskrivelse |
|---|---|---|---|
ReuseSession |
boolsk | true |
Gjenbruk en eksisterende Spark-økt |
LargeTableSupport |
boolsk | false |
Aktiver optimaliseringer for store resultatsett |
EnableAsyncPrefetch |
boolsk | false |
Aktiver forhåndshenting av bakgrunnsdata |
PageSizeBytes |
Heltall |
18874368 (18 MB) |
Sidestørrelse for resultatpaginering fra 1 til 18 MB |
Loggingsinnstillinger
| Parameteren | Type | Standard | Beskrivelse |
|---|---|---|---|
LogLevel |
string | INFO |
Log-nivå: DEBUG, INFO, WARN, eller ERROR. Bruk DEBUG for detaljerte driverdiagnostikk. |
LogFile |
string | odbc_driver.log |
Absolutt eller relativ loggfilsti |
Proxy-innstillinger
| Parameteren | Type | Standard | Beskrivelse |
|---|---|---|---|
UseProxy |
boolsk | false |
Aktiver en proxy |
ProxyHost |
string | Ingen | Proxy-vertsnavn |
ProxyPort |
Heltall | Ingen | Proxy-port |
ProxyUsername |
string | Ingen | Proxy-autentisering brukernavn |
ProxyPassword |
string | Ingen | Proxy-autentiseringspassord |
Høy-samtidighetsinnstillinger (HC)
Bruk disse parameterne for å aktivere og konfigurere høy-samtidighet (HC)-modus. HC-modus er frivillig. Hvis du ikke setter LivyMode eller UseHighConcurrency, bruker driveren den klassiske enkeltsesjonsruten. For veiledning og eksempler, se High-concurrency (HC)-modus.
| Parameteren | Type | Standard | Beskrivelse |
|---|---|---|---|
LivyMode |
string | Ikke angitt | Kontrollerer innhenting av økter. Støttede verdier er Classic, HighConcurrencyog Auto.
Auto Bruker for øyeblikket den klassiske stien. |
UseHighConcurrency |
boolsk | false |
Aktiverer HC-modus som et alternativ til å sette LivyMode=HighConcurrency. |
SessionTag |
string | Ingen | Gir et serverside-pakketips. Tilkoblinger må bruke tilsvarende serverside-konfigurasjon for å dele en varm Livy-økt. |
IdempotencyKey |
string | Ingen | Gir en klientgenerert nøkkel for sikre HC-anskaffelsesforsøk. Driveren validerer tegnsettet og logger aldri verdien. |
EnvironmentId |
string | Ingen | Spesifiserer Fabric-miljøidentifikatoren som sendes som spark.fabric.environmentDetails i HC-anskaffelseskonfigurasjonen. |
HeartbeatTimeoutInSecond |
Heltall | Serverstandard | Setter server-side HC-sesjonens inaktive timeout, på sekunder. Verdien må være et positivt heltall. |
AcquireTimeoutSeconds |
Heltall | 300 |
Setter hvor lenge sjåføren venter på at en HC-økt skal nå tilstanden Idle , i sekunder. Verdien må være et positivt heltall. |
conf.<key> |
string | Ingen | Spesifiserer en Spark-konfigurasjonsoverstyring sendt i HC-anskaffelsesforespørselen. Eksempel: conf.spark.sql.shuffle.partitions=200. |
Modusforrang og validering
-
LivyModeHar forrang overUseHighConcurrencynår du setter begge parameterne. - Parameterverdiene er ikke små og små og mellombokstaver.
-
UseHighConcurrencyaksepterertrue,1,yes, elleronfor å aktivere HC-modus. Den godtarfalse,0, ,noelleroffå deaktivere HC-modus. - For andre ikke-tomme verdier returnerer
SQLDriverConnecten feil. DSN-onlySQLConnectlogger valideringsfeilen og bruker den klassiske stien.
Kompatibilitetsinnstillinger
Driveren aksepterer TenantPrincipal og PoolMax, inkludert deres miljøvariable fallbacks, for kompatibilitet med tidligere HC-konfigurasjoner. Driveren parser og validerer disse verdiene, men de påvirker ikke HC-sesjonsmatching eller kapasiteten i kjøretidspoolen. Ikke stol på dem for leietakerisolasjon eller tilkoblingsbegrensninger.
Miljøvariabler for fallbacks
Driveren bruker følgende miljøvariabler kun når den tilsvarende DSN- eller tilkoblingsstrengparameteren ikke er satt:
| Miljøvariabel | Kart til |
|---|---|
FABRIC_ODBC_USE_HC |
UseHighConcurrency |
FABRIC_ODBC_WORKSPACE_ID |
WorkspaceId |
FABRIC_ODBC_LAKEHOUSE_ID |
LakehouseId |
FABRIC_ODBC_ENVIRONMENT_ID |
EnvironmentId |
FABRIC_ODBC_SESSION_TAG |
SessionTag |
FABRIC_ODBC_TENANT_PRINCIPAL |
TenantPrincipal (kun kompatibilitet) |
FABRIC_ODBC_HC_HEARTBEAT_SECONDS |
HeartbeatTimeoutInSecond |
FABRIC_ODBC_HC_ACQUIRE_TIMEOUT |
AcquireTimeoutSeconds |
FABRIC_ODBC_HC_POOL_MAX |
PoolMax (kun kompatibilitet) |
For FABRIC_ODBC_USE_HC, gjenkjenner truekun miljøaktivering , 1, eller yes (kasus-ufølsom). Andre verdier lar HC-modus være deaktivert. Og onoff aliasene gjelder kun for DSN- og tilkoblingsstrengverdier.
Høy-samtidighet (HC) modus
High-concurrency (HC)-modus lar ODBC-tilkoblinger til samme arbeidsområde og lakehouse koble seg til delte, varme server-side Livy Spark-økter i stedet for å opprette en separat klynge for hver tilkobling. Bruk det til arbeidsbelastninger som BI-dashbord, notebook-kjerner og ETL-fan-out som åpner mange kortvarige tilkoblinger og kan dele serveradministrert Spark-kapasitet.
HC-modus er frivillig. Hvis du ikke konfigurerer en HC-innstilling, bruker driveren den klassiske enkeltsesjonsstien.
Velg en tilkoblingsmodus
Bruk HC-modus når:
- Arbeidsmengden din åpner mange kortvarige ODBC-tilkoblinger, som BI-dashbord, notebook-kjerner eller ETL-fan-out.
- Tilkoblinger retter seg mot samme arbeidsområde og lakehouse, og kan dele en serverstyrt Spark-økt.
- Å redusere kaldstartsforsinkelse per tilkobling er viktig.
Bruk klassisk modus når:
- Hver tilkobling krever en isolert Spark-økt på grunn av ulike Spark-konfigurasjoner eller streng ressursisolasjon.
- Fabric Livy-endepunktet for målarbeidsområdet og lakehouse støtter ikke HC-modus.
Aktiver høy-samtidighetsmodus
Legg til en høy-samtidighetsmodusparameter til DSN- eller tilkoblingsstreng.
Anbefalt: Sett LivyMode
Bruk LivyMode for å velge sesjonsinnhentingsmodus eksplisitt:
LivyMode=HighConcurrency
Støttede verdier er Classic, HighConcurrencyog Auto. Verdier er ikke små og små bokstaver.
Auto Velger for øyeblikket klassisk modus.
Alternativ: Sett UseHighConcurrency
Bruk Boolean-innstillingen for kompatibilitet med eksisterende konfigurasjoner:
UseHighConcurrency=true
For å aktivere høy-samtidighetsmodus, bruk true, 1, yes, eller on. For å deaktivere den, bruk false, 0, no, eller off. Verdier er ikke små og små bokstaver.
SQLDriverConnect avviser andre ikke-tomme verdier med SQLSTATE HY024. DSN-only SQLConnect logger valideringsfeilen og bruker klassisk modus.
Obs!
Hvis du setter begge parameterne, LivyMode får forrang over UseHighConcurrency.
Du kan også aktivere høy-samtidighetsmodus for det nåværende skallet ved å bruke miljøvariabler:
export FABRIC_ODBC_USE_HC=true
export FABRIC_ODBC_WORKSPACE_ID=<workspace-id>
export FABRIC_ODBC_LAKEHOUSE_ID=<lakehouse-id>
export FABRIC_ODBC_SESSION_TAG=bi-dashboard
Nødvendige parametere i HC-modus
HC-aktivering krever følgende gyldige identifikatorer:
| Parameteren | Merknader |
|---|---|
WorkspaceId |
Må være en gyldig Fabric workspace GUID. |
LakehouseId |
Må være en gyldig Fabric lakehouse GUID. |
Inkluder SessionTag fordi det påvirker server-side matching for varme økter.
Sesjonsmatching
HC-modus garanterer ikke at hver tilkobling gjenbruker en eksisterende økt. For hver forespørsel om sesjonsinnhenting sender driveren:
- Verdien
SessionTag. - Den effektive Spark-konfigurasjonen, inkludert
conf.*innstillinger ogEnvironmentId.
Fabric Livy-tjenesten vurderer disse verdiene og bestemmer om forbindelsen skal knyttes til en varm sesjon eller opprettes en ny. For å forbedre gjenbruk av sesjoner, bruk konsistente verdier på tvers av tilkoblinger som er ment å dele serveradministrert Spark-kapasitet.
Eksempler på tilkoblingsstrenger
Minimal HC-tilkobling med Azure CLI-autentisering:
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;LivyMode=HighConcurrency;SessionTag=bi-dashboard
HC-tilkobling med justerte timeouts:
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;LivyMode=HighConcurrency;SessionTag=etl-prod;AcquireTimeoutSeconds=180;HeartbeatTimeoutInSecond=600
HC-tilkobling med et miljø og Spark-konfigurasjonsoverstyringer:
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;LivyMode=HighConcurrency;EnvironmentId=<environment-id>;SessionTag=ml-team;conf.spark.sql.shuffle.partitions=200;conf.spark.executor.memory=8g
Python med pyodbc:
import pyodbc
conn = pyodbc.connect(
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=AZURE_CLI;"
"LivyMode=HighConcurrency;"
"SessionTag=notebook-kernel"
)
Konfigurer HC-modus i en Linux DSN
I stedet for å gjenta HC-innstillinger i hver tilkoblingsstreng, lagre dem for ~/.odbc.ini en brukerspesifikk DSN eller /etc/odbc.ini for en systemomfattende DSN.
[FabricHCDSN]
Description = Microsoft Fabric Data Engineering with HC mode
Driver = Microsoft ODBC Driver for Microsoft Fabric Data Engineering
WorkspaceId = <workspace-id>
LakehouseId = <lakehouse-id>
AuthFlow = AZURE_CLI
LivyMode = HighConcurrency
SessionTag = bi-dashboard
AcquireTimeoutSeconds = 300
HeartbeatTimeoutInSecond = 600
Etter at du har lagret DSN-et, verifiser det og test tilkoblingen.
odbcinst -q -s
isql -k -v "DSN=FabricHCDSN;"
Når en tilkoblingsstreng ikke spesifiserer en verdi, leser driveren disse innstillingene fra DSN:
LivyModeUseHighConcurrencyEnvironmentIdSessionTagIdempotencyKeyHeartbeatTimeoutInSecondAcquireTimeoutSeconds
Føreren leser også kun TenantPrincipal kompatibilitet og PoolMax innstillinger. Bruk parameternavnene i HC-innstillingstabellen.
Viktig
Driveren leser conf.* ikke Spark-konfigurasjonsoverstyringer fra DSN. Legg dem til tilkoblingsstreng under kjøring eller injiser dem før du kaller SQLDriverConnect.
Deaktiver HC-modus
Du kan deaktivere nye HC-sesjonsinnhentinger uten å deployere driveren på nytt. Bruk metoden som tilsvarer hvordan du aktiverte HC-modus:
| HC-konfigurasjonskilde | Hvordan deaktivere HC-modus |
|---|---|
| Kun miljøvariabel | Sett FABRIC_ODBC_USE_HC=false, eller fjern variabelen. |
| DSN | Sett LivyMode=Classic. Alternativt, fjern LivyMode og sett UseHighConcurrency=false. |
| Tilkoblingsstrengen | Sett LivyMode=Classic, eller fjern HC-parametrene. |
Tilkoblingsstreng- og DSN-innstillinger har forrang over miljøvariabel-fallback. Disse endringene gjelder kun nye forbindelser. Eksisterende HC-økter fortsetter til de slippes.
Forstå HC sin kjøretidsoppførsel
-
Validering:
SQLDriverConnectavviser ugyldige HC boolske og positive heltallsverdier med SQLSTATEHY024. Den avviser en ugyldigLivyModeog ugyldig eller overdimensjonertWorkspaceId,LakehouseId, ogIdempotencyKeyverdier med SQLSTATEHY000. En overdimensjonert kompatibilitetsverdiTenantPrincipalreturnererHY000også . For kunSQLConnectDSN logger driveren vanlige HC-valideringsfeil og bruker klassisk modus. Overdimensjonerte sikkerhetsfølsomme verdier feiler fortsatt forbindelsen. -
Sensitive data: Driveren ekskluderer eller fjerner
IdempotencyKeyandre sensitive felt fra HC-logger og diagnostiske resultater. - Avbestilling: Avbestilling av kontoutskrift er samarbeidsvillig. Serverarbeid som allerede pågår avsluttes rent i stedet for å bli avsluttet umiddelbart.
- Sikringer: HC- og klassiske moduser bruker separate sikringer. Å bruke ut én modus påvirker ikke den andre.
-
Startdatabase: HC-tilkoblinger utfører ikke den opprinnelige
USEsetningen for parameterenDatabase. KjørUSE <database>etter tilkobling eller bruk fullt kvalifiserte tabellnavn. -
Diagnostikk: Sett
LogLevel=DEBUGtil å loggføre beslutninger om HC-innhenting, polling, frigivelse og feilkartlegging. For fokusert feilsøking, settLIVY_HC_VERBOSE=1til å inkludere ekstra renset HC HTTP-diagnostikk.
DSN-konfigurasjon
På Linux, konfigurer datakildenavn (DSN) i INI-filer i stedet for i Windows-registeret.
| Fil | Omfang | Access |
|---|---|---|
/etc/odbc.ini |
Systemomfattende DSN-er | Krever sudo |
~/.odbc.ini |
Brukerspesifikke DSN-er | Kun nåværende bruker |
Opprett et DSN
Hvis ~/.odbc.ini det finnes, legg til den nye DSN-seksjonen uten å erstatte den eksisterende filen. Kopier den installerte malen kun når du oppretter filen:
if [ -e "$HOME/.odbc.ini" ]; then
echo "Preserve ~/.odbc.ini and add the new DSN section manually."
else
cp /usr/share/microsoft-fabric-odbc-driver/odbc.ini.template "$HOME/.odbc.ini"
fi
Rediger ~/.odbc.ini med dine Fabric-arbeidsområdedetaljer:
[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
Verifiser DSN-en
List opp de konfigurerte DSN-ene, og test deretter tilkoblingen:
odbcinst -q -s
isql -k -v "DSN=FabricDSN;"
Kommandoen isql krever kommandolinjeverktøyene unixODBC. Alternativet -k bruker SQLDriverConnect, som lar driveren behandle DSN-tilkoblingsattributter.
Bruk DSN i applikasjoner
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);
Brukseksempler
Test en tilkobling med isql
Start en interaktiv SQL-økt:
isql -k -v "DSN=FabricDSN;"
Kjør én enkelt spørring:
echo "SELECT 1 AS test" | isql -k -v "DSN=FabricDSN;" -b
Bruk -k for Fabric DSN-er slik at isql de kobler gjennom SQLDriverConnect i stedet for SQLConnect.
Arbeid med store resultatsett
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()
Oppdag skjemaer og tabeller
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()
Tilordning av datatype
Driveren tilordner Spark SQL-datatyper til ODBC SQL-typer:
| Spark SQL-type | ODBC SQL-type | C/C++-typen | Python-type | .NET-type |
|---|---|---|---|---|
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_VARBINARY |
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* |
JSON-streng | string |
MAP |
SQL_VARCHAR |
SQLCHAR* |
JSON-streng | string |
STRUCT |
SQL_VARCHAR |
SQLCHAR* |
JSON-streng | string |
Plattformforskjeller
| Funksjon | Windows | Linux |
|---|---|---|
| Førerleder | Microsoft ODBC Driver Manager | unixODBC |
| Driver-binær | microsoftfabricodbc.dll |
libmicrosoftfabricodbc.so |
| DSN-konfigurasjon | Windows-register og GUI |
/etc/odbc.ini Og ~/.odbc.ini |
| Førerregistrering | Register og odbcad32.exe |
odbcinst -i -d -f |
| HTTP-klient | WinHTTP | libcurl |
| lokalt trådlager | Windows innebygd støtte | Openssl |
| Sertifikatautentisering | Windows CryptoAPI | OpenSSL med RS256 og PEM- eller PFX-filer |
| Interaktiv godkjenning | Nettleservindu | Ikke tilgjengelig på headless-servere |
| Innpakning | MSI-installasjonsprogram |
.deb, .rpm, eller .tar.gz pakke |
Feilsøking
Føreren ikke funnet
Problem: Forbindelsen feiler med [IM002] Data source name not found and no default driver specified.
Løsninger:
- Verifiser førerregistreringen ved å kjøre
odbcinst -q -d. - Sjekk at det
/usr/lib/libmicrosoftfabricodbc.sofinnes. - Registrer sjåføren ved å kjøre
sudo odbcinst -i -d -f /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template. - Installer pakken på nytt ved å kjøre
sudo dpkg -i microsoft-fabric-odbc-driver-2.0.0-Linux.deb.
Driver ikke funnet etter en tarball-installasjon
Problem: Driveren er registrert, men det delte biblioteket er ikke til stede på den registrerte stien.
Løsninger:
- Sjekk at det
/opt/microsoft/fabricodbc/lib/libmicrosoftfabricodbc.sofinnes. - Kjør på nytt
sudo ./install.sh --prefix=/opt/microsoft/fabricodbc. - Hvis du brukte et tilpasset prefiks, sjekk at den registrerte driverstien bruker samme prefiks.
DSN ikke funnet
Problem: Forbindelsen feiler med [IM002] Data source name not found.
Løsninger:
- Verifiser DSN-konfigurasjonen ved å kjøre
odbcinst -q -s. - Verifiser at
~/.odbc.inieller/etc/odbc.iniinneholder DSN-delen. - Sørg for at verdien samsvarer
Drivernøyaktig med den registrerte sjåførens navn.
Tilkoblingsfeil
Problem: Driveren kan ikke koble til Fabric.
Løsninger:
- Sjekk at arbeidsplass-ID-en og lakehouse-ID-en er gyldige GUID-er.
- Sjekk Azure CLI-autentisering ved å kjøre
az account show. - Sørg for at du har de nødvendige Fabric-arbeidsplasstillatelsene.
- Sjekk nettverkstilkobling og proxy-innstillinger.
Godkjenningsfeil
Problem: Azure CLI-autentisering feiler.
Løsninger:
- Løp
az loginfor å oppdatere legitimasjonen din. - Sett riktig abonnement ved å kjøre
az account set --subscription <subscription-id>. - Sjekk tokenet ved å kjøre
az account get-access-token --resource https://api.fabric.microsoft.com. - Sørg for at kontoen din har de nødvendige Fabric-arbeidsplasstillatelsene.
Delte bibliotekfeil
Problem: Føreren rapporterer error while loading shared libraries: libmicrosoftfabricodbc.so.
Løsninger:
- Installer pakken på nytt ved å kjøre
sudo dpkg -i microsoft-fabric-odbc-driver-2.0.0-Linux.deb. - Sjekk at det
/usr/lib/libmicrosoftfabricodbc.sofinnes. - Kjør
sudo ldconfigfor å oppdatere cachen i det delte biblioteket.
Spørringstidsavbrudd
Problem: Forespørsler går ut på tid på store tabeller.
Løsninger:
- Legg til
LargeTableSupport=truei tilkoblingsstreng. - Juster
PageSizeBytesfor resultatstørrelsen. - Legg til
EnableAsyncPrefetch=1i tilkoblingsstreng. - Bruk en
LIMITklausul for å begrense resultatstørrelsen.
Aktiver logging
Aktiver detaljert logging i et DSN:
[FabricDSN]
LogLevel = DEBUG
LogFile = /tmp/fabric_odbc_debug.log
Alternativt, legg til loggingsparametere i tilkoblingsstreng:
LogLevel=DEBUG;LogFile=/tmp/fabric_odbc_debug.log;
Driveren støtter følgende log-nivåer:
-
DEBUG: Inkluderer detaljert feilsøkingsinformasjon og er det mest ordrike nivået på driverloggen. -
INFO: Inkluderer generell informasjon og er standard. -
WARN: Inkluderer kun advarsler. -
ERROR: Inneholder kun feil.
Aktiver unixODBC-sporing
For lavnivå ODBC-kalldiagnostikk, legg til følgende konfigurasjon til /etc/odbcinst.ini:
[ODBC]
Trace = yes
TraceFile = /tmp/odbc_trace.log
Slå av sporing når du er ferdig med feilsøking for å unngå unødvendig ytelsesbelastning.