Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Το ODBC (Open Database Connectivity) είναι ένα ευρέως διαδεδομένο πρότυπο που επιτρέπει στις εφαρμογές-πελάτες να συνδέονται και να εργάζονται με δεδομένα από βάσεις δεδομένων και πλατφόρμες μεγάλων δεδομένων.
Το πρόγραμμα οδήγησης Microsoft ODBC για Fabric Data Engineering σάς επιτρέπει να συνδέετε, να υποβάλλετε ερωτήματα και να διαχειρίζεστε φόρτους εργασίας Spark στο Fabric με την αξιοπιστία και την απλότητα του προτύπου ODBC. Χτισμένο στα API Livy του Fabric, το πρόγραμμα οδήγησης παρέχει ασφαλή και ευέλικτη συνδεσιμότητα Spark SQL με τις εφαρμογές C/C++, .NET, Python και άλλες εφαρμογές συμβατές με ODBC στο Linux.
Δυνατότητες κλειδιά
- Συμβατό με ODBC 3.x: Πλήρης εφαρμογή της προδιαγραφής ODBC 3.x.
- Έλεγχος ταυτότητας Microsoft Entra ID: Πολλαπλές ροές ελέγχου ταυτότητας, συμπεριλαμβανομένου του Azure CLI, των διαπιστευτηρίων προγράμματος-πελάτη, του ελέγχου ταυτότητας βάσει πιστοποιητικών και του ελέγχου ταυτότητας διακριτικού πρόσβασης.
- Υποστήριξη ερωτημάτων Spark SQL: Άμεση εκτέλεση δηλώσεων Spark SQL.
-
Ολοκληρωμένη υποστήριξη τύπων δεδομένων: Υποστήριξη για όλους τους τύπους δεδομένων Spark SQL, συμπεριλαμβανομένων των σύνθετων τύπων (
ARRAY,MAP, καιSTRUCT). - Επαναχρησιμοποίηση συνεδρίας: Ενσωματωμένη διαχείριση συνεδρίας για βελτιωμένη απόδοση.
- Λειτουργία υψηλής ταυτόχρονης λειτουργίας: Επιλέξτε κοινόχρηστες, θερμές συνεδρίες Livy από την πλευρά του διακομιστή για να μειώσετε τον λανθάνοντα χρόνο εκκίνησης της σύνδεσης και την εξάπλωση του συμπλέγματος Spark.
- Υποστήριξη μεγάλου πίνακα: Βελτιστοποιημένος χειρισμός για μεγάλα σύνολα αποτελεσμάτων με διαμορφώσιμα μεγέθη σελίδας.
- Ασύγχρονη προφόρτωση: Φόρτωση δεδομένων παρασκηνίου για βελτιωμένη απόδοση.
- Υποστήριξη διακομιστή μεσολάβησης: Διαμόρφωση διακομιστή μεσολάβησης HTTP για εταιρικά περιβάλλοντα.
- Υποστήριξη lakehouse πολλαπλών σχημάτων: Συνδεθείτε σε ένα συγκεκριμένο σχήμα μέσα σε ένα lakehouse.
Σημείωση
Στο Apache Spark ανοιχτού κώδικα, η βάση δεδομένων και το σχήμα χρησιμοποιούνται συνώνυμα. Για παράδειγμα, η εκτέλεση SHOW SCHEMAS ή SHOW DATABASES σε ένα σημειωματάριο Fabric επιστρέφει το ίδιο αποτέλεσμα: μια λίστα με όλα τα σχήματα στο lakehouse.
Προαπαιτούμενα
Πριν χρησιμοποιήσετε το πρόγραμμα οδήγησης Microsoft ODBC για το Microsoft Fabric Data Engineering σε Linux, βεβαιωθείτε ότι έχετε τις ακόλουθες προϋποθέσεις:
- Λειτουργικό σύστημα: Ubuntu 22.04 ή νεότερη έκδοση, Debian 11 ή νεότερη έκδοση ή Red Hat Enterprise Linux (RHEL) 8 ή νεότερη έκδοση σε x86-64.
-
unixODBC: Ο διαχειριστής προγραμμάτων οδήγησης ODBC για Linux. Εγκαταστήστε τα
unixodbcπακέτα andunixodbc-dev. -
libcurl: Η εξάρτηση χρόνου εκτέλεσης HTTP, όπως
libcurl4ή το αντίστοιχο πακέτο για τη διανομή σας. -
OpenSSL: Η εξάρτηση χρόνου εκτέλεσης TLS και κρυπτογραφίας, όπως
opensslήlibssl3ισοδύναμα πακέτα. - Fabric access: Πρόσβαση σε χώρο εργασίας Fabric.
- Διαπιστευτήρια Microsoft Entra ID: Κατάλληλα διαπιστευτήρια για έλεγχο ταυτότητας.
- Αναγνωριστικά χώρου εργασίας και lakehouse: Τα αναγνωριστικά GUID για τον χώρο εργασίας Fabric και το lakehouse.
- Azure CLI (προαιρετικό): Απαιτείται όταν χρησιμοποιείτε έλεγχο ταυτότητας Azure CLI.
Λήψη και εγκατάσταση σε Linux
Για να εγκαταστήσετε το πρόγραμμα οδήγησης:
Απόσπασμα
ms-sparksql-odbc-linux-2.0.0.tar.Ανοίξτε ένα τερματικό στον κατάλογο που έχει εξαχθεί.
Εγκαταστήστε το πακέτο Debian:
sudo dpkg -i microsoft-fabric-odbc-driver-2.0.0-Linux.deb
Το πακέτο εγκαθιστά τα ακόλουθα αρχεία:
| Αρχείο | Εγκατεστημένη τοποθεσία |
|---|---|
| Βιβλιοθήκη προγραμμάτων οδήγησης | /usr/lib/libmicrosoftfabricodbc.so |
| Πρότυπο εγγραφής οδηγού | /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template |
| Πρότυπο διαμόρφωσης DSN | /usr/share/microsoft-fabric-odbc-driver/odbc.ini.template |
| Άδεια χρήσης | /usr/share/doc/microsoft-fabric-odbc-driver/LICENSE |
| Οδηγός χρήσης | /usr/share/doc/microsoft-fabric-odbc-driver/USAGE_Linux.md |
Εγκαταστήστε ένα πακέτο RPM
Σε RHEL, Fedora ή CentOS, εγκαταστήστε το πακέτο RPM από το αρχείο προγραμμάτων οδήγησης που έχει εξαχθεί:
sudo dnf install ./microsoft-fabric-odbc-driver-*.x86_64.rpm
Εναλλακτικά, χρησιμοποιήστε rpm:
sudo rpm -i microsoft-fabric-odbc-driver-*.x86_64.rpm
Βεβαιωθείτε ότι το RPM κατέγραψε το πρόγραμμα οδήγησης:
odbcinst -q -d | grep "Microsoft"
Για να απεγκαταστήσετε το πακέτο RPM, εκτελέστε:
sudo dnf remove microsoft-fabric-odbc-driver
Εγκαταστήστε ένα tarball
Για διανομές χωρίς υποστήριξη πακέτων Debian ή RPM, ή για μια προσαρμοσμένη θέση εγκατάστασης, εξαγάγετε το πακέτο και εκτελέστε το .tar.gz σενάριο εγκατάστασής του:
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
Το σενάριο εγκατάστασης υποστηρίζει αυτές τις επιλογές:
| Επιλογή | Περιγραφή |
|---|---|
--prefix=<path> |
Εγκατάσταση σε προσαρμοσμένο κατάλογο. Η προεπιλογή είναι /opt/microsoft/fabricodbc. |
--no-register |
Παράλειψη εγγραφής προγράμματος οδήγησης unixODBC. |
--dry-run |
Εμφάνιση των προγραμματισμένων αλλαγών χωρίς εγκατάσταση αρχείων. |
--uninstall |
Καταργήστε τα εγκατεστημένα αρχεία και καταργήστε την εγγραφή του προγράμματος οδήγησης. |
--help |
Εμφάνιση βοήθειας εντολών. |
Για να επαληθεύσετε την προεπιλεγμένη εγκατάσταση συμπιεσμένου τύπου tarball, εκτελέστε:
odbcinst -q -d
ls -la /opt/microsoft/fabricodbc/lib/libmicrosoftfabricodbc.so
Για να το απεγκαταστήσετε, εκτελέστε sudo ./install.sh --uninstall από τον κατάλογο πακέτων που έχει εξαχθεί.
Μη αυτόματη εγγραφή προγράμματος οδήγησης
Το πακέτο καταχωρεί αυτόματα το πρόγραμμα οδήγησης στο unixODBC. Για να καταχωρήσετε το πρόγραμμα οδήγησης με μη αυτόματο τρόπο, εκτελέστε:
sudo odbcinst -i -d -f /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template
Επαληθεύστε την εγκατάσταση
Βεβαιωθείτε ότι το πρόγραμμα οδήγησης είναι καταχωρημένο και ότι η βιβλιοθήκη είναι εγκατεστημένη:
odbcinst -q -d
ls -la /usr/lib/libmicrosoftfabricodbc.so
Η odbcinst εντολή θα πρέπει να αναφέρει [Microsoft ODBC Driver for Microsoft Fabric Data Engineering].
Απεγκαταστήστε το πρόγραμμα οδήγησης
Για να καταργήσετε την εγκατάσταση του προγράμματος οδήγησης, εκτελέστε την ακόλουθη εντολή:
sudo dpkg -r microsoft-fabric-odbc-driver
Αυτή η εντολή καταργεί τα αρχεία του προγράμματος οδήγησης και καταργεί την καταχώρηση του προγράμματος οδήγησης από το unixODBC.
Παράδειγμα γρήγορης εκκίνησης
Τα παρακάτω παραδείγματα συνδέονται στο Fabric και εκτελούν ένα ερώτημα Spark SQL. Συμπληρώστε τις προϋποθέσεις και εγκαταστήστε το πρόγραμμα οδήγησης πριν εκτελέσετε ένα παράδειγμα.
Παράδειγμα 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()
Παράδειγμα 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;
}
Δημιουργήστε και εκτελέστε το παράδειγμα:
g++ -o fabric_test fabric_test.cpp -lodbc -std=c++17
./fabric_test
Παράδειγμα .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));
}
Μορφή συμβολοσειράς σύνδεσης
Βασική συμβολοσειρά σύνδεσης
Χρησιμοποιήστε την ακόλουθη μορφή συμβολοσειρά σύνδεσης:
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};<parameter1>=<value1>;<parameter2>=<value2>;...
Στοιχεία συμβολοσειράς σύνδεσης
| Συνθετικός | Περιγραφή | Παράδειγμα |
|---|---|---|
DRIVER |
Αναγνωριστικό προγράμματος οδήγησης ODBC | {Microsoft ODBC Driver for Microsoft Fabric Data Engineering} |
WorkspaceId |
Fabric workspace identifier (GUID) | 4bbf89a8-66bb-443f-91af-df31e6a7560b |
LakehouseId |
Fabric lakehouse αναγνωριστικό (GUID) | d8faa650-1343-496b-b9cc-d4168a676f90 |
AuthFlow |
Μέθοδο ελέγχου ταυτότητας |
AZURE_CLI, CLIENT_CREDENTIAL, CLIENT_CERTIFICATE, ή ACCESS_TOKEN |
Παράδειγμα συμβολοσειρών σύνδεσης
Βασική σύνδεση
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI
Σύνδεση με επιλογές απόδοσης
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;ReuseSession=true;LargeTableSupport=true;PageSizeBytes=18874368
Σύνδεση με την καταγραφή
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
Σύνδεση με λειτουργία υψηλής ταυτόχρονης λειτουργίας
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;LivyMode=HighConcurrency;SessionTag=bi-dashboard
Για πλήρεις οδηγίες ρύθμισης παραμέτρων, ανατρέξτε στην ενότητα Λειτουργία υψηλής ταυτόχρονης εκτέλεσης (HC)).
Authentication
Το πρόγραμμα οδήγησης Microsoft ODBC για Microsoft Fabric Data Engineering υποστηρίζει πολλές μεθόδους ελέγχου ταυτότητας μέσω του Microsoft Entra ID. Ρυθμίστε τις παραμέτρους του ελέγχου ταυτότητας χρησιμοποιώντας την AuthFlow παράμετρο στο συμβολοσειρά σύνδεσης ή στο DSN.
Μέθοδοι ελέγχου ταυτότητας
AuthFlow τιμή |
Περιγραφή |
|---|---|
AZURE_CLI |
Ανάπτυξη με χρήση διαπιστευτηρίων Azure CLI |
CLIENT_CREDENTIAL |
Κύρια υπηρεσία με μυστικό πελάτη |
CLIENT_CERTIFICATE |
Κύριος υπηρεσίας με πιστοποιητικό |
ACCESS_TOKEN |
Προαποκτηθέν διακριτικό πρόσβασης κομιστή |
FILE_TOKEN |
Διαβάζει ένα διακριτικό ελέγχου ταυτότητας από ένα αρχείο |
Σημείωση
Ο αλληλεπιδραστικός έλεγχος ταυτότητας προγράμματος περιήγησης δεν είναι διαθέσιμος σε διακομιστές Linux χωρίς κεφάλι. Χρησιμοποιήστε το Azure CLI, τα διαπιστευτήρια προγράμματος-πελάτη, τον έλεγχο ταυτότητας βάσει πιστοποιητικών ή τον έλεγχο ταυτότητας διακριτικού πρόσβασης.
Έλεγχος ταυτότητας Azure CLI
Χρησιμοποιήστε τον έλεγχο ταυτότητας Azure CLI για ανάπτυξη και αλληλεπιδραστικές εφαρμογές.
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)
Πριν συνδεθείτε, βεβαιωθείτε ότι το Azure CLI είναι εγκατεστημένο και εισέλθετε:
az --version
az login
Για να εγκαταστήσετε το Azure CLI σε Debian ή Ubuntu, χρησιμοποιήστε τη διαχείριση πακέτων:
sudo apt-get update
sudo apt-get install -y azure-cli
Έλεγχος ταυτότητας διαπιστευτηρίων πελάτη
Χρησιμοποιήστε έλεγχο ταυτότητας διαπιστευτηρίων προγράμματος-πελάτη για αυτοματοποιημένες υπηρεσίες και εργασίες παρασκηνίου.
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};"
)
Δώστε τις ακόλουθες παραμέτρους:
-
TenantId: Το αναγνωριστικό μισθωτή Microsoft Entra. -
ClientId: Το αναγνωριστικό εφαρμογής (προγράμματος-πελάτη). -
ClientSecret: Ο μυστικός κωδικός προγράμματος-πελάτη.
Αποθηκεύστε μυστικά σε έναν ασφαλή μυστικό χώρο αποθήκευσης ή μεταβλητές περιβάλλοντος. Μην αποθηκεύετε μυστικά σε συμβολοσειρές σύνδεσης απλού κειμένου ή αρχεία INI.
Έλεγχος ταυτότητας βασισμένος σε πιστοποιητικό
Χρησιμοποιήστε έλεγχο ταυτότητας βάσει πιστοποιητικού για εταιρικές εφαρμογές που απαιτούν διαπιστευτήρια πιστοποιητικού.
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>;"
)
Δώστε τις ακόλουθες παραμέτρους:
-
TenantId: Το αναγνωριστικό μισθωτή Microsoft Entra. -
ClientId: Το αναγνωριστικό εφαρμογής (προγράμματος-πελάτη). -
CertificatePath: Η διαδρομή προς το αρχείο πιστοποιητικού PFX ή PKCS12. -
CertificatePassword: Ο κωδικός πρόσβασης του πιστοποιητικού.
Έλεγχος ταυτότητας διακριτικού πρόσβασης
Χρησιμοποιήστε τον έλεγχο ταυτότητας διακριτικού πρόσβασης όταν η εφαρμογή σας αποκτά ένα διακριτικό μέσω άλλου μηχανισμού.
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};"
)
Έλεγχος ταυτότητας διακριτικού αρχείου
Χρησιμοποιήστε τον έλεγχο ταυτότητας διακριτικού αρχείου σε περιβάλλοντα με κοντέινερ και αυτοματοποιημένες διοχετεύσεις όπου μια άλλη διεργασία εγγράφει ένα διακριτικό κομιστή στο γνωστό αρχείο διακριτικού του προγράμματος οδήγησης:
connection_string = (
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=FILE_TOKEN;"
)
Για υποστηριζόμενα ψευδώνυμα ιδιοτήτων μεταξύ οδηγών, ανατρέξτε στην ενότητα Ψευδώνυμα ιδιοτήτων μεταξύ οδηγών.
Παράμετροι διαμόρφωσης
Απαιτούμενες παράμετροι
Συμπεριλάβετε αυτές τις παραμέτρους σε κάθε συμβολοσειρά σύνδεσης:
| Παράμετρος | Type | Περιγραφή | Παράδειγμα |
|---|---|---|---|
WorkspaceId |
UUID | Αναγνωριστικό χώρου εργασίας Fabric | 4bbf89a8-... |
LakehouseId |
UUID | Αναγνωριστικό Fabric lakehouse | d8faa650-... |
AuthFlow |
Συμβλοσειρά | Τύπος ροής ελέγχου ταυτότητας | AZURE_CLI |
Προαιρετικές παράμετροι
Ρυθμίσεις σύνδεσης
| Παράμετρος | Type | Προεπιλεγμένος | Περιγραφή |
|---|---|---|---|
Database |
Συμβλοσειρά | Χωρίς | Αρχική βάση δεδομένων για κλασική λειτουργία. Η λειτουργία HC δεν την εφαρμόζει αυτόματα. εκτελείται USE <database> μετά τη σύνδεση ή χρησιμοποιήστε πλήρως προσδιορισμένα ονόματα πινάκων. |
Scope |
Συμβλοσειρά | https://api.fabric.microsoft.com/.default |
Πεδίο εφαρμογής OAuth |
Ρυθμίσεις απόδοσης
| Παράμετρος | Type | Προεπιλεγμένος | Περιγραφή |
|---|---|---|---|
ReuseSession |
δυαδική τιμή | true |
Επαναχρησιμοποίηση υπάρχουσας περιόδου λειτουργίας Spark |
LargeTableSupport |
δυαδική τιμή | false |
Ενεργοποίηση βελτιστοποιήσεων για μεγάλα σύνολα αποτελεσμάτων |
EnableAsyncPrefetch |
δυαδική τιμή | false |
Ενεργοποίηση προφόρτωσης δεδομένων παρασκηνίου |
PageSizeBytes |
Integer |
18874368 (18 MB) |
Μέγεθος σελίδας για σελιδοποίηση αποτελεσμάτων από 1 έως 18 MB |
Ρυθμίσεις καταγραφής
| Παράμετρος | Type | Προεπιλεγμένος | Περιγραφή |
|---|---|---|---|
LogLevel |
Συμβλοσειρά | INFO |
Επίπεδο καταγραφής: DEBUG, INFO, WARN, ή ERROR. Χρησιμοποιήστε το DEBUG για λεπτομερή διαγνωστικό έλεγχο του προγράμματος οδήγησης. |
LogFile |
Συμβλοσειρά | odbc_driver.log |
Απόλυτη ή σχετική διαδρομή αρχείου καταγραφής |
Ρυθμίσεις διακομιστή μεσολάβησης
| Παράμετρος | Type | Προεπιλεγμένος | Περιγραφή |
|---|---|---|---|
UseProxy |
δυαδική τιμή | false |
Ενεργοποίηση διακομιστή μεσολάβησης |
ProxyHost |
Συμβλοσειρά | Χωρίς | Όνομα κεντρικού υπολογιστή διακομιστή μεσολάβησης |
ProxyPort |
Integer | Χωρίς | Θύρα διακομιστή μεσολάβησης |
ProxyUsername |
Συμβλοσειρά | Χωρίς | Όνομα χρήστη ελέγχου ταυτότητας διακομιστή μεσολάβησης |
ProxyPassword |
Συμβλοσειρά | Χωρίς | Κωδικός πρόσβασης ελέγχου ταυτότητας διακομιστή μεσολάβησης |
Ρυθμίσεις υψηλής ταυτοχρονισμού (HC)
Χρησιμοποιήστε αυτές τις παραμέτρους για να ενεργοποιήσετε και να διαμορφώσετε τη λειτουργία υψηλής ταυτόχρονης εκτέλεσης (HC). Η λειτουργία HC είναι προαιρετική. Εάν δεν ορίσετε LivyMode ή UseHighConcurrency, το πρόγραμμα οδήγησης χρησιμοποιεί την κλασική διαδρομή μίας περιόδου λειτουργίας. Για οδηγίες και παραδείγματα, ανατρέξτε στο θέμα Λειτουργία υψηλής ταυτόχρονης εκτέλεσης (HC).
| Παράμετρος | Type | Προεπιλεγμένος | Περιγραφή |
|---|---|---|---|
LivyMode |
Συμβλοσειρά | Δεν έχει οριστεί | Ελέγχει την απόκτηση συνεδρίας. Οι υποστηριζόμενες τιμές είναι Classic, HighConcurrencyκαι Auto.
Auto Προς το παρόν χρησιμοποιεί την κλασική διαδρομή. |
UseHighConcurrency |
δυαδική τιμή | false |
Ενεργοποιεί τη λειτουργία HC ως εναλλακτική λύση στη ρύθμιση LivyMode=HighConcurrency. |
SessionTag |
Συμβλοσειρά | Χωρίς | Παρέχει μια υπόδειξη συσκευασίας από την πλευρά του διακομιστή. Οι συνδέσεις πρέπει να χρησιμοποιούν αντίστοιχες ρυθμίσεις από την πλευρά του διακομιστή για να μοιράζονται μια ζεστή συνεδρία Livy. |
IdempotencyKey |
Συμβλοσειρά | Χωρίς | Παρέχει ένα κλειδί που δημιουργείται από τον πελάτη για ασφαλείς επαναλήψεις απόκτησης HC. Το πρόγραμμα οδήγησης επικυρώνει το σύνολο χαρακτήρων και δεν καταγράφει ποτέ την τιμή. |
EnvironmentId |
Συμβλοσειρά | Χωρίς | Καθορίζει το αναγνωριστικό περιβάλλοντος Fabric που αποστέλλεται όπως spark.fabric.environmentDetails στη ρύθμιση παραμέτρων απόκτησης HC. |
HeartbeatTimeoutInSecond |
Integer | Προεπιλογή διακομιστή | Ορίζει το χρονικό όριο αδράνειας της περιόδου λειτουργίας HC από την πλευρά του διακομιστή, σε δευτερόλεπτα. Η τιμή πρέπει να είναι θετικός ακέραιος. |
AcquireTimeoutSeconds |
Integer | 300 |
Ορίζει το χρονικό διάστημα αναμονής του προγράμματος οδήγησης για να φτάσει μια περίοδος λειτουργίας HC στην Idle κατάσταση, σε δευτερόλεπτα. Η τιμή πρέπει να είναι θετικός ακέραιος. |
conf.<key> |
Συμβλοσειρά | Χωρίς | Καθορίζει μια παράκαμψη ρύθμισης παραμέτρων Spark που αποστέλλεται στην αίτηση απόκτησης HC. Για παράδειγμα, conf.spark.sql.shuffle.partitions=200. |
Προτεραιότητα και επικύρωση τρόπου λειτουργίας
-
LivyModeέχει προτεραιότηταUseHighConcurrencyόταν ορίζετε και τις δύο παραμέτρους. - Στις τιμές των παραμέτρων δεν γίνεται διάκριση πεζών-κεφαλαίων.
-
UseHighConcurrencyδέχεταιtrue,1, ,yesήonγια να ενεργοποιήσετε τη λειτουργία HC. Δέχεταιfalse,0, ,noήoffγια να απενεργοποιήσει τη λειτουργία HC. - Για άλλες μη κενές τιμές,
SQLDriverConnectτο επιστρέφει σφάλμα. Μόνο DSNSQLConnectκαταγράφει την αποτυχία επικύρωσης και χρησιμοποιεί την κλασική διαδρομή.
Ρυθμίσεις συμβατότητας
Το πρόγραμμα οδήγησης δέχεται TenantPrincipal και PoolMax, συμπεριλαμβανομένων των εναλλακτικών μεταβλητών περιβάλλοντος, για συμβατότητα με προηγούμενες διαμορφώσεις HC. Το πρόγραμμα οδήγησης αναλύει και επικυρώνει αυτές τις τιμές, αλλά δεν επηρεάζουν την αντιστοίχιση περιόδων λειτουργίας HC ή τη χωρητικότητα του χώρου συγκέντρωσης χρόνου εκτέλεσης. Μην βασίζεστε σε αυτά για την απομόνωση ενοικιαστών ή τα όρια σύνδεσης.
Εναλλακτικές μεταβλητές περιβάλλοντος
Το πρόγραμμα οδήγησης χρησιμοποιεί τις ακόλουθες μεταβλητές περιβάλλοντος μόνο όταν δεν έχει οριστεί η αντίστοιχη παράμετρος DSN ή συμβολοσειράς σύνδεσης:
| Μεταβλητή περιβάλλοντος | Χάρτες προς |
|---|---|
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 (μόνο συμβατότητα) |
FABRIC_ODBC_HC_HEARTBEAT_SECONDS |
HeartbeatTimeoutInSecond |
FABRIC_ODBC_HC_ACQUIRE_TIMEOUT |
AcquireTimeoutSeconds |
FABRIC_ODBC_HC_POOL_MAX |
PoolMax (μόνο συμβατότητα) |
Για FABRIC_ODBC_USE_HCτο , η ενεργοποίηση μόνο για trueπεριβάλλον αναγνωρίζει , 1ή yes (χωρίς διάκριση πεζών-κεφαλαίων). Άλλες τιμές αφήνουν τη λειτουργία HC απενεργοποιημένη. Τα on ψευδώνυμα και off ισχύουν μόνο για τιμές DSN και συμβολοσειράς σύνδεσης.
Λειτουργία υψηλής ταυτοχρονισμού (HC).
Η λειτουργία υψηλής ταυτόχρονης εκτέλεσης (HC) επιτρέπει στις συνδέσεις ODBC στον ίδιο χώρο εργασίας και lakehouse να συνδέονται σε κοινόχρηστες, θερμές περιόδους λειτουργίας Livy Spark από την πλευρά του διακομιστή αντί να παρέχουν ξεχωριστό σύμπλεγμα για κάθε σύνδεση. Χρησιμοποιήστε το για φόρτους εργασίας, όπως πίνακες εργαλείων BI, πυρήνες σημειωματαρίων και ανεμιστήρα ETL που ανοίγουν πολλές συνδέσεις μικρής διάρκειας και μπορούν να κάνουν κοινή χρήση χωρητικότητας Spark διαχειριζόμενη από διακομιστή.
Η λειτουργία HC είναι προαιρετική. Εάν δεν ρυθμίσετε τις παραμέτρους μιας ρύθμισης HC, το πρόγραμμα οδήγησης χρησιμοποιεί την κλασική διαδρομή μίας περιόδου λειτουργίας.
Επιλογή λειτουργίας σύνδεσης
Χρησιμοποιήστε τη λειτουργία HC όταν:
- Ο φόρτος εργασίας σας ανοίγει πολλές βραχύβιες συνδέσεις ODBC, όπως πίνακες εργαλείων BI, πυρήνες σημειωματαρίων ή ανεμιστήρα ETL.
- Οι συνδέσεις στοχεύουν τον ίδιο χώρο εργασίας και lakehouse και μπορούν να κάνουν κοινή χρήση μιας περιόδου λειτουργίας Spark που διαχειρίζεται ο διακομιστής.
- Η μείωση της καθυστέρησης ψυχρής εκκίνησης ανά σύνδεση είναι σημαντική.
Χρησιμοποιήστε την κλασική λειτουργία όταν:
- Κάθε σύνδεση απαιτεί μια απομονωμένη περίοδο λειτουργίας Spark λόγω διαφορετικών ρυθμίσεων παραμέτρων Spark ή αυστηρής απομόνωσης πόρων.
- Το τελικό σημείο Fabric Livy για τον χώρο εργασίας προορισμού και το lakehouse δεν υποστηρίζει τη λειτουργία HC.
Ενεργοποίηση λειτουργίας υψηλής ταυτόχρονης λειτουργίας
Προσθέστε μια παράμετρο λειτουργίας υψηλής ταυτόχρονης εκτέλεσης στο DSN ή στο συμβολοσειρά σύνδεσης.
Συνιστάται: Σετ LivyMode
Χρησιμοποιήστε το LivyMode για να επιλέξετε ρητά τον τρόπο απόκτησης συνεδρίας:
LivyMode=HighConcurrency
Οι υποστηριζόμενες τιμές είναι Classic, HighConcurrencyκαι Auto. Οι τιμές δεν κάνουν διάκριση πεζών-κεφαλαίων.
Auto Αυτήν τη στιγμή επιλέγει την κλασική λειτουργία.
Εναλλακτική: Σετ UseHighConcurrency
Χρησιμοποιήστε τη δυαδική ρύθμιση για συμβατότητα με υπάρχουσες διαμορφώσεις:
UseHighConcurrency=true
Για να ενεργοποιήσετε τη λειτουργία υψηλής ταυτόχρονης εκτέλεσης, χρησιμοποιήστε true, 1, yesή on. Για να το απενεργοποιήσετε, χρησιμοποιήστε falseτα , 0, no, ή off. Οι τιμές δεν κάνουν διάκριση πεζών-κεφαλαίων.
SQLDriverConnect απορρίπτει άλλες μη κενές τιμές με το SQLSTATE HY024. Μόνο SQLConnect DSN καταγράφει την αποτυχία επικύρωσης και χρησιμοποιεί την κλασική λειτουργία.
Σημείωση
Εάν ορίσετε και τις δύο παραμέτρους, το έχει LivyMode προτεραιότητα έναντι του UseHighConcurrency.
Μπορείτε επίσης να ενεργοποιήσετε τη λειτουργία υψηλής ταυτόχρονης εκτέλεσης για το τρέχον κέλυφος, χρησιμοποιώντας μεταβλητές περιβάλλοντος:
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
Απαιτούμενες παράμετροι σε λειτουργία HC
Η ενεργοποίηση HC απαιτεί τα ακόλουθα έγκυρα αναγνωριστικά:
| Παράμετρος | Σημειώσεις |
|---|---|
WorkspaceId |
Πρέπει να είναι έγκυρο GUID χώρου εργασίας Fabric. |
LakehouseId |
Πρέπει να είναι έγκυρο GUID Fabric lakehouse. |
Συμπεριλάβετε SessionTag επειδή επηρεάζει την αντιστοίχιση από την πλευρά του διακομιστή για θερμές συνεδρίες.
Αντιστοίχιση συνεδρίας
Η λειτουργία HC δεν εγγυάται ότι κάθε σύνδεση επαναχρησιμοποιεί μια υπάρχουσα περίοδο λειτουργίας. Για κάθε αίτημα απόκτησης συνεδρίας, ο οδηγός αποστέλλει:
- Η
SessionTagαξία. - Η αποτελεσματική διαμόρφωση του Spark, συμπεριλαμβανομένων των
conf.*ρυθμίσεων καιEnvironmentIdτων αρχείων .
Η υπηρεσία Fabric Livy αξιολογεί αυτές τις τιμές και αποφασίζει εάν θα συνδέσει τη σύνδεση σε μια θερμή συνεδρία ή θα δημιουργήσει μια νέα συνεδρία. Για να βελτιώσετε την επαναχρησιμοποίηση περιόδων λειτουργίας, χρησιμοποιήστε συνεπείς τιμές σε όλες τις συνδέσεις που προορίζονται για κοινή χρήση χωρητικότητας Spark διαχειριζόμενη από διακομιστή.
Παράδειγμα συμβολοσειρών σύνδεσης
Ελάχιστη σύνδεση HC με έλεγχο ταυτότητας Azure CLI:
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;LivyMode=HighConcurrency;SessionTag=bi-dashboard
Σύνδεση HC με συντονισμένα τάιμ άουτ:
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 με ένα περιβάλλον και η ρύθμιση παραμέτρων Spark παρακάμπτουν:
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 με 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 σε ένα Linux DSN
Αντί να επαναλαμβάνετε τις ρυθμίσεις HC σε κάθε συμβολοσειρά σύνδεσης, αποθηκεύστε τις ~/.odbc.ini για ένα DSN συγκεκριμένου χρήστη ή /etc/odbc.ini για ένα 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
Αφού αποθηκεύσετε το DSN, επαληθεύστε το και δοκιμάστε τη σύνδεση.
odbcinst -q -s
isql -k -v "DSN=FabricHCDSN;"
Όταν μια συμβολοσειρά σύνδεσης δεν καθορίζει μια τιμή, το πρόγραμμα οδήγησης διαβάζει αυτές τις ρυθμίσεις από το DSN:
LivyModeUseHighConcurrencyEnvironmentIdSessionTagIdempotencyKeyHeartbeatTimeoutInSecondAcquireTimeoutSeconds
Το πρόγραμμα οδήγησης διαβάζει επίσης τη συμβατότητα μόνο TenantPrincipal και PoolMax τις ρυθμίσεις. Χρησιμοποιήστε τα ονόματα παραμέτρων στον πίνακα ρυθμίσεων HC.
Σημαντικό
Το πρόγραμμα οδήγησης δεν διαβάζει conf.* τις παρακάμψεις ρύθμισης παραμέτρων Spark από το DSN. Προσθέστε τα στο συμβολοσειρά σύνδεσης κατά το χρόνο εκτέλεσης ή εισάγετε τα πριν καλέσετε SQLDriverConnect.
Απενεργοποιήστε τη λειτουργία HC
Μπορείτε να απενεργοποιήσετε τη λήψη νέων περιόδων λειτουργίας HC χωρίς να αναπτύξετε ξανά το πρόγραμμα οδήγησης. Χρησιμοποιήστε τη μέθοδο που αντιστοιχεί στον τρόπο με τον οποίο ενεργοποιήσατε τη λειτουργία HC:
| Πηγή διαμόρφωσης HC | Πώς να απενεργοποιήσετε τη λειτουργία HC |
|---|---|
| Μόνο μεταβλητή περιβάλλοντος | Ορίστε FABRIC_ODBC_USE_HC=falseή καταργήστε τη μεταβλητή. |
| ΔΣΝ | Σετ LivyMode=Classic. Εναλλακτικά, αφαιρέστε LivyMode και ρυθμίστε το UseHighConcurrency=false. |
| Συμβολοσειρά σύνδεσης | Ορίστε LivyMode=Classicή καταργήστε τις παραμέτρους HC. |
Οι ρυθμίσεις συμβολοσειράς σύνδεσης και DSN έχουν προτεραιότητα έναντι της εναλλακτικής μεταβλητής περιβάλλοντος. Αυτές οι αλλαγές επηρεάζουν μόνο τις νέες συνδέσεις. Οι υπάρχουσες συνεδρίες HC συνεχίζονται μέχρι να κυκλοφορήσουν.
Κατανόηση της συμπεριφοράς χρόνου εκτέλεσης HC
-
Επικύρωση:
SQLDriverConnectαπορρίπτει μη έγκυρες τιμές HC Boolean και θετικούς-ακέραιους αριθμούς με SQLSTATEHY024. Απορρίπτει ένα μη έγκυροLivyModeκαι μη έγκυρο ή υπερμεγέθηWorkspaceId,LakehouseIdκαιIdempotencyKeyτιμές με SQLSTATEHY000. Μια υπερμεγέθης τιμή συμβατότηταςTenantPrincipalεπιστρέφειHY000επίσης . Για μόνοSQLConnectDSN , το πρόγραμμα οδήγησης καταγράφει τις συνήθεις αποτυχίες επικύρωσης HC και χρησιμοποιεί την κλασική λειτουργία. Οι υπερμεγέθεις τιμές που είναι ευαίσθητες στην ασφάλεια εξακολουθούν να αποτυγχάνουν στη σύνδεση. -
Ευαίσθητα δεδομένα: Το πρόγραμμα οδήγησης εξαιρεί ή καθαρίζει
IdempotencyKeyκαι άλλα ευαίσθητα πεδία από τα αρχεία καταγραφής HC και την έξοδο διαγνωστικών ελέγχων. - Ακύρωση: Η ακύρωση της δήλωσης είναι συνεργατική. Οι εργασίες διακομιστή που βρίσκονται ήδη σε εξέλιξη ολοκληρώνονται καθαρά αντί να τερματίζονται αμέσως.
- Διακόπτες κυκλώματος: Οι λειτουργίες HC και classic χρησιμοποιούν ξεχωριστούς διακόπτες κυκλώματος. Η εξάντληση της μιας λειτουργίας δεν επηρεάζει την άλλη.
-
Αρχική βάση δεδομένων: Οι συνδέσεις HC δεν εκτελούν την αρχική
USEπρόταση για τηνDatabaseπαράμετρο. ΕκτελέστεUSE <database>μετά τη σύνδεση ή χρησιμοποιήστε πλήρως προσδιορισμένα ονόματα πινάκων. -
Διαγνωστικός έλεγχος: Ρύθμιση
LogLevel=DEBUGγια καταγραφή αποφάσεων απόκτησης, ανίχνευσης, έκδοσης και αντιστοίχισης σφαλμάτων HC. Για εστιασμένη αντιμετώπιση προβλημάτων, ρυθμίστεLIVY_HC_VERBOSE=1ώστε να περιλαμβάνει επιπλέον καθαρισμένα διαγνωστικά HC HTTP.
Διαμόρφωση DSN
Σε Linux, ρυθμίστε τις παραμέτρους των ονομάτων προέλευσης δεδομένων (DSN) σε αρχεία INI αντί για το μητρώο των Windows.
| Αρχείο | Πεδίο εφαρμογής | Πρόσβαση |
|---|---|---|
/etc/odbc.ini |
DSN σε όλο το σύστημα | Απαιτεί sudo |
~/.odbc.ini |
DSN για συγκεκριμένους χρήστες | Μόνο για τρέχοντες χρήστες |
Δημιουργία DSN
Εάν ~/.odbc.ini υπάρχει, προσθέστε τη νέα ενότητα DSN χωρίς να αντικαταστήσετε το υπάρχον αρχείο. Αντιγράψτε το εγκατεστημένο πρότυπο μόνο όταν δημιουργείτε το αρχείο:
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
Επεξεργαστείτε ~/.odbc.ini με τις λεπτομέρειες του χώρου εργασίας 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
Επαληθεύστε το DSN
Παραθέστε τα ρυθμισμένα DSN και, στη συνέχεια, ελέγξτε τη σύνδεση:
odbcinst -q -s
isql -k -v "DSN=FabricDSN;"
Η isql εντολή απαιτεί τα εργαλεία γραμμής εντολών unixODBC. Η -k επιλογή χρησιμοποιεί SQLDriverConnect, το οποίο επιτρέπει στο πρόγραμμα οδήγησης να επεξεργάζεται χαρακτηριστικά σύνδεσης DSN.
Χρήση DSN σε εφαρμογές
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);
Παραδείγματα χρήσης
Δοκιμάστε μια σύνδεση με το isql
Ξεκινήστε μια αλληλεπιδραστική περίοδο λειτουργίας SQL:
isql -k -v "DSN=FabricDSN;"
Εκτελέστε ένα μόνο ερώτημα:
echo "SELECT 1 AS test" | isql -k -v "DSN=FabricDSN;" -b
Χρησιμοποιήστε το -k για Fabric DSN, ώστε να isql συνδέεται μέσω SQLDriverConnect αντί για SQLConnect.
Εργαστείτε με μεγάλα σύνολα αποτελεσμάτων
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()
Ανακαλύψτε σχήματα και πίνακες
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()
Αντιστοίχιση τύπου δεδομένων
Το πρόγραμμα οδήγησης αντιστοιχίζει τους τύπους δεδομένων Spark SQL σε τύπους ODBC SQL:
| Τύπος Spark SQL | Τύπος SQL ODBC | Τύπος C/C++ | Τύπος Python | Τύπος .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_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 | string |
MAP |
SQL_VARCHAR |
SQLCHAR* |
Συμβολοσειρά JSON | string |
STRUCT |
SQL_VARCHAR |
SQLCHAR* |
Συμβολοσειρά JSON | string |
Διαφορές πλατφόρμας
| Δυνατότητα | Windows | Linux |
|---|---|---|
| Διευθυντής οδηγού | Διαχείριση προγραμμάτων οδήγησης ODBC της Microsoft | unixODBC |
| Δυαδικό πρόγραμμα οδήγησης | microsoftfabricodbc.dll |
libmicrosoftfabricodbc.so |
| Διαμόρφωση DSN | Μητρώο και GUI των Windows |
/etc/odbc.ini και ~/.odbc.ini |
| Εγγραφή οδηγού | Μητρώο και odbcad32.exe |
odbcinst -i -d -f |
| Πελάτης HTTP | WinHTTP | libcurl |
| TLS | Ενσωματωμένη υποστήριξη των Windows | OpenSSL |
| Έλεγχος ταυτότητας πιστοποιητικού | ΚρυπτοAPI των Windows | OpenSSL με αρχεία RS256 και PEM ή PFX |
| Αλληλεπιδραστικός έλεγχος | Παράθυρο προγράμματος περιήγησης | Δεν είναι διαθέσιμο σε διακομιστές χωρίς κεφάλι |
| Συσκευασία | Πρόγραμμα εγκατάστασης MSI |
.deb, .rpm, ή .tar.gz πακέτο |
Αντιμετώπιση προβλημάτων
Ο οδηγός δεν βρέθηκε
Πρόβλημα: Η σύνδεση αποτυγχάνει με [IM002] Data source name not found and no default driver specified.
Λύσεις:
- Επαληθεύστε την εγγραφή του προγράμματος οδήγησης εκτελώντας
odbcinst -q -d. - Βεβαιωθείτε ότι
/usr/lib/libmicrosoftfabricodbc.soυπάρχει. - Καταχωρίστε το πρόγραμμα οδήγησης εκτελώντας
sudo odbcinst -i -d -f /usr/share/microsoft-fabric-odbc-driver/odbcinst.ini.template. - Εγκαταστήστε ξανά το πακέτο εκτελώντας
sudo dpkg -i microsoft-fabric-odbc-driver-2.0.0-Linux.deb.
Ο οδηγός δεν βρέθηκε μετά από εγκατάσταση tarball
Πρόβλημα: Το πρόγραμμα οδήγησης είναι καταχωρημένο, αλλά η κοινόχρηστη βιβλιοθήκη δεν υπάρχει στην καταχωρημένη διαδρομή.
Λύσεις:
- Βεβαιωθείτε ότι
/opt/microsoft/fabricodbc/lib/libmicrosoftfabricodbc.soυπάρχει. - Επανάληψη
sudo ./install.sh --prefix=/opt/microsoft/fabricodbc. - Εάν χρησιμοποιήσατε ένα προσαρμοσμένο πρόθεμα, βεβαιωθείτε ότι η καταχωρημένη διαδρομή προγράμματος οδήγησης χρησιμοποιεί το ίδιο πρόθεμα.
Το DSN δεν βρέθηκε
Πρόβλημα: Η σύνδεση αποτυγχάνει με [IM002] Data source name not found.
Λύσεις:
- Επαληθεύστε τη ρύθμιση παραμέτρων DSN εκτελώντας
odbcinst -q -s. - Βεβαιωθείτε ότι το
~/.odbc.iniή/etc/odbc.iniπεριέχει την ενότητα DSN. - Βεβαιωθείτε ότι η
Driverτιμή ταιριάζει ακριβώς με το καταχωρημένο όνομα του προγράμματος οδήγησης.
Αποτυχίες σύνδεσης
Πρόβλημα: Το πρόγραμμα οδήγησης δεν μπορεί να συνδεθεί στο Fabric.
Λύσεις:
- Βεβαιωθείτε ότι το αναγνωριστικό χώρου εργασίας και το αναγνωριστικό lakehouse είναι έγκυρα GUID.
- Ελέγξτε τον έλεγχο ταυτότητας Azure CLI εκτελώντας .
az account show - Βεβαιωθείτε ότι έχετε τα απαιτούμενα δικαιώματα χώρου εργασίας Fabric.
- Ελέγξτε τη συνδεσιμότητα δικτύου και τις ρυθμίσεις διακομιστή μεσολάβησης.
Σφάλματα ελέγχου ταυτότητας
Πρόβλημα: Ο έλεγχος ταυτότητας Azure CLI αποτυγχάνει.
Λύσεις:
- Εκτελέστε
az loginγια να ανανεώσετε τα διαπιστευτήριά σας. - Ορίστε τη σωστή συνδρομή εκτελώντας
az account set --subscription <subscription-id>. - Ελέγξτε το διακριτικό εκτελώντας
az account get-access-token --resource https://api.fabric.microsoft.com. - Βεβαιωθείτε ότι ο λογαριασμός σας έχει τα απαιτούμενα δικαιώματα χώρου εργασίας Fabric.
Σφάλματα κοινόχρηστης βιβλιοθήκης
Πρόβλημα: Ο οδηγός αναφέρει error while loading shared libraries: libmicrosoftfabricodbc.so.
Λύσεις:
- Εγκαταστήστε ξανά το πακέτο εκτελώντας
sudo dpkg -i microsoft-fabric-odbc-driver-2.0.0-Linux.deb. - Βεβαιωθείτε ότι
/usr/lib/libmicrosoftfabricodbc.soυπάρχει. - Εκτελέστε
sudo ldconfigγια να ανανεώσετε την προσωρινή μνήμη της κοινόχρηστης βιβλιοθήκης.
Λήξη χρονικού ορίου ερωτήματος
Πρόβλημα: Λήξη χρονικού ορίου ερωτημάτων σε μεγάλους πίνακες.
Λύσεις:
- Προσθήκη
LargeTableSupport=trueστη συμβολοσειρά σύνδεσης. - Προσαρμόστε
PageSizeBytesτο μέγεθος του αποτελέσματος. - Προσθήκη
EnableAsyncPrefetch=1στη συμβολοσειρά σύνδεσης. - Χρησιμοποιήστε έναν
LIMITόρο για να περιορίσετε το μέγεθος του αποτελέσματος.
Ενεργοποίηση καταγραφής
Ενεργοποίηση λεπτομερούς καταγραφής σε DSN:
[FabricDSN]
LogLevel = DEBUG
LogFile = /tmp/fabric_odbc_debug.log
Εναλλακτικά, προσθέστε παραμέτρους καταγραφής στο συμβολοσειρά σύνδεσης:
LogLevel=DEBUG;LogFile=/tmp/fabric_odbc_debug.log;
Το πρόγραμμα οδήγησης υποστηρίζει τα ακόλουθα επίπεδα καταγραφής:
-
DEBUG: Περιλαμβάνει λεπτομερείς πληροφορίες εντοπισμού σφαλμάτων και είναι το πιο αναλυτικό επίπεδο καταγραφής προγράμματος οδήγησης. -
INFO: Περιλαμβάνει γενικές πληροφορίες και είναι η προεπιλογή. -
WARN: Περιλαμβάνει μόνο προειδοποιήσεις. -
ERROR: Περιλαμβάνει μόνο σφάλματα.
Ενεργοποίηση ανίχνευσης unixODBC
Για διαγνωστικά κλήσεων ODBC χαμηλού επιπέδου, προσθέστε την ακόλουθη ρύθμιση παραμέτρων στο /etc/odbcinst.ini:
[ODBC]
Trace = yes
TraceFile = /tmp/odbc_trace.log
Απενεργοποιήστε την ανίχνευση όταν ολοκληρώσετε την αντιμετώπιση προβλημάτων για να αποφύγετε περιττή επιβάρυνση απόδοσης.