Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Το ODBC (Open Database Connectivity) είναι ένα ευρέως διαδεδομένο πρότυπο που επιτρέπει στις εφαρμογές-πελάτες να συνδέονται και να εργάζονται με δεδομένα από βάσεις δεδομένων και πλατφόρμες μεγάλων δεδομένων.
Το πρόγραμμα οδήγησης Microsoft ODBC για Fabric Data Engineering σάς επιτρέπει να συνδέετε, να υποβάλλετε ερωτήματα και να διαχειρίζεστε φόρτους εργασίας Spark στο Fabric με την αξιοπιστία και την απλότητα του προτύπου ODBC. Χτισμένο στα API Livy του Fabric, το πρόγραμμα οδήγησης παρέχει ασφαλή και ευέλικτη συνδεσιμότητα Spark SQL με τις εφαρμογές C/C++, .NET, Python και άλλες εφαρμογές και εργαλεία BI που είναι συμβατές με ODBC.
Δυνατότητες κλειδιά
- Συμβατό με 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
- Ενοποίηση OneLake: Αποκτήστε πρόσβαση σε δεδομένα lakehouse που είναι αποθηκευμένα στο OneLake, συμπεριλαμβανομένων πινάκων σε πολλά σχήματα, μέσω μιας ενοποιημένης διεπαφής ODBC χωρίς ξεχωριστή ρύθμιση παραμέτρων αποθήκευσης
- Υποστήριξη στοιχείων περιβάλλοντος: Επισυνάψτε Fabric στοιχεία περιβάλλοντος κατά την εκτέλεση της εργασίας για να εφαρμόσετε βιβλιοθήκες χώρου εργασίας, ιδιότητες Spark και μεταβλητές σε κάθε περίοδο λειτουργίας
- Προσαρμοσμένη ρύθμιση παραμέτρων Spark: Μεταβιβάστε τις ιδιότητες ρύθμισης παραμέτρων Spark απευθείας μέσω του συμβολοσειρά σύνδεσης για να ρυθμίσετε τη συμπεριφορά της περιόδου λειτουργίας
Σημείωμα
Στο Apache Spark ανοιχτού κώδικα, η βάση δεδομένων και το σχήμα χρησιμοποιούνται συνώνυμα. Για παράδειγμα, η εκτέλεση SHOW SCHEMAS ή SHOW DATABASES σε ένα σημειωματάριο Fabric επιστρέφει το ίδιο αποτέλεσμα — μια λίστα με όλα τα σχήματα στο lakehouse.
Προαπαιτούμενα
Πριν χρησιμοποιήσετε το πρόγραμμα οδήγησης ODBC της Microsoft για το Microsoft Fabric Data Engineering, βεβαιωθείτε ότι έχετε:
- Λειτουργικό σύστημα: Windows 10/11 ή Windows Server 2016+
- Fabric Access: Πρόσβαση σε χώρο εργασίας Fabric
- Microsoft Entra ID διαπιστευτήρια: Κατάλληλα διαπιστευτήρια για έλεγχο ταυτότητας
- Αναγνωριστικά χώρου εργασίας και lakehouse: Αναγνωριστικά GUID για τον χώρο εργασίας Fabric και το lakehouse
- Azure CLI (προαιρετικό): Απαιτείται για τη μέθοδο ελέγχου ταυτότητας Azure CLI
Λήψη και εγκατάσταση MSI
- Λήψη του πακέτου MSI του προγράμματος οδήγησης Microsoft ODBC για το Microsoft Fabric Data Engineering
- Κάντε διπλό κλικ στο
MicrosoftFabricODBCDriver-2.0.msi. - Ακολουθήστε τον οδηγό εγκατάστασης και αποδεχτείτε την άδεια χρήσης
- Επιλέξτε κατάλογο εγκατάστασης (προεπιλογή:
C:\Program Files\Microsoft ODBC Driver for Microsoft Fabric Data Engineering\) - Ολοκληρώστε την εγκατάσταση
Σιωπηρή εγκατάσταση
# Silent installation
msiexec /i "MicrosoftFabricODBCDriver-2.0.msi" /quiet
# Installation with logging
msiexec /i "MicrosoftFabricODBCDriver-2.0.msi" /l*v install.log
Επαλήθευση εγκατάστασης
Μετά την εγκατάσταση, βεβαιωθείτε ότι το πρόγραμμα οδήγησης είναι καταχωρημένο:
- Εκτέλεση
odbcad32.exe(Διαχειριστής προέλευσης δεδομένων ODBC) - Μεταβείτε στην καρτέλα Προγράμματα οδήγησης
- Βεβαιωθείτε ότι παρατίθεται το "Πρόγραμμα οδήγησης Microsoft ODBC για Microsoft Fabric Data Engineering"
Παράδειγμα γρήγορης εκκίνησης
Αυτό το παράδειγμα δείχνει πώς μπορείτε να συνδεθείτε στο Fabric και να εκτελέσετε ένα ερώτημα χρησιμοποιώντας το πρόγραμμα οδήγησης ODBC της Microsoft για το Microsoft Fabric Data Engineering. Πριν εκτελέσετε αυτόν τον κωδικό, βεβαιωθείτε ότι έχετε ολοκληρώσει τις προϋποθέσεις και έχετε εγκαταστήσει το πρόγραμμα οδήγησης.
Παράδειγμα C/C++
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <iostream>
int main() {
SQLHENV environment = SQL_NULL_HENV;
SQLHDBC connection = SQL_NULL_HDBC;
SQLHSTMT statement = SQL_NULL_HSTMT;
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &environment);
SQLSetEnvAttr(
environment,
SQL_ATTR_ODBC_VERSION,
(SQLPOINTER)SQL_OV_ODBC3,
0);
SQLAllocHandle(SQL_HANDLE_DBC, environment, &connection);
const char* connectionString =
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=AZURE_CLI;";
SQLRETURN result = SQLDriverConnectA(
connection,
NULL,
(SQLCHAR*)connectionString,
SQL_NTS,
NULL,
0,
NULL,
SQL_DRIVER_NOPROMPT);
if (SQL_SUCCEEDED(result)) {
SQLAllocHandle(SQL_HANDLE_STMT, connection, &statement);
result = SQLExecDirectA(
statement,
(SQLCHAR*)"SELECT 'Hello from Fabric!' AS message",
SQL_NTS);
if (SQL_SUCCEEDED(result)) {
char message[256];
SQLLEN indicator;
while (SQLFetch(statement) == SQL_SUCCESS) {
SQLGetData(
statement,
1,
SQL_C_CHAR,
message,
sizeof(message),
&indicator);
std::cout << message << std::endl;
}
}
SQLFreeHandle(SQL_HANDLE_STMT, statement);
SQLDisconnect(connection);
}
SQLFreeHandle(SQL_HANDLE_DBC, connection);
SQLFreeHandle(SQL_HANDLE_ENV, environment);
return 0;
}
Παράδειγμα Python
import pyodbc
# Connection string with required parameters
connection_string = (
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=AZURE_CLI;"
)
# Connect and execute query
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()
Παράδειγμα .NET
using System.Data.Odbc;
// Connection string with required parameters
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));
}
Μορφή συμβολοσειράς σύνδεσης
Βασική συμβολοσειρά σύνδεσης
Το πρόγραμμα οδήγησης ODBC της Microsoft για το Microsoft Fabric Data Engineering χρησιμοποιεί την ακόλουθη μορφή συμβολοσειράς σύνδεσης:
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};<parameter1>=<value1>;<parameter2>=<value2>;...
Στοιχεία συμβολοσειράς σύνδεσης
| Στοιχείο | Περιγραφή | Παράδειγμα |
|---|---|---|
| ΟΔΗΓΟΣ | Αναγνωριστικό προγράμματος οδήγησης ODBC | {Microsoft ODBC Driver for Microsoft Fabric Data Engineering} |
| WorkspaceId | Fabric workspace identifier (GUID) | xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx |
| LakehouseId | Fabric lakehouse αναγνωριστικό (GUID) | xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx |
| Ροή ελέγχου ταυτότητας | Μέθοδο ελέγχου ταυτότητας |
AZURE_CLI, INTERACTIVE, CLIENT_CREDENTIAL, , CLIENT_CERTIFICATE, ACCESS_TOKENFILE_TOKEN |
Παράδειγμα συμβολοσειρών σύνδεσης
Βασική σύνδεση (έλεγχος ταυτότητας Azure CLI)
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=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
Ανατρέξτε στην ενότητα ΛειτουργίαHigh-Concurrency (HC) για πλήρεις οδηγίες διαμόρφωσης.
Έλεγχος ταυτότητας
Το πρόγραμμα οδήγησης Microsoft ODBC για το Microsoft Fabric Data Engineering υποστηρίζει πολλές μεθόδους ελέγχου ταυτότητας μέσω του Microsoft Entra ID (πρώην Azure Active Directory). Ο έλεγχος ταυτότητας διαμορφώνεται χρησιμοποιώντας την AuthFlow παράμετρο στη συμβολοσειρά σύνδεσης.
Μέθοδοι ελέγχου ταυτότητας
| Τιμή AuthFlow | Περιγραφή |
|---|---|
CLIENT_CREDENTIAL (0) |
Κύρια υπηρεσία με μυστικό πελάτη. Ψευδώνυμο: CLIENT_SECRET_CREDENTIAL. |
BROWSER_BASED (1) |
Αλληλεπιδραστικός έλεγχος ταυτότητας μέσω προγράμματος περιήγησης. Ψευδώνυμο: INTERACTIVE. |
AZURE_CLI (2) |
Ανάπτυξη με χρήση διαπιστευτηρίων Azure CLI. |
CLIENT_CERTIFICATE_CREDENTIAL (3) |
Διευθυντής υπηρεσίας με πιστοποιητικό. Ψευδώνυμο: CLIENT_CERTIFICATE. |
AUTH_ACCESS_TOKEN (4) |
Προαποκτηθέν διακριτικό πρόσβασης κομιστή. Ψευδώνυμο: ACCESS_TOKEN. |
FILE_TOKEN (5) |
Διαβάζει ένα διακριτικό ελέγχου ταυτότητας από ένα αρχείο. |
Μπορείτε να καθορίσετε τιμές ελέγχου ταυτότητας με κεφαλαία γράμματα φιδιού, πεζά Pascal ή αριθμητική μορφή. Το πρόγραμμα οδήγησης δέχεται επίσης σύντομα ψευδώνυμα όπως Browser, Interactive, CLI, Certificate, Tokenκαι File. Ο οδηγός αγνοεί τις υπογραμμίσεις όταν συγκρίνει τιμές.
Έλεγχος ταυτότητας Azure CLI
Καλύτερα για: Ανάπτυξη και διαδραστικές εφαρμογές
# Python Example
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
Αλληλεπιδραστικός έλεγχος ταυτότητας προγράμματος περιήγησης
Καλύτερα για: Εφαρμογές που απευθύνονται στον χρήστη
# Python Example
connection_string = (
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=INTERACTIVE;"
"TenantId=<tenant-id>;"
"Scope=https://api.fabric.microsoft.com/.default;"
)
conn = pyodbc.connect(connection_string)
Συμπεριφορά:
- Ανοίγει ένα παράθυρο του προγράμματος περιήγησης για έλεγχο ταυτότητας χρήστη
- Τα διαπιστευτήρια αποθηκεύονται προσωρινά για τις επόμενες συνδέσεις
Έλεγχος ταυτότητας διαπιστευτηρίων προγράμματος-πελάτη (κύρια υπηρεσία)
Καλύτερα για: Αυτοματοποιημένες υπηρεσίες και εργασίες παρασκηνίου
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: Αναγνωριστικό μισθωτή Azure -
ClientId: Αναγνωριστικό εφαρμογής (προγράμματος-πελάτη) από το Microsoft Entra ID -
ClientSecret: Μυστικός κωδικός προγράμματος-πελάτη από το Microsoft Entra ID
Βέλτιστες πρακτικές
- Αποθηκεύστε τα μυστικά με ασφάλεια (Azure Key Vault, μεταβλητές περιβάλλοντος)
- Χρήση διαχειριζόμενων ταυτοτήτων όταν είναι δυνατό
- Εναλλάσσετε τακτικά μυστικά
Έλεγχος ταυτότητας βασισμένος σε πιστοποιητικό
Ιδανικό για: Εταιρικές εφαρμογές που απαιτούν έλεγχο ταυτότητας βάσει πιστοποιητικών
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=C:\\certs\\mycert.pfx;"
"CertificatePassword=<password>;"
)
Απαιτούμενες παράμετροι:
-
TenantId: Αναγνωριστικό μισθωτή Azure -
ClientId: Αναγνωριστικό εφαρμογής (προγράμματος-πελάτη) -
CertificatePath: Διαδρομή προς το αρχείο πιστοποιητικού PFX/PKCS12 -
CertificatePassword: Κωδικός πρόσβασης πιστοποιητικού
Έλεγχος ταυτότητας διακριτικού πρόσβασης
Ιδανικό για: Προσαρμοσμένα σενάρια ελέγχου ταυτότητας
# Acquire token through custom mechanism
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;"
)
Το πρόγραμμα οδήγησης επιλύει τη θέση του αρχείου διακριτικού σε Windows και Linux.
Ψευδώνυμα ιδιοτήτων cross-driver
Το πρόγραμμα οδήγησης ODBC δέχεται επιλεγμένα ονόματα ιδιοτήτων ADO.NET και JDBC εκτός από τα εγγενή ονόματα ODBC. Αυτή η υποστήριξη μπορεί να μειώσει τις αλλαγές συμβολοσειράς σύνδεσης όταν μετακινείστε μεταξύ προγραμμάτων οδήγησης Fabric.
| Ιδιότητα ADO.NET ή JDBC | Ισοδύναμο ODBC |
|---|---|
FabricWorkspaceID |
WorkspaceId |
FabricLakehouseID |
LakehouseId |
LivySessionTimeoutSeconds |
Χρονικό όριο σύνδεσης |
LivyStatementTimeoutSeconds |
Χρονικό όριο δήλωσης |
ConnectionPoolEnabled |
Ενεργοποίηση πισίνας |
Το πρόγραμμα οδήγησης επιλύει 17 ψευδώνυμα μεταξύ προγραμμάτων οδήγησης κατά τη σύνδεση.
Παράμετροι διαμόρφωσης
Απαιτούμενες παράμετροι
Αυτές οι παράμετροι πρέπει να υπάρχουν σε κάθε συμβολοσειρά σύνδεσης:
| Παράμετρος | Τύπος | Περιγραφή | Παράδειγμα |
|---|---|---|---|
| WorkspaceId | UUID | Αναγνωριστικό χώρου εργασίας Fabric | 4bbf89a8-... |
| LakehouseId | UUID | Αναγνωριστικό Fabric lakehouse | d8faa650-... |
| Ροή ελέγχου ταυτότητας | Συμβλοσειρά | Τύπος ροής ελέγχου ταυτότητας | AZURE_CLI |
Προαιρετικές παράμετροι
Ρυθμίσεις σύνδεσης
| Παράμετρος | Τύπος | Προεπιλεγμένος | Περιγραφή |
|---|---|---|---|
| Βάση δεδομένων | Συμβλοσειρά | Κανένα | Αρχική βάση δεδομένων για κλασική λειτουργία. Η λειτουργία HC δεν την εφαρμόζει αυτόματα. εκτελείται USE <database> μετά τη σύνδεση ή χρησιμοποιήστε πλήρως προσδιορισμένα ονόματα πινάκων. |
| Πεδίο | Συμβλοσειρά | https://api.fabric.microsoft.com/.default |
Πεδίο εφαρμογής OAuth |
Ρυθμίσεις απόδοσης
| Παράμετρος | Τύπος | Προεπιλεγμένος | Περιγραφή |
|---|---|---|---|
| ΕπαναχρησιμοποίησηΣυνεδρία | Boolean | true |
Επαναχρησιμοποίηση υπάρχουσας περιόδου λειτουργίας Spark |
| Υποστήριξη LargeTableSupport | Boolean | false |
Ενεργοποίηση βελτιστοποιήσεων για μεγάλα σύνολα αποτελεσμάτων |
| Ενεργοποίηση AsyncPrefetch | Boolean | false |
Ενεργοποίηση προφόρτωσης δεδομένων παρασκηνίου |
| PageSizeBytes | Ακέραιος |
18874368 (18 MB) |
Μέγεθος σελίδας για σελιδοποίηση αποτελεσμάτων (1-18 MB) |
Ρυθμίσεις καταγραφής
| Παράμετρος | Τύπος | Προεπιλεγμένος | Περιγραφή |
|---|---|---|---|
| Επίπεδο καταγραφής | Συμβλοσειρά | INFO |
Επίπεδο καταγραφής: DEBUG, INFO, WARN, ή ERROR. Χρησιμοποιήστε το DEBUG για λεπτομερή διαγνωστικό έλεγχο του προγράμματος οδήγησης. |
| Αρχείο καταγραφής | Συμβλοσειρά | odbc_driver.log |
Διαδρομή αρχείου καταγραφής (απόλυτη ή σχετική) |
Ρυθμίσεις διακομιστή μεσολάβησης
| Παράμετρος | Τύπος | Προεπιλεγμένος | Περιγραφή |
|---|---|---|---|
| Χρήσηδιακομιστή μεσολάβησης | Boolean | false |
Ενεργοποίηση διακομιστή μεσολάβησης |
| Διακομιστής μεσολάβησης | Συμβλοσειρά | Κανένα | Όνομα κεντρικού υπολογιστή διακομιστή μεσολάβησης |
| Θύρα διακομιστή μεσολάβησης | Ακέραιος | Κανένα | Θύρα διακομιστή μεσολάβησης |
| Όνομα χρήστη διακομιστή μεσολάβησης | Συμβλοσειρά | Κανένα | Όνομα χρήστη ελέγχου ταυτότητας διακομιστή μεσολάβησης |
| Κωδικός μεσολάβησης | Συμβλοσειρά | Κανένα | Κωδικός πρόσβασης ελέγχου ταυτότητας διακομιστή μεσολάβησης |
Ρυθμίσεις υψηλής ταυτοχρονισμού (HC)
Χρησιμοποιήστε αυτές τις παραμέτρους για να ενεργοποιήσετε και να διαμορφώσετε τη λειτουργία υψηλής ταυτόχρονης εκτέλεσης (HC). Η λειτουργία HC είναι προαιρετική. Εάν δεν ορίσετε LivyMode ή UseHighConcurrency, το πρόγραμμα οδήγησης χρησιμοποιεί την κλασική διαδρομή μίας περιόδου λειτουργίας. Για οδηγίες και παραδείγματα, ανατρέξτε στο θέμα Λειτουργία υψηλής ταυτόχρονης εκτέλεσης (HC).
| Παράμετρος | Τύπος | Προεπιλεγμένος | Περιγραφή |
|---|---|---|---|
LivyMode |
Συμβλοσειρά | Δεν έχει οριστεί | Ελέγχει την απόκτηση συνεδρίας. Οι υποστηριζόμενες τιμές είναι Classic, HighConcurrencyκαι Auto.
Auto Προς το παρόν χρησιμοποιεί την κλασική διαδρομή. |
UseHighConcurrency |
Boolean | false |
Ενεργοποιεί τη λειτουργία HC ως εναλλακτική λύση στη ρύθμιση LivyMode=HighConcurrency. |
SessionTag |
Συμβλοσειρά | Κανένα | Παρέχει μια υπόδειξη συσκευασίας από την πλευρά του διακομιστή. Οι συνδέσεις πρέπει να χρησιμοποιούν αντίστοιχες ρυθμίσεις από την πλευρά του διακομιστή για να μοιράζονται μια ζεστή συνεδρία Livy. |
IdempotencyKey |
Συμβλοσειρά | Κανένα | Παρέχει ένα κλειδί που δημιουργείται από τον πελάτη για ασφαλείς επαναλήψεις απόκτησης HC. Το πρόγραμμα οδήγησης επικυρώνει το σύνολο χαρακτήρων και δεν καταγράφει ποτέ την τιμή. |
EnvironmentId |
Συμβλοσειρά | Κανένα | Καθορίζει το αναγνωριστικό περιβάλλοντος Fabric που αποστέλλεται όπως spark.fabric.environmentDetails στη ρύθμιση παραμέτρων απόκτησης HC. |
HeartbeatTimeoutInSecond |
Ακέραιος | Προεπιλογή διακομιστή | Ορίζει το χρονικό όριο αδράνειας της περιόδου λειτουργίας HC από την πλευρά του διακομιστή, σε δευτερόλεπτα. Η τιμή πρέπει να είναι θετικός ακέραιος. |
AcquireTimeoutSeconds |
Ακέραιος | 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 και συμβολοσειράς σύνδεσης.
Ρυθμίσεις περιβάλλοντος
Μπορείτε να επισυνάψετε ένα στοιχείο περιβάλλοντος Fabric στην περίοδο λειτουργίας Spark που ξεκίνησε από το πρόγραμμα οδήγησης. Οι βιβλιοθήκες, οι ιδιότητες Spark και οι μεταβλητές του επιλεγμένου περιβάλλοντος εφαρμόζονται αυτόματα κατά τη δημιουργία της συνεδρίας.
| Παράμετρος | Τύπος | Προεπιλεγμένος | Περιγραφή |
|---|---|---|---|
| EnvironmentId | UUID | Κανένα | Αναγνωριστικό στοιχείου περιβάλλοντος Fabric (GUID) που θα εφαρμοστεί κατά τη δημιουργία περιόδου λειτουργίας Spark |
Παράδειγμα συμβολοσειρά σύνδεσης με ένα στοιχείο περιβάλλοντος:
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;EnvironmentId=<environment-id>
Σημείωμα
Το περιβάλλον εφαρμόζεται κατά την έναρξη της περιόδου λειτουργίας Spark. Εάν καθορίσετε επίσης προσαρμοσμένες ιδιότητες ρύθμισης παραμέτρων Spark, οι ιδιότητες σε επίπεδο συνεδρίας έχουν προτεραιότητα έναντι των προεπιλογών περιβάλλοντος.
Προσαρμοσμένη ρύθμιση παραμέτρων Spark
Μπορείτε να μεταβιβάσετε τις ιδιότητες ρύθμισης παραμέτρων Spark απευθείας στη συμβολοσειρά σύνδεσης. Οποιαδήποτε παράμετρος με πρόθεμα spark. εφαρμόζεται αυτόματα στην περίοδο λειτουργίας Spark κατά τη στιγμή της δημιουργίας, επιτρέποντάς σας να παρακάμψετε τις προεπιλογές χώρου εργασίας ή χρόνου εκτέλεσης.
Παράδειγμα διαμορφώσεων Spark:
spark.sql.shuffle.partitions=200
spark.sql.adaptive.enabled=true
spark.sql.autoBroadcastJoinThreshold=10485760
Παράδειγμα συμβολοσειρά σύνδεσης με προσαρμοσμένες ιδιότητες Spark:
DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};WorkspaceId=<workspace-id>;LakehouseId=<lakehouse-id>;AuthFlow=AZURE_CLI;spark.sql.shuffle.partitions=200;spark.sql.adaptive.enabled=true
Σημείωμα
Οι ιδιότητες ρύθμισης σπινθήρα εφαρμόζονται κατά τη δημιουργία της συνεδρίας. Εφαρμόζονται σε όλα τα ερωτήματα που εκτελούνται εντός αυτής της περιόδου λειτουργίας και παρακάμπτουν τις προεπιλογές περιβάλλοντος ή χρόνου εκτέλεσης για τις ίδιες ιδιότητες.
Λειτουργία υψηλής ταυτοχρονισμού (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.
Απαιτούμενες παράμετροι σε λειτουργία HC
Η ενεργοποίηση HC απαιτεί τα ακόλουθα έγκυρα αναγνωριστικά:
| Παράμετρος | Σημειώσεις |
|---|---|
WorkspaceId |
Πρέπει να είναι έγκυρο GUID χώρου εργασίας Fabric. |
LakehouseId |
Πρέπει να είναι έγκυρο GUID Fabric lakehouse. |
Συμπεριλάβετε SessionTag επειδή επηρεάζει την αντιστοίχιση από την πλευρά του διακομιστή για θερμές συνεδρίες.
Αντιστοίχιση συνεδρίας
Η λειτουργία HC δεν εγγυάται ότι κάθε σύνδεση επαναχρησιμοποιεί μια υπάρχουσα περίοδο λειτουργίας. Για κάθε αίτημα απόκτησης συνεδρίας, ο οδηγός αποστέλλει:
- Η
SessionTagαξία. - Η αποτελεσματική διαμόρφωση του Spark, συμπεριλαμβανομένων των
conf.*ρυθμίσεων καιEnvironmentIdτων αρχείων .
Η υπηρεσία Fabric Livy αξιολογεί αυτές τις τιμές και αποφασίζει εάν θα συνδέσει τη σύνδεση σε μια θερμή συνεδρία ή θα δημιουργήσει μια νέα συνεδρία. Για να βελτιώσετε την επαναχρησιμοποίηση περιόδων λειτουργίας, χρησιμοποιήστε συνεπείς τιμές σε όλες τις συνδέσεις που προορίζονται για κοινή χρήση χωρητικότητας Spark διαχειριζόμενη από διακομιστή.
Παράδειγμα συμβολοσειρών σύνδεσης
Ελάχιστη σύνδεση HC (Azure CLI auth):
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 conf παρακάμπτει:
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 σε DSN
Μπορείτε να αποθηκεύσετε τις ρυθμίσεις HC σε ένα DSN αντί να τις επαναλαμβάνετε σε κάθε συμβολοσειρά σύνδεσης. Όταν μια συμβολοσειρά σύνδεσης δεν καθορίζει μια τιμή, το πρόγραμμα οδήγησης διαβάζει αυτές τις ρυθμίσεις από το DSN:
LivyModeUseHighConcurrencyEnvironmentIdSessionTagIdempotencyKeyHeartbeatTimeoutInSecondAcquireTimeoutSeconds
Το πρόγραμμα οδήγησης διαβάζει επίσης τη συμβατότητα μόνο TenantPrincipal και PoolMax τις ρυθμίσεις. Για να αποθηκεύσετε αυτές τις ρυθμίσεις, επεξεργαστείτε το DSN στο odbcad32.exe ή χρησιμοποιήστε SQLWritePrivateProfileStringτο . Χρησιμοποιήστε τα ονόματα παραμέτρων στον πίνακα ρυθμίσεων 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
Δημιουργία DSN συστήματος
Ανοίξτε το ODBC Administrator
%SystemRoot%\System32\odbcad32.exeΔημιουργία νέου DSN συστήματος
- Μεταβείτε στην καρτέλα "DSN συστήματος".
- Επιλέξτε "Προσθήκη"
- Επιλέξτε "Πρόγραμμα οδήγησης Microsoft ODBC για Microsoft Fabric Data Engineering"
- Επιλέξτε "Τέλος"
Διαμόρφωση ρυθμίσεων DSN
-
Όνομα πηγής δεδομένων: Εισαγάγετε ένα μοναδικό όνομα (π.χ.
FabricODBC) - Περιγραφή: Προαιρετική περιγραφή
- Αναγνωριστικό χώρου εργασίας: Το GUID του χώρου εργασίας Fabric
- Αναγνωριστικό Lakehouse: Το GUID του Fabric lakehouse
- Έλεγχος ταυτότητας: Επιλέξτε μέθοδο ελέγχου ταυτότητας
- Αναγνωριστικό περιβάλλοντος (προαιρετικό): Εισαγάγετε το GUID του στοιχείου περιβάλλοντος Fabric που θα επισυνάψετε κατά τη δημιουργία της συνεδρίας
-
Λειτουργία Livy (προαιρετικό): Ρυθμίστε σε
HighConcurrencyγια να ενεργοποιήσετε τη λειτουργία HC - Ετικέτα περιόδου σύνδεσης (προαιρετικά): Καταχωρίστε μια μη ευαίσθητη ετικέτα λειτουργίας για αντιστοίχιση περιόδων σύνδεσης HC
- Διαμορφώστε πρόσθετες ρυθμίσεις όπως απαιτείται
-
Όνομα πηγής δεδομένων: Εισαγάγετε ένα μοναδικό όνομα (π.χ.
Δοκιμαστική σύνδεση
- Επιλέξτε "Δοκιμή σύνδεσης" για να επαληθεύσετε τις ρυθμίσεις
- Επιλέξτε "OK" για αποθήκευση
Χρήση DSN σε εφαρμογές
# Python - Connect using DSN
conn = pyodbc.connect("DSN=FabricODBC")
// .NET - Connect using DSN
using var connection = new OdbcConnection("DSN=FabricODBC");
await connection.OpenAsync();
Παραδείγματα χρήσης
Βασική σύνδεση και ερώτημα
Πύθωνας
import pyodbc
def main():
connection_string = (
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};"
"WorkspaceId=<workspace-id>;"
"LakehouseId=<lakehouse-id>;"
"AuthFlow=AZURE_CLI;"
"ReuseSession=true;"
)
conn = pyodbc.connect(connection_string, timeout=30)
cursor = conn.cursor()
print("Connected successfully!")
# Show available tables
print("\nAvailable tables:")
cursor.execute("SHOW TABLES")
for row in cursor.fetchall():
print(f" {row}")
# Query data
print("\nQuery results:")
cursor.execute("SELECT * FROM employees LIMIT 10")
# Print column names
columns = [desc[0] for desc in cursor.description]
print(f"Columns: {columns}")
# Print rows
for row in cursor.fetchall():
print(row)
conn.close()
if __name__ == "__main__":
main()
.NET
using System.Data.Odbc;
class Program
{
static async Task Main(string[] args)
{
string connectionString =
"DRIVER={Microsoft ODBC Driver for Microsoft Fabric Data Engineering};" +
"WorkspaceId=<workspace-id>;" +
"LakehouseId=<lakehouse-id>;" +
"AuthFlow=AZURE_CLI;" +
"ReuseSession=true;";
using var connection = new OdbcConnection(connectionString);
await connection.OpenAsync();
Console.WriteLine("Connected successfully!");
// Show available tables
Console.WriteLine("\nAvailable tables:");
using (var cmd = new OdbcCommand("SHOW TABLES", connection))
using (var reader = await cmd.ExecuteReaderAsync())
{
while (await reader.ReadAsync())
{
Console.WriteLine($" {reader.GetString(0)}");
}
}
// Query data
Console.WriteLine("\nQuery results:");
using (var cmd = new OdbcCommand("SELECT * FROM employees LIMIT 10", connection))
using (var reader = await cmd.ExecuteReaderAsync())
{
// Print column names
var columns = new List<string>();
for (int i = 0; i < reader.FieldCount; i++)
{
columns.Add(reader.GetName(i));
}
Console.WriteLine($"Columns: {string.Join(", ", columns)}");
// Print rows
while (await reader.ReadAsync())
{
var values = new object[reader.FieldCount];
reader.GetValues(values);
Console.WriteLine(string.Join("\t", values));
}
}
}
}
Εργασία με μεγάλα σύνολα αποτελεσμάτων
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;" # 18 MB pages
"EnableAsyncPrefetch=1;"
)
conn = pyodbc.connect(connection_string)
cursor = conn.cursor()
# Execute large query
cursor.execute("SELECT * FROM large_table")
# Process in batches
row_count = 0
while True:
rows = cursor.fetchmany(1000) # Fetch 1000 rows at a time
if not rows:
break
for row in rows:
# Process row
row_count += 1
if row_count % 10000 == 0:
print(f"Processed {row_count} rows")
print(f"Total rows processed: {row_count}")
conn.close()
Εκτέλεση δηλώσεων DML
bool executeDml(SQLHDBC connection, const char* sql, const char* description) {
SQLHSTMT statement = SQL_NULL_HSTMT;
SQLAllocHandle(SQL_HANDLE_STMT, connection, &statement);
std::cout << "Executing: " << description << std::endl;
SQLRETURN result = SQLExecDirectA(
statement,
(SQLCHAR*)sql,
SQL_NTS);
bool succeeded = SQL_SUCCEEDED(result);
if (succeeded) {
SQLLEN rowCount;
SQLRowCount(statement, &rowCount);
std::cout << "Rows affected: " << rowCount << std::endl;
}
SQLFreeHandle(SQL_HANDLE_STMT, statement);
return succeeded;
}
Χρήση executeDml με INSERT, UPDATE, ή DELETE δηλώσεις. Το αναφερόμενο πλήθος γραμμών εξαρτάται από το εάν το αποτέλεσμα περιέχει πλήθος ενημερώσεων που αναγνωρίζεται από το πρόγραμμα οδήγησης.
Ανακάλυψη σχήματος
import pyodbc
conn = pyodbc.connect(connection_string)
cursor = conn.cursor()
# List all tables
print("Tables in current default schema / database:")
cursor.execute("SHOW TABLES")
tables = cursor.fetchall()
for table in tables:
print(f" {table}")
# Describe table structure
print("\nTable structure for 'employees':")
cursor.execute("DESCRIBE employees")
for col in cursor.fetchall():
print(f" {col}")
# List schemas (for multi-schema Lakehouses)
print("\nAvailable schemas:")
cursor.execute("SHOW SCHEMAS")
for db in cursor.fetchall():
print(f" {db}")
conn.close()
Αντιστοίχιση τύπου δεδομένων
Το πρόγραμμα οδήγησης αντιστοιχίζει τους τύπους δεδομένων Spark SQL σε τύπους ODBC SQL:
| Τύπος SQL Spark | Τύπος SQL ODBC | Τύπος C/C++ | Τύπος Python | Τύπος .NET |
|---|---|---|---|---|
| ΔΥΑΔΙΚΉ ΤΙΜΉ | SQL_BIT | SQLCHAR | bool | bool |
| BYTE | SQL_TINYINT | SQLSCHAR | int | sbyte |
| ΜΙΚΡΟΣ | SQL_SMALLINT | SQLSMALLINT | int | κοντός |
| INT | SQL_INTEGER | SQLINTEGER | int | int |
| ΜΑΚΡΎΣ | SQL_BIGINT | SQLBIGINT | int | long |
| ΕΠΙΠΛΈΩ | SQL_REAL | SQLREAL | float | float |
| ΔΙΠΛΌΣ | SQL_DOUBLE | SQLΔΙΠΛΌ | float | double |
| ΔΕΚΑΔΙΚΌΣ | SQL_DECIMAL | SQLCHAR* | δεκαδικός. Δεκαδικός | decimal |
| ΣΕΙΡΆ | SQL_VARCHAR | SQLCHAR* | str | string |
| ΒΑΡΤΣΑΡ(ν) | SQL_VARCHAR | SQLCHAR* | str | string |
| CHAR(n) | SQL_CHAR | SQLCHAR* | str | string |
| ΔΥΑΔΙΚΌΣ | SQL_VARBINARY | SQLCHAR* | byte | byte[] |
| ΗΜΕΡΟΜΗΝΊΑ | SQL_TYPE_DATE | SQL_DATE_STRUCT | ημερομηνία/ώρα.ημερομηνία | Ημερομηνία/ώρα |
| ΧΡΟΝΙΚΉ ΣΉΜΑΝΣΗ | SQL_TYPE_TIMESTAMP | SQL_TIMESTAMP_STRUCT | ημερομηνία/ώρα.ημερομηνία/ώρα | Ημερομηνία/ώρα |
| ΠΑΡΆΤΑΞΗ | SQL_VARCHAR | SQLCHAR* | str (JSON) | string |
| ΧΆΡΤΗΣ | SQL_VARCHAR | SQLCHAR* | str (JSON) | string |
| ΔΟΜΗ | SQL_VARCHAR | SQLCHAR* | str (JSON) | string |
Ενσωμάτωση εργαλείου BI
Microsoft Excel
- Ανοίξτε το Excel -> Δεδομένα -> Λήψη δεδομένων -> Από άλλες πηγές -> Από ODBC
- Επιλέξτε το DSN που έχετε ρυθμίσει (π.χ.
FabricODBC) - Έλεγχος ταυτότητας εάν σας ζητηθεί
- Αναζήτηση και επιλογή πινάκων
- Φόρτωση δεδομένων σε φύλλο εργασίας του Excel
Power BI Desktop
- Άνοιγμα του Power BI Desktop -> Λήψη δεδομένων -> ODBC
- Επιλέξτε το DSN που έχετε διαμορφώσει
- Περιήγηση στον κατάλογο δεδομένων και επιλογή πινάκων
- Μετασχηματισμός δεδομένων ανάλογα με τις ανάγκες
- Δημιουργία απεικονίσεων
SQL Server Management Studio (Συνδεδεμένος διακομιστής)
-- Create linked server
EXEC sp_addlinkedserver
@server = 'FABRIC_LINKED_SERVER',
@srvproduct = 'Microsoft Fabric',
@provider = 'MSDASQL',
@datasrc = 'FabricODBC'
-- Configure RPC
EXEC master.dbo.sp_serveroption
@server = N'FABRIC_LINKED_SERVER',
@optname = N'rpc out',
@optvalue = N'true';
-- Query via linked server
SELECT * FROM OPENQUERY(FABRIC_LINKED_SERVER, 'SHOW TABLES');
SELECT * FROM OPENQUERY(FABRIC_LINKED_SERVER, 'SELECT * FROM employees LIMIT 20');
-- Execute statements
EXEC('SELECT * FROM employees LIMIT 10') AT FABRIC_LINKED_SERVER;
Αντιμετώπιση προβλημάτων
Αυτή η ενότητα παρέχει οδηγίες για την επίλυση συνηθισμένων προβλημάτων που ενδέχεται να αντιμετωπίσετε κατά τη χρήση του προγράμματος οδήγησης ODBC της Microsoft για το Microsoft Fabric Data Engineering.
Συνήθη ζητήματα
Οι ακόλουθες ενότητες περιγράφουν κοινά προβλήματα και τις λύσεις τους:
Αποτυχίες σύνδεσης
Πρόβλημα: Δεν είναι δυνατή η σύνδεση στο 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
Λήξη χρονικού ορίου ερωτήματος
Πρόβλημα: Λήξη χρονικού ορίου ερωτημάτων σε μεγάλους πίνακες
Λύσεις:
- Ενεργοποίηση
LargeTableSupport=true - Προσαρμόστε
PageSizeBytesγια βέλτιστο μέγεθος κομματιού - Ενεργοποίηση ασύγχρονης προφόρτωσης:
EnableAsyncPrefetch=1 - Χρήση
LIMITόρου για τον περιορισμό του μεγέθους του αποτελέσματος
Ενεργοποίηση καταγραφής
Κατά την αντιμετώπιση προβλημάτων, η ενεργοποίηση της λεπτομερούς καταγραφής μπορεί να σας βοηθήσει να εντοπίσετε τη βασική αιτία των προβλημάτων. Μπορείτε να ενεργοποιήσετε την καταγραφή μέσω της συμβολοσειράς σύνδεσης.
Για να ενεργοποιήσετε τη λεπτομερή καταγραφή:
LogLevel=DEBUG;LogFile=C:\temp\odbc_driver_debug.log;
Επίπεδα καταγραφής:
-
DEBUG: Λεπτομερείς πληροφορίες εντοπισμού σφαλμάτων και το πιο αναλυτικό επίπεδο καταγραφής προγραμμάτων οδήγησης -
INFO: Γενικές πληροφορίες (προεπιλογή) -
WARN: Μόνο προειδοποιήσεις -
ERROR: Μόνο σφάλματα
Ανίχνευση ODBC
Για διαγνωστικά χαμηλού επιπέδου, μπορείτε να ενεργοποιήσετε την ανίχνευση ODBC των Windows για την καταγραφή λεπτομερών κλήσεων API ODBC και συμπεριφοράς προγραμμάτων οδήγησης. Θυμηθείτε να απενεργοποιείτε την ανίχνευση όταν δεν χρειάζεται για να διατηρήσετε τη βέλτιστη απόδοση.
Για να ενεργοποιήσετε την ανίχνευση ODBC:
- Άνοιγμα
odbcad32.exe - Μεταβείτε στην καρτέλα "Ανίχνευση".
- Ορίστε τη διαδρομή του αρχείου ιχνηλασίας (π.χ.
C:\temp\odbctrace.log) - Επιλέξτε "Έναρξη ανίχνευσης τώρα"
- Αναπαραγάγετε το πρόβλημα
- Επιλέξτε "Διακοπή ανίχνευσης τώρα"