Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
ODBC (Open Database Connectivity) on laajasti hyväksytty standardi, joka mahdollistaa asiakassovellusten yhteyden tietokantojen ja big data -alustojen datan käsittelyn ja sen kanssa.
Microsoft ODBC Driver for Fabric Data Engineering mahdollistaa Spark-työkuormien yhdistämisen, kyselyn ja hallinnan Fabric-järjestelmässä ODBC-standardin luotettavuudella ja yksinkertaisuudella. Fabric:n Livy-rajapintojen pohjalta rakennettu ajuri tarjoaa turvallisen ja joustavan Spark SQL -yhteyden C/C++-, .NET-, Python- ja muihin ODBC-yhteensopiviin Linux-sovelluksiin.
Tärkeimmät ominaisuudet
- ODBC 3.x -yhteensopivuus: ODBC 3.x -määrittelyn täysi toteutus.
- Microsoft Entra ID -tunnistautuminen: Useita todennusprosesseja, mukaan lukien Azure CLI, asiakastunnukset, varmennepohjainen ja pääsytunnusen tunnistautuminen.
- Spark SQL -kyselytuki: Spark SQL -lauseiden suora suoritus.
-
Kattava tietotyyppituki: Tuki kaikille Spark SQL -tietotyypeille, mukaan lukien monimutkaiset tyypit (
ARRAY,MAP, jaSTRUCT). - Istunnon uudelleenkäyttö: Sisäänrakennettu istunnonhallinta suorituskyvyn parantamiseksi.
- Korkean samanaikaisuuden tila: Valitse jaettuja, lämpimiä palvelinpuolen Livy-istuntoja yhteyden käynnistysviiveen ja Spark-klusterin leviämisen vähentämiseksi.
- Suuren taulun tuki: Optimoitu käsittely suurille tulosjoukoille, joissa sivukoot ovat konfiguroitavia.
- Asynkroninen esilataus: Taustalla lataava data suorituskyvyn parantamiseksi.
- Välityspalvelintuki: HTTP-välityspalvelimen konfiguraatio yritysympäristöihin.
- Moniskeemainen järvitalotuki: Yhdistä tiettyyn skeemaan järvimajassa.
Huomautus
Avoimen lähdekoodin Apache Sparkissa tietokantaa ja skeemaa käytetään synonyymeinä. Esimerkiksi Fabric-muistikirjan suorittaminen SHOW SCHEMASSHOW DATABASES palauttaa saman tuloksen: listan kaikista skeemoista järvenrakennuksessa.
Edellytykset
Ennen kuin käytät Microsoft ODBC Driveria Microsoft Fabric Data Engineeringille Linuxissa, varmista, että sinulla on seuraavat edellytykset:
- Käyttöjärjestelmä: Ubuntu 22.04 tai uudempi, Debian 11 tai uudempi, tai Red Hat Enterprise Linux (RHEL) 8 tai uudempi x86-64.
-
unixODBC: Linuxin ODBC-ajurien hallintaohjelma. Asenna
unixodbcja-paketitunixodbc-dev. -
libcurl: HTTP-ajonaikainen riippuvuus, kuten
libcurl4tai vastaava paketti jakelullesi. -
OpenSSL: TLS- ja kryptografian ajonaikainen riippuvuus, kuten
opensslvastaavatlibssl3paketit. - Fabric access: Pääsy Fabric-työtilaan.
- Microsoft Entra ID -tunnukset: Sopivat tunnistetiedot todennukseen.
- Työtilan ja järvenrakennuksen tunnukset: GUID-tunnisteet Fabric-työtilallesi ja järventalolle.
- Azure CLI (valinnainen): Vaaditaan, kun käytät Azure CLI -tunnistautumista.
Lataa ja asenna Linuxille
Ajurin asentamiseen:
Poimi
ms-sparksql-odbc-linux-2.0.0.tar.Avaa terminaali puretusta hakemistosta.
Asenna Debian-paketti:
sudo dpkg -i microsoft-fabric-odbc-driver-2.0.0-Linux.deb
Paketti asentaa seuraavat tiedostot:
| Tiedosto | Asennettu sijainti |
|---|---|
| Ajurikirjasto | /usr/lib/libmicrosoftfabricodbc.so |
| Kuljettajan rekisteröintimallipohja | /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template |
| DSN-konfiguraatiomalli | /usr/share/microsoft-fabric-odbc-driver/odbc.ini.template |
| Käyttöoikeus | /usr/share/doc/microsoft-fabric-odbc-driver/LICENSE |
| Käyttöopas | /usr/share/doc/microsoft-fabric-odbc-driver/USAGE_Linux.md |
Asenna RPM-paketti
RHEL:llä, Fedoralla tai CentOS:lla asenna RPM-paketti puretusta ajuriarkistosta:
sudo dnf install ./microsoft-fabric-odbc-driver-*.x86_64.rpm
Vaihtoehtoisesti käytä rpm:
sudo rpm -i microsoft-fabric-odbc-driver-*.x86_64.rpm
Varmista, että RPM rekisteröi ajurin:
odbcinst -q -d | grep "Microsoft"
Poistaaksesi RPM-paketin, suorita:
sudo dnf remove microsoft-fabric-odbc-driver
Asenna tarballi
Jakeluissa, joissa ei ole Debian- tai RPM-pakettitukea, tai mukautetulle asennuspaikalle, purkaa paketti .tar.gz ja suorita sen asennusskripti:
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
Asennusskripti tukee näitä vaihtoehtoja:
| Vaihtoehto | Description |
|---|---|
--prefix=<path> |
Asenna mukautettuun hakemistoon. Oletusarvo on /opt/microsoft/fabricodbc. |
--no-register |
Jätä unixODBC-kuljettajan rekisteröinti väliin. |
--dry-run |
Näytä suunnitellut muutokset ilman tiedostojen asentamista. |
--uninstall |
Poista asennetut tiedostot ja poista ajurin rekisteröinti. |
--help |
Näytä komentoapua. |
Varmistaaksesi oletus-tarball-asennuksen, suorita:
odbcinst -q -d
ls -la /opt/microsoft/fabricodbc/lib/libmicrosoftfabricodbc.so
Poistaaksesi sen, suorita sudo ./install.sh --uninstall puretusta pakettihakemistosta.
Rekisteröi ajuri manuaalisesti
Paketti rekisteröi ajurin automaattisesti unixODBC:llä. Rekisteröidäksesi ajurin manuaalisesti, suorita:
sudo odbcinst -i -d -f /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template
Tarkista asennus
Varmista, että ajuri on rekisteröity ja kirjasto asennettu:
odbcinst -q -d
ls -la /usr/lib/libmicrosoftfabricodbc.so
Käskyn odbcinst tulisi listata [Microsoft ODBC Driver for Microsoft Fabric Data Engineering].
Poista ajuri
Poistaaksesi ajurin, suorita seuraava komento:
sudo dpkg -r microsoft-fabric-odbc-driver
Tämä komento poistaa ajuritiedostot ja poistaa ajurin rekisteröinnin unixODBC:stä.
Nopea aloitusesimerkki
Seuraavat esimerkit yhdistävät Fabric-tiedostoon ja suorittavat Spark SQL -kyselyn. Suorita vaaditut vaatimukset ja asenna ajuri ennen kuin suoritat esimerkin.
Python-esimerkki
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++-esimerkki
#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;
}
Rakenna ja suorita esimerkki:
g++ -o fabric_test fabric_test.cpp -lodbc -std=c++17
./fabric_test
.NET-esimerkki
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));
}
Yhteysmerkkijonomuoto
Perusyhteysjono
Käytä seuraavaa yhteysmerkkijono -muotoa:
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};<parameter1>=<value1>;<parameter2>=<value2>;...
Yhteysmerkkijonon komponentit
| Komponentti | Description | Esimerkki |
|---|---|---|
DRIVER |
ODBC-ajurin tunniste | {Microsoft ODBC Driver for Microsoft Fabric Data Engineering} |
WorkspaceId |
Fabric-työtilan tunniste (GUID) | 4bbf89a8-66bb-443f-91af-df31e6a7560b |
LakehouseId |
Fabric-järvimajan tunniste (GUID) | d8faa650-1343-496b-b9cc-d4168a676f90 |
AuthFlow |
Todentamismenetelmä |
AZURE_CLI, CLIENT_CREDENTIAL, CLIENT_CERTIFICATEtai ACCESS_TOKEN |
Esimerkkejä yhteysmerkkijonoista
Perusyhteys
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI
Yhteys suorituskykyvaihtoehtoihin
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;ReuseSession=true;LargeTableSupport=true;PageSizeBytes=18874368
Yhteys lokitukseen
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
Yhteys korkean samanaikaisuuden tilaan
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;LivyMode=HighConcurrency;SessionTag=bi-dashboard
Täydelliset konfiguraatioohjeet löytyvät kohdasta Korkean samanaikaisuuden (HC) tila.
Todennus
Microsoft ODBC Driver for Microsoft Fabric Data Engineering tukee useita todennusmenetelmiä Microsoft Entra ID:n kautta. Määritä todennus käyttämällä AuthFlow parametria yhteysmerkkijono:ssä tai DSN:ssä.
Todennusmenetelmät
AuthFlow arvo |
Description |
|---|---|
AZURE_CLI |
Kehitys Azure CLI -tunnisteuksilla |
CLIENT_CREDENTIAL |
Palvelupäähenkilö, jossa on asiakassalaisuus |
CLIENT_CERTIFICATE |
Palvelupäämies sertifikaatilla |
ACCESS_TOKEN |
Ennakkoon hankittu haltijan pääsytunnus |
FILE_TOKEN |
Lukee todennustunnuksen tiedostosta |
Huomautus
Interaktiivista selaimen tunnistautumista ei ole saatavilla headless-Linux-palvelimilla. Käytä sen sijaan Azure CLI:tä, asiakastunnuksia, varmennepohjaista tai käyttötunnisteen todennusta.
Azure CLI -todennus
Käytä Azure CLI -todennuksia kehitykseen ja interaktiivisiin sovelluksiin.
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)
Ennen kuin yhdistät, varmista, että Azure CLI on asennettu ja kirjaudu sisään:
az --version
az login
Jos haluat asentaa Azure CLI:n Debianiin tai Ubuntuun käyttämällä pakettihallintaa:
sudo apt-get update
sudo apt-get install -y azure-cli
Asiakastunnisteiden todennus
Käytä asiakastunnisteiden tunnistautumista automatisoituihin palveluihin ja taustatehtäviin.
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};"
)
Anna seuraavat parametrit:
-
TenantId: Microsoft Entra -vuokralaisen ID. -
ClientId: Sovelluksen (asiakas) tunnus. -
ClientSecret: Asiakassalaisuus.
Tallenna salaisuudet turvalliseen salavarastoon tai ympäristömuuttujiin. Älä tallenna salaisuuksia selväkielisiin yhteysjonoihin tai INI-tiedostoihin.
Varmennepohjainen todentaminen
Käytä varmennepohjaista tunnistautumista yrityssovelluksissa, jotka vaativat varmennetunnon tunnisteet.
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>;"
)
Anna seuraavat parametrit:
-
TenantId: Microsoft Entra -vuokralaisen ID. -
ClientId: Sovelluksen (asiakas) tunnus. -
CertificatePath: Polku PFX- tai PKCS12-varmennetiedostoon. -
CertificatePassword: Sertifikaatin salasana.
Pääsytunnuksen tunnistautuminen
Käytä käyttöoikeustunnisteen tunnistautumista, kun sovelluksesi hankkii tokenin toisen mekanismin kautta.
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};"
)
Tiedostotunnuksen tunnistautuminen
Käytä tiedostotoken-tunnistautumista konttipohjaisissa ympäristöissä ja automatisoiduissa putkissa, joissa toinen prosessi kirjoittaa kantajatokenin kuljettajan tunnettuun token-tiedostoon:
connection_string = (
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=FILE_TOKEN;"
)
Tuetuista ristiinajurien omaisuusaliaksista katso Ristiinkuljettajien ominaisuusalias.
Määritysparametrit
Pakolliset parametrit
Sisällytä nämä parametrit jokaiseen yhteysmerkkijonoiin:
| Parametri | Type (Tyyppi) | Description | Esimerkki |
|---|---|---|---|
WorkspaceId |
UUID | Fabric-työtilan tunnus | 4bbf89a8-... |
LakehouseId |
UUID | Fabric-järvimajan tunniste | d8faa650-... |
AuthFlow |
merkkijono | Tunnistautumisen virtaustyyppi | AZURE_CLI |
Valinnaiset parametrit
Yhteysasetukset
| Parametri | Type (Tyyppi) | Oletus | Description |
|---|---|---|---|
Database |
merkkijono | Ei ole | Alkuperäinen tietokanta klassikkotilalle. HC-tila ei sovellu sitä automaattisesti; suorita USE <database> yhdistämisen jälkeen tai käytä täysin kelvollisia taulunimiä. |
Scope |
merkkijono | https://api.fabric.microsoft.com/.default |
OAuthin laajuus |
Esitysasetukset
| Parametri | Type (Tyyppi) | Oletus | Description |
|---|---|---|---|
ReuseSession |
totuusarvo | true |
Käytä olemassa olevaa Spark-istuntoa uudelleen |
LargeTableSupport |
totuusarvo | false |
Ota optimointi käyttöön suurille tulosjoukoille |
EnableAsyncPrefetch |
totuusarvo | false |
Ota taustatietojen esihakemus käyttöön |
PageSizeBytes |
Integer |
18874368 (18 MB) |
Tulossivujen koko 1–18 MB |
Lokiasetukset
| Parametri | Type (Tyyppi) | Oletus | Description |
|---|---|---|---|
LogLevel |
merkkijono | INFO |
Logaritmitaso: DEBUG, INFO, WARN, tai ERROR. Käytä DEBUG yksityiskohtaisiin kuljettajien diagnostiikkaan. |
LogFile |
merkkijono | odbc_driver.log |
Absoluuttinen tai suhteellinen lokitiedostopolku |
Välityspalvelimen asetukset
| Parametri | Type (Tyyppi) | Oletus | Description |
|---|---|---|---|
UseProxy |
totuusarvo | false |
Ota välityspalvelin käyttöön |
ProxyHost |
merkkijono | Ei ole | Välityspalvelimen isäntänimi |
ProxyPort |
Integer | Ei ole | Proxy-portti |
ProxyUsername |
merkkijono | Ei ole | Välityspalvelimen todennuskäyttäjänimi |
ProxyPassword |
merkkijono | Ei ole | Välityspalvelimen todennussalasana |
Korkean samanaikaisuuden (HC) asetukset
Käytä näitä parametreja ottaaksesi käyttöön ja konfiguroidaksesi korkean samanaikaisuuden (HC) tilan. HC-tila on vapaaehtoinen. Jos et aseta LivyMode tai UseHighConcurrency, ajuri käyttää klassista yhden session polkua. Ohjeita ja esimerkkejä varten katso Korkean samanaikaisuuden (HC) tila.
| Parametri | Type (Tyyppi) | Oletus | Description |
|---|---|---|---|
LivyMode |
merkkijono | Ei asetettu | Ohjaa istunnon hankintaa. Tuettuja arvoja ovat Classic, HighConcurrencyja Auto.
Auto Tällä hetkellä käytetään klassista polkua. |
UseHighConcurrency |
totuusarvo | false |
Ottaa HC-tilan käyttöön vaihtoehtona asettamiselle LivyMode=HighConcurrency. |
SessionTag |
merkkijono | Ei ole | Antaa vihjeen palvelinpuolen pakkausta. Yhteyksien on käytettävä vastaavaa palvelinpuolen konfiguraatiota jakaakseen lämpimän Livy-istunnon. |
IdempotencyKey |
merkkijono | Ei ole | Tarjoaa asiakkaan luoman avaimen turvallisia HC-hankintayrityksiä varten. Ajuri vahvistaa merkkijoukon eikä koskaan kirjaa arvoa. |
EnvironmentId |
merkkijono | Ei ole | Määrittelee Fabric-ympäristön tunnisteen, joka lähetetään HC-hankintakonfiguraatiossaspark.fabric.environmentDetails. |
HeartbeatTimeoutInSecond |
Integer | Palvelimen oletus | Asettaa palvelinpuolen HC-istunnon lepotilan aikakatkaisun sekunneissa. Arvon täytyy olla positiivinen kokonaisluku. |
AcquireTimeoutSeconds |
Integer | 300 |
Määrittää, kuinka kauan kuljettaja odottaa HC-istunnon saapumista Idle tilaan, sekunneissa. Arvon täytyy olla positiivinen kokonaisluku. |
conf.<key> |
merkkijono | Ei ole | Määrittelee Spark-konfiguraatioiden ohituksen, joka lähetetään HC-hankintapyynnössä. Esimerkki: conf.spark.sql.shuffle.partitions=200. |
Moodien etusijaisuus ja validointi
-
LivyModeSe menee etusijalle,UseHighConcurrencykun asetat molemmat parametrit. - Parametriarvot eivät ole kirjainkoon herkkiä.
-
UseHighConcurrencyhyväksyytrue,1,yes, taionHC-tilan aktivoimiseksi. Se hyväksyyfalse,0,no, taioffHC-tilan poistamiseksi käytöstä. - Muiden ei-tyhjien arvojen kohdalla palauttaa
SQLDriverConnectvirheen. DSN-onlySQLConnectkirjaa validointivirheen ja käyttää klassista polkua.
Yhteensopivuusasetukset
Ajuri hyväksyy TenantPrincipal ja PoolMax, mukaan lukien ympäristön muuttuvat varasuunnitelmat, yhteensopivuuden vuoksi aiempien HC-konfiguraatioiden kanssa. Ajuri jäsentää ja validoi nämä arvot, mutta ne eivät vaikuta HC-istuntojen sovitukseen tai ajonaikaiseen poolin kapasiteettiin. Älä luota niihin vuokralaisten eristyksessä tai yhteysrajoituksissa.
Ympäristömuuttujien varasuunnitelmat
Ajuri käyttää seuraavia ympäristömuuttujia vain, kun vastaavaa DSN- tai connection-string-parametria ei ole asetettu:
| Ympäristön muuttuja | Kartat |
|---|---|
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 (vain yhteensopivuus) |
FABRIC_ODBC_HC_HEARTBEAT_SECONDS |
HeartbeatTimeoutInSecond |
FABRIC_ODBC_HC_ACQUIRE_TIMEOUT |
AcquireTimeoutSeconds |
FABRIC_ODBC_HC_POOL_MAX |
PoolMax (vain yhteensopivuus) |
Kun FABRIC_ODBC_USE_HC, pelkkä ympäristön mahdollistaminen tunnistaa true, 1, tai yes (sijainherkkyys). Muut arvot jättävät HC-tilan pois päältä. Ja-aliakset onoff koskevat vain DSN- ja yhteysmerkkijonojen arvoja.
Korkean samanaikaisuuden (HC) tila
High-concurrency (HC) -tila mahdollistaa ODBC-yhteyksien liittämisen samaan työtilaan ja lakehouseen yhteisiin, lämpimiin palvelinpuolen Livy Spark -sessioihin sen sijaan, että jokaiselle yhteydelle olisi oma klusteri. Käytä sitä työkuormiin, kuten BI-hallintapaneelit, notebook-ytimet ja ETL-hajautus, jotka avaavat monia lyhytikäisiä yhteyksiä ja voivat jakaa palvelimen hallinnoiman Spark-kapasiteetin.
HC-tila on vapaaehtoinen. Jos et määritä HC-asetusta, ajuri käyttää klassista yhden istunnon polkua.
Yhteystilan valitseminen
Käytä HC-tilaa, kun:
- Työkuormasi avaa monia lyhytikäisiä ODBC-yhteyksiä, kuten BI-hallintapaneelit, notebook-ytimet tai ETL-hajautuksen.
- Yhteydet kohdistuvat samaan työtilaan ja järvimajaan ja voivat jakaa palvelimen hallinnoiman Spark-istunnon.
- Jokaisen yhteyden kylmäkäynnistyksen viiveen vähentäminen on tärkeää.
Käytä klassista tilaa, kun:
- Jokainen yhteys vaatii erillisen Spark-istunnon erilaisten Spark-asetusten tai tiukan resurssieristyksen vuoksi.
- Fabric Livy -päätepiste kohdetyötilalle ja järvitalolle ei tue HC-tilaa.
Ota käyttöön korkean samanaikaisuuden tila
Lisää DSN:ään tai yhteysmerkkijonoiin korkean samanaikaisuuden tilan parametri.
Suositeltava: Setti LivyMode
Käytä LivyMode valitaksesi istunnon hankintatilan eksplisiittisesti:
LivyMode=HighConcurrency
Tuettuja arvoja ovat Classic, HighConcurrencyja Auto. Arvot eivät ole kirjainkoon herkkiä.
Auto tällä hetkellä valitsee klassisen tilan.
Vaihtoehto: Aseta UseHighConcurrency
Käytä Boolean-asetusta yhteensopivuuden varmistamiseksi olemassa olevien kokoonpanojen kanssa:
UseHighConcurrency=true
Korkean samanaikaisuuden tilan aktivoimiseksi käytä true, 1, yes, tai on. Poistaaksesi sen käytöstä, käytä false, 0, no, tai off. Arvot eivät ole kirjainkoon herkkiä.
SQLDriverConnect hylkää muut ei-tyhjät arvot SQLSTATE HY024:llä . Pelkkä SQLConnect DSN-kirjaa validointivirheen ja käyttää klassista tilaa.
Huomautus
Jos asetat molemmat parametrit, LivyMode se menee etusijalle .UseHighConcurrency
Voit myös ottaa käyttöön korkean samanaikaisuuden tilan nykyiselle kuorelle käyttämällä ympäristömuuttujia:
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
Vaaditut parametrit HC-tilassa
HC-aktivointi vaatii seuraavat kelvolliset tunnisteet:
| Parametri | Huomautuksia |
|---|---|
WorkspaceId |
Sen täytyy olla voimassa oleva Fabric-työtilan GUID. |
LakehouseId |
Sen täytyy olla voimassa oleva Fabric Lakehouse -käyttöliittymä. |
Sisällytä SessionTag , koska se vaikuttaa palvelinpuolen matchaukseen lämpimissä sessioissa.
Istuntojen yhdistäminen
HC-tila ei takaa, että jokainen yhteys käyttää olemassa olevaa istuntoa uudelleen. Jokaisesta istuntokeruuspyynnöstä kuljettaja lähettää:
- Arvo
SessionTag. - Tehokas Spark-konfiguraatio, mukaan lukien
conf.*asetukset jaEnvironmentId.
Fabric Livy -palvelu arvioi nämä arvot ja päättää, liitetäänkö yhteys lämpimään istuntoon vai luodako uusi istunto. Istunnon uudelleenkäytön parantamiseksi käytä yhtenäisiä arvoja yhteyksien välillä, joiden on tarkoitus jakaa palvelimen hallinnoima Spark-kapasiteetti.
Esimerkkejä yhteysmerkkijonoista
Minimaalinen HC-yhteys Azure CLI -autentikointiin:
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;LivyMode=HighConcurrency;SessionTag=bi-dashboard
HC-yhteys viritetyillä aikakatkaisuilla:
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-yhteys ympäristöön ja Spark-konfiguraatio ohittaa:
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, jossa 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"
)
HC-tilan konfigurointi Linux DSN:ssä
Sen sijaan, että toistaisit HC-asetukset jokaisessa yhteysmerkkijono, tallenna ~/.odbc.ini ne käyttäjäkohtaiseen DSN:ään tai /etc/odbc.ini koko järjestelmän DSN:ään.
[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
Kun olet tallentanut DSN:n, varmista se ja testaa yhteys.
odbcinst -q -s
isql -k -v "DSN=FabricHCDSN;"
Kun yhteysmerkkijono ei määritä arvoa, ajuri lukee seuraavat asetukset DSN:stä:
LivyModeUseHighConcurrencyEnvironmentIdSessionTagIdempotencyKeyHeartbeatTimeoutInSecondAcquireTimeoutSeconds
Ajuri lukee myös pelkästään TenantPrincipal yhteensopivuuden ja PoolMax asetukset. Käytä HC-asetustaulukon parametrien nimiä.
Tärkeää
Ajuri ei lue conf.* Spark-konfiguraatioiden ohituksia DSN:stä. Lisää ne yhteysmerkkijonoiin ajonaikaisesti tai injektoi ne ennen kuin kutsut SQLDriverConnect.
Poista HC-tila käytöstä
Voit poistaa uudet HC-istunnon hankinnat käytöstä ilman, että joudut ottamaan ajurin uudelleen käyttöön. Käytä menetelmää, joka vastaa HC-tilan käyttöönottoa:
| HC-konfiguraatiolähde | Kuinka poistaa HC-tila käytöstä |
|---|---|
| Vain ympäristömuuttuja | Aseta FABRIC_ODBC_USE_HC=false, tai poista muuttuja. |
| DSN | Asetettu LivyMode=Classic. Vaihtoehtoisesti poista LivyMode ja aseta UseHighConcurrency=false. |
| Yhteysjono | Aseta LivyMode=Classic, tai poista HC-parametrit. |
Yhteysmerkkijonon ja DSN-asetukset ovat etusijalla ympäristömuuttujan varasuunnitelmaan nähden. Nämä muutokset koskevat vain uusia yhteyksiä. Nykyiset HC-istunnot jatkuvat, kunnes ne julkaistaan.
Ymmärrä HC:n ajonaikainen käyttäytyminen
-
Validointi:
SQLDriverConnecthylkää virheelliset HC Boolean- ja positiiviset kokonaislukuarvot SQLSTATEHY024:llä. Se hylkää virheellisenLivyModeja virheellisen tai ylisuurenWorkspaceId,LakehouseId, jaIdempotencyKeyarvot SQLSTATE-tilassaHY000. Ylisuurikokoinen yhteensopivuusarvoTenantPrincipalpalauttaaHY000myös . PelkästäänSQLConnectDSN-tilassa ajuri kirjaa tavalliset HC-validointivirheet ja käyttää klassista tilaa. Ylisuuret turvallisuusherkät arvot epäonnistuvat silti yhteydessä. -
Arkaluonteiset tiedot: Kuljettaja sulkee pois tai
IdempotencyKeypuhdistaa ja muut arkaluontoiset kentät HC-lokeista ja diagnostiikkatuotoksista. - Peruutus: Tiliotteen peruutus on yhteistyöhalua. Palvelintyö, joka on käynnissä, päättyy siististi sen sijaan, että lopetettaisiin välittömästi.
- Katkaisijat: HC- ja klassikkotilat käyttävät erillisiä katkaisijoita. Yhden tilan loppuun käyttäminen ei vaikuta toiseen.
-
Alkuperäinen tietokanta: HC-yhteydet eivät suorita parametrin alkuperäistä
USElausettaDatabase. SuoritaUSE <database>yhdistämisen jälkeen tai käytä täysin päteviä taulukkonimiä. -
Diagnostiikka: Asetettu
LogLevel=DEBUGkirjaamaan HC:n hankinta-, kysely-, julkaisu- ja virhekartoituspäätökset. Kohdennettua vianmääritystä varten asetaLIVY_HC_VERBOSE=1lisätyt puhdistetut HC HTTP -diagnostiikat.
DSN-konfiguraatio
Linuxissa määritä tietolähteiden nimet (DSN) INI-tiedostoihin Windows-rekisterin sijaan.
| Tiedosto | Vaikutusalue | Access |
|---|---|---|
/etc/odbc.ini |
Järjestelmätason DSN:t | Vaatii sudo |
~/.odbc.ini |
Käyttäjäkohtaiset DSN:t | Vain nykyisille käyttäjille |
Luo DSN
Jos ~/.odbc.ini sellainen on olemassa, lisää uusi DSN-osio korvaamatta olemassa olevaa tiedostoa. Kopioi asennettu mallipohja vain tiedoston luomisen yhteydessä:
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
Muokkaa ~/.odbc.ini Fabric-työtilan yksityiskohtia:
[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
Varmista DSN
Listaa konfiguroidut DSN:t ja testaa sitten yhteys:
odbcinst -q -s
isql -k -v "DSN=FabricDSN;"
Komento isql vaatii unixODBC-komentorivityökalut. Vaihtoehto -k käyttää SQLDriverConnect, jonka avulla kuljettaja käsittelee DSN-yhteysattribuutteja.
Käytä DSN:ää sovelluksissa
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);
Käyttöesimerkkejä
Testaa yhteyttä isql:llä
Aloita interaktiivinen SQL-istunto:
isql -k -v "DSN=FabricDSN;"
Suorita yksi kysely:
echo "SELECT 1 AS test" | isql -k -v "DSN=FabricDSN;" -b
Käytä -k Fabric DSN:ää, joten isql se yhdistyy läpi SQLDriverConnect eikä SQLConnect.
Työ suurilla tulosjoukoilla
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()
Tutustu skeemoihin ja taulukoihin
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()
Tietotyyppien kartoittaminen
Ajuri kartoittaa Spark SQL -tietotyypit ODBC:n SQL-tyyppeihin:
| Spark SQL -tyyppi | ODBC SQL-tyyppi | C/C++-tyyppi | Python-tyyppi | .NET-tyyppi |
|---|---|---|---|---|
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-merkkijono | string |
MAP |
SQL_VARCHAR |
SQLCHAR* |
JSON-merkkijono | string |
STRUCT |
SQL_VARCHAR |
SQLCHAR* |
JSON-merkkijono | string |
Käyttöympäristön erot
| Ominaisuus | Windows | Linux |
|---|---|---|
| Kuljettajavalmentaja | Microsoft ODBC Driver Manager | unixODBC |
| Ajurin binääri | microsoftfabricodbc.dll |
libmicrosoftfabricodbc.so |
| DSN-konfiguraatio | Windows-rekisteri ja käyttöliittymä |
/etc/odbc.ini Ja ~/.odbc.ini |
| Kuljettajarekisteröinti | Rekisteri ja odbcad32.exe |
odbcinst -i -d -f |
| HTTP-asiakasohjelma | WinHTTP | libcurl |
| TLS | Windows-sisäänrakennettu tuki | Openssl |
| Sertifikaattien tunnistautuminen | Windows CryptoAPI | OpenSSL RS256- ja PEM- tai PFX-tiedostoilla |
| Vuorovaikutteinen todentaminen | Selausikkuna | Ei saatavilla päättömillä palvelimilla |
| Pakkaus | MSI-asennusohjelma |
.deb, .rpm, tai .tar.gz paketti |
Vianmääritys
Kuljettajaa ei löydy
Ongelma: Yhteys epäonnistuu .[IM002] Data source name not found and no default driver specified
Ratkaisut:
- Varmista kuljettajan rekisteröinti ajamalla
odbcinst -q -d. - Varmista, että sellainen
/usr/lib/libmicrosoftfabricodbc.soon olemassa. - Rekisteröi ajuri ajamalla
sudo odbcinst -i -d -f /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template. - Asenna paketti uudelleen ajamalla
sudo dpkg -i microsoft-fabric-odbc-driver-2.0.0-Linux.deb.
Kuljettajaa ei löydetty tarball-asennuksen jälkeen
Ongelma: Ajuri on rekisteröity, mutta jaettua kirjastoa ei ole rekisteröidyllä polulla.
Ratkaisut:
- Varmista, että sellainen
/opt/microsoft/fabricodbc/lib/libmicrosoftfabricodbc.soon olemassa. - Suorita uudelleen
sudo ./install.sh --prefix=/opt/microsoft/fabricodbc. - Jos käytit mukautettua etuliitettä, varmista, että rekisteröity ajurin polku käyttää samaa etuliitettä.
DSN:ää ei löydy
Ongelma: Yhteys epäonnistuu .[IM002] Data source name not found
Ratkaisut:
- Varmista DSN-asetus ajamalla
odbcinst -q -s. - Varmista, että
~/.odbc.inise sisältää/etc/odbc.iniDSN-osion. - Varmista, että arvo
Drivertäsmälleen vastaa rekisteröityä kuljettajan nimeä.
Yhteyden epäonnistumiset
Ongelma: Ajuri ei pääse yhdistämään Fabric:iin.
Ratkaisut:
- Varmista, että työtilan ID ja järvitalotunnus ovat kelvollisia GUID-kortteja.
- Tarkista Azure CLI -autentikointi ajamalla
az account show. - Varmista, että sinulla on tarvittavat Fabric-työtilaoikeudet.
- Tarkista verkkoyhteys ja välityspalvelinasetukset.
Todennusvirheet
Ongelma: Azure CLI -todennus epäonnistuu.
Ratkaisut:
- Juokse
az loginpäivittääksesi tunnuksesi. - Aseta oikea tilaus ajamalla
az account set --subscription <subscription-id>. - Tarkista token ajamalla
az account get-access-token --resource https://api.fabric.microsoft.com. - Varmista, että tililläsi on vaaditut Fabric-työtilaoikeudet.
Jaetun kirjaston virheet
Ongelma: Kuljettaja raportoi error while loading shared libraries: libmicrosoftfabricodbc.so.
Ratkaisut:
- Asenna paketti uudelleen ajamalla
sudo dpkg -i microsoft-fabric-odbc-driver-2.0.0-Linux.deb. - Varmista, että sellainen
/usr/lib/libmicrosoftfabricodbc.soon olemassa. - Juokse
sudo ldconfigpäivitäksesi jaetun kirjaston välimuistin.
Kyselyn aikakatkaisut
Ongelma: Kyselyt aikakatkaistaan suurilla pöydillä.
Ratkaisut:
- Lisää
LargeTableSupport=trueyhteysmerkkijono. - Säädä
PageSizeBytestuloksen kokoa. - Lisää
EnableAsyncPrefetch=1yhteysmerkkijono. - Käytä lauseketta
LIMITrajoittaaksesi tuloskokoa.
Lokituksen ottaminen käyttöön
Ota yksityiskohtainen lokiminen käyttöön DSN:ssä:
[FabricDSN]
LogLevel = DEBUG
LogFile = /tmp/fabric_odbc_debug.log
Vaihtoehtoisesti lisää lokiparametrit yhteysmerkkijonoiin:
LogLevel=DEBUG;LogFile=/tmp/fabric_odbc_debug.log;
Ajuri tukee seuraavia lokitasoja:
-
DEBUG: Sisältää yksityiskohtaista virheenkorjaustietoa ja on artikkelein ajurilokitaso. -
INFO: Sisältää yleistä tietoa ja on oletus. -
WARN: Sisältää vain varoitukset. -
ERROR: Sisältää vain virheitä.
Ota käyttöön unixODBC-jäljitys
Matalan tason ODBC-puheludiagnostiikassa lisää seuraava konfiguraatio :/etc/odbcinst.ini
[ODBC]
Trace = yes
TraceFile = /tmp/odbc_trace.log
Poista jäljitys pois päältä, kun vianetsintä on valmis, jotta vältät tarpeettomia suorituskykyvaatimuksia.