Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo è la fase 2 di 4 della serie sulle procedure consigliate per la migrazione da Azure Synapse Spark a Microsoft Fabric.
Usa questo articolo per migrare i tuoi carichi di lavoro Spark da Azure Synapse a Fabric. Questo articolo illustra l'esecuzione di Migration Assistant, il refactoring dei modelli di codice che non possono essere convertiti automaticamente e la migrazione di configurazioni, ambienti e librerie del pool Spark.
In questo articolo vengono illustrate le operazioni seguenti:
- Informazioni sul flusso di lavoro di migrazione per le aree di lavoro Synapse standard (non Git) e abilitate per Git.
- Usare l'Migration Assistant Spark per eseguire la migrazione di notebook, definizioni di processi Spark e pool.
- Effettuare il refactoring di modelli di codice specifici di Synapse per la compatibilità con Fabric.
- Eseguire la migrazione di impostazioni, ambienti e librerie del pool di Spark.
- Identificare e risolvere i gap di compatibilità delle librerie tra Synapse e Fabric.
Eseguire la migrazione con il Migration Assistant
Spark Migration Assistant automatizza la migrazione di notebook, definizioni di processi Spark, pool e metadati del database lake da Synapse a Fabric. L'assistente copia e trasforma gli elementi, ma non completa la migrazione, ma è comunque necessario effettuare il refactoring del codice, risolvere i gap di configurazione e convalidare i risultati.
Per istruzioni passo passo sull’esecuzione dell’assistente, vedere Spark Synapse to Fabric Spark Migration Assistant (Preview).
L'assistente esegue la migrazione degli elementi seguenti:
- Gli spark pool vengono migrati verso i Fabric Pool e i relativi elementi ambientali.
- Viene eseguita la migrazione dei notebook e dei relativi ambienti associati.
- Le definizioni dei processi Spark vengono migrate con gli ambienti associati.
- I database Lake vengono mappati agli schemi Fabric. Le tabelle Delta gestite vengono migrate tramite collegamenti al catalogo OneLake.
Importante
Le configurazioni spark, le librerie personalizzate e le impostazioni dell'executor personalizzato non vengono migrate dall'assistente. Devi configurarli manualmente negli elementi ambientali in Fabric. Le aree di lavoro di Synapse in una rete virtuale non possono essere migrate con l'assistente.
Migrazione dell'area di lavoro standard (non Git)
Per le aree di lavoro in cui i notebook e i dischi SSD vengono archiviati direttamente in Synapse (non in un repository Git):
Esegui l'Assistente Migrazione Spark dall'ambiente di lavoro Fabric (Migrazione>Elementi di ingegneria dei dati). Selezionare l'area di lavoro synapse di origine ed eseguire la migrazione di tutti gli elementi spark.
Convalidare le dipendenze: verificare che venga usata la stessa versione di Spark. Se i notebook fanno riferimento ad altri notebook tramite
mssparkutils.notebook.run(), verificare che anche la loro migrazione sia stata completata. Il Migration Assistant mantiene la struttura delle cartelle (Fabric supporta fino a 10 livelli di annidamento).Refattorizzazione del codice: sostituire
mssparkutilsconnotebookutils, cambiare i riferimenti ai servizi collegati con Connessioni Fabric e aggiornare i percorsi dei file. Per informazioni dettagliate, vedere la sezione Refactoring del codice Spark .
Migrazione delle aree di lavoro abilitate a Git
Per le aree di lavoro in cui i notebook e i dischi SSD vengono archiviati in un repository Azure DevOps o GitHub, si noti che Synapse e Fabric usano formati di serializzazione Git diversi. Synapse archivia i notebook come JSON; Fabric usa il formato di origine .py/.scala o .ipynb. Non è possibile puntare direttamente un'area di lavoro Fabric nello stesso ramo Git di Synapse.
Eseguire la migrazione degli elementi. Usare l'Migration Assistant Spark per eseguire la migrazione di notebook e unità SSD dall'area di lavoro Synapse a un'area di lavoro Fabric. In questo modo gli elementi vengono convertiti in formato compatibile con Fabric.
Eseguire il refactoring del codice. Applicare lo stesso refactoring del codice dello scenario standard: sostituire
mssparkutils, aggiornare i percorsi dei file, sostituire i servizi collegati. Per informazioni dettagliate, vedere la sezione Refactoring del codice Spark .Collegare l'area di lavoro di Fabric a Git. Connettere l'area di lavoro Fabric a una nuova cartella o ramo nel repository (>Source Control>Git Integration). Usare un ramo o una cartella separata dal contenuto di Synapse per evitare conflitti. Eseguire il commit del contenuto dell'area di lavoro Fabric per popolare il nuovo ramo.
Configurare le pipeline di distribuzione (facoltativo). Configurare le pipeline di distribuzione di Fabric (Sviluppo → Test → Prod) per il CI/CD continuo. Fabric supporta l'associazione automatica per i lakehouse predefiniti e gli ambienti collegati durante la distribuzione in più fasi.
Suggerimento
Mantenere intatto il ramo Git di Synapse come riferimento cronologico. Creare un nuovo ramo o una nuova cartella per i contenuti Fabric. Fabric archivia i notebook come file di origine (.py per PySpark) anziché JSON, che fornisce differenze Git più pulite per la revisione del codice.
Eseguire il refactoring del codice Spark
Dopo la migrazione dei notebook e delle definizioni dei processi Spark, è necessario correggere i modelli di codice che il Migration Assistant non può convertire automaticamente. Questa sezione illustra la sostituzione delle API specifiche di Synapse, l'aggiornamento dei percorsi di file e la modifica dei modelli di credenziali da usare con Fabric.
Verifica preliminare al refactoring
Prima di affrontare i singoli modelli di refactoring, eseguire una ricerca a livello di codebase in tutti i notebook per identificare il codice specifico di Synapse che richiede modifiche.
| Criterio di ricerca | Categoria | Azione necessaria |
|---|---|---|
spark.synapse.linkedService |
Servizi collegati | Rimuovere; sostituire con l'autenticazione diretta dell'endpoint o i segreti di Key Vault |
getSecretWithLS |
Credentials | Sostituire con getSecret(vaultUrl, secretName) |
TokenLibrary |
Token/autenticazione | Rimuovere, usare direttamente la configurazione OAuth o Notebookutils |
synapsesql |
Connettore SQL | Sostituire spark.read.synapsesql() con la lettura in formato Delta |
mssparkutils |
Spark Utils | Sostituire con notebookutils (la maggior parte delle API è identica) |
spark.catalog.listDatabases |
API Catalogo | Sostituire con spark.sql("SHOW DATABASES") |
spark.catalog.currentDatabase |
API Catalogo | Sostituire con spark.sql("SELECT CURRENT_DATABASE()") |
spark.catalog.getDatabase |
API Catalogo | Sostituire con spark.sql("DESCRIBE DATABASE ...") |
spark.catalog.listFunctions |
API Catalogo | Non supportato in Fabric - eliminare |
spark.catalog.registerFunction |
API Catalogo | Non supportato: usare spark.udf.register() invece |
spark.catalog.functionExists |
API Catalogo | Non supportato in Fabric - eliminare |
LinkedServiceBasedTokenProvider |
Provider di autenticazione | Sostituire con ClientCredsTokenProvider |
getPropertiesAsMap |
Servizi collegati | Rimuovere; configurare direttamente l'account di archiviazione |
spark.storage.synapse |
Servizi collegati | Rimuovi : non supportato in Fabric |
/user/trusted-service-user/ |
Percorsi dei file | Sostituire con il percorso di OneLake o percorso di scelta rapida |
cosmos.oltp |
Azure Cosmos DB, un servizio di database distribuito globale di Microsoft | Aggiornare per usare Key Vault per i segreti anziché per il servizio collegato |
kusto.spark.synapse |
Kusto/ADX | Sostituire l'autenticazione del servizio collegato con accessToken tramite getToken() |
Suggerimento
Eseguire queste ricerche nell'intero repository di notebook prima della migrazione. I notebook con zero corrispondenze sono sicuri da migrare così come sono. I notebook che contengono corrispondenze dovrebbero avere la priorità per il refactoring del codice usando le indicazioni dettagliate nelle sezioni seguenti.
Utilizzo del percorso del file
Aggiornare i notebook di Synapse che usano percorsi relativi o percorsi di archiviazione gestiti da Synapse per usare percorsi diretti abfss:// o percorsi OneLake in Fabric.
| Prima (Synapse) | Dopo (Fabric) |
|---|---|
"abfss://...@<synapse_storage>.dfs.core.windows.net/user/trusted-service-user/deltalake" |
"abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<lakehouse_id>/Tables/deltalake" |
spark.read.synapsesql("<pool>.<schema>.<table>") |
spark.read.format("delta").load("abfss://.../<lakehouse>/Tables/<table>") |
Suggerimento
Sostituire tutti i percorsi di archiviazione gestiti da Synapse con i percorsi OneLake (abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<item_id>/...). Per i dati di ADLS Gen2, creare collegamenti a OneLake e fare riferimento ai percorsi di scelta rapida.
Catalogo API Spark
Fabric non supporta alcuni metodi spark.catalog. Sostituirli con gli equivalenti di Spark SQL.
| Prima (Synapse) | Dopo (Fabric) |
|---|---|
spark.catalog.listDatabases() |
spark.sql("SHOW DATABASES").show() |
spark.catalog.currentDatabase() |
spark.sql("SELECT CURRENT_DATABASE()").first()["current_database()"] |
spark.catalog.getDatabase(db_name) |
spark.sql(f"DESCRIBE DATABASE {db_name}").show() |
spark.catalog.listFunctions() |
Non supportato nel Fabric. Rimuovere o ignorare. |
spark.catalog.registerFunction(name, fn) |
Non supportato in Fabric: usare invece spark.udf.register() |
spark.catalog.functionExists(name) |
Non supportato nel Fabric. Rimuovere o ignorare. |
Note
spark.catalog metodi di tabella, ad esempio createTable(), tableExists() e listTables() funzionano normalmente in Fabric. Solo i metodi di catalogo a livello di database e a livello di funzione richiedono il refactoring.
MSSparkUtils e NotebookUtils
Sostituire le chiamate mssparkutils con gli equivalenti Fabric notebookutils. Le modifiche più comuni relative alle credenziali sono:
| Prima (Synapse) | Dopo (Fabric) |
|---|---|
mssparkutils.credentials.getSecretWithLS("sampleLS", secretKey) |
notebookutils.credentials.getSecret("https://<vault>.vault.azure.net/", secretKey) |
TokenLibrary.getSecret("foo", "bar") |
notebookutils.credentials.getSecret("https://foo.vault.azure.net/", "bar") |
In Fabric il recupero segreto basato su servizi collegati (getSecretWithLS) non è supportato. Fare invece riferimento direttamente all'URL di Key Vault usando notebookutils.credentials.getSecret(vaultUrl, secretName). Lo stesso modello si applica alle TokenLibrary.getSecret() chiamate.
Note
La maggior parte dei metodi mssparkutils.fs (ad esempio, ls, cp, mv, rm, mkdirs, head) funziona in modo identico a notebookutils.fs in Fabric. Le modifiche principali riguardano i metodi delle credenziali, i metodi dei segreti e i riferimenti del percorso notebook.run().
Connettore di Esplora dati di Azure (Kusto)
I notebook di Synapse che si connettono a Esplora dati di Azure (Kusto) tramite servizi collegati devono essere ristrutturati per usare l'autenticazione diretta dell'endpoint.
| Prima (Synapse) | Dopo (Fabric) |
|---|---|
.option("spark.synapse.linkedService", "AzureDataExplorer1") |
Rimuovere le informazioni di riferimento sul servizio collegato |
| Leggere con il set di opzioni del servizio collegato | .option("accessToken", notebookutils.credentials.getToken("https://<cluster>.kusto.windows.net")) |
Sostituire l'opzione del servizio collegato con un'opzione accessToken . Usare notebookutils.credentials.getToken() per ottenere un token per l'endpoint del cluster Kusto. Le altre opzioni di query (kustoDatabase, kustoQuery) rimangono invariate.
Connettore Cosmos DB
Aggiorna le connessioni Azure Cosmos DB in Synapse che utilizzano servizi collegati o getSecretWithLS.
| Prima (Synapse) | Dopo (Fabric) |
|---|---|
.option("spark.synapse.linkedService", "CosmosDbLS") |
Rimuovere le informazioni di riferimento sul servizio collegato |
mssparkutils.credentials.getSecretWithLS("cosmosKeyLS", "cosmosKey") |
notebookutils.credentials.getSecret("https://<vault>.vault.azure.net/", "cosmosKey") |
Sostituisci il riferimento al servizio collegato con la configurazione diretta dell'endpoint di Azure Cosmos DB. Memorizza la chiave dell'account Azure Cosmos DB in Azure Key Vault e recuperala usando notebookutils.credentials.getSecret(vaultUrl, secretName) invece di getSecretWithLS().
Riferimenti al servizio collegato
Sostituire tutti i riferimenti al servizio collegato Synapse in Fabric.
| Prima (Synapse) | Dopo (Fabric) |
|---|---|
spark.conf.set("spark.storage.synapse.linkedServiceName", ls_name) |
Rimuovi : non supportato in Fabric |
spark.conf.set("fs.azure.account.oauth.provider.type", "com.microsoft.azure.synapse.tokenlibrary.LinkedServiceBasedTokenProvider") |
spark.conf.set("fs.azure.account.oauth.provider.type", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider") |
TokenLibrary.getPropertiesAsMap(linked_service_cfg) |
Rimuovi — usare stringa di connessione diretta o configurazione principale del servizio |
In Fabric non sono presenti servizi collegati. Sostituire il provider di token Synapse con credenziali client OAuth standard (principale del servizio). Configurare fs.azure.account.auth.type, oauth.provider.typeclient.id, client.secret, e client.endpoint direttamente usando spark.conf.set().
Libreria di token
Il TokenLibrary di Synapse per ottenere i token e leggere le proprietà del servizio connesso non è disponibile in Fabric. Sostituirlo con modelli equivalenti.
| Prima (Synapse) | Dopo (Fabric) |
|---|---|
TokenLibrary.getPropertiesAsMap(serviceConnection) |
Rimuovi — configurare direttamente l'account di archiviazione |
val my_account = conexion("Endpoint").toString.substring(8) |
val my_account = "<storage_account_name>" // Hardcode or retrieve via notebookutils |
mssparkutils.fs.head(internalPath, Int.MaxValue) |
notebookutils.fs.head(internalPath, Int.MaxValue) |
Per l'accesso ad ADLS Gen2 basato su OAuth, configurare le credenziali del principal del servizio direttamente usando spark.conf.set() con le chiavi specifiche dell'account di archiviazione (ad esempio fs.azure.account.auth.type.<account>.dfs.core.windows.net) anziché basarsi sui provider di token di servizio collegati.
Importante
Esaminare tutti i notebook per i riferimenti ai servizi collegati prima del passaggio. Tutte le chiamate rimanenti spark.synapse.linkedService, TokenLibrary o getSecretWithLS hanno esito negativo in fase di esecuzione in Fabric.
Migrazione della definizione del lavoro Spark
Le definizioni dei processi Spark (SJD) sono configurazioni di processi batch che fanno riferimento a un file eseguibile principale (.py, .jaro .R), librerie di riferimento facoltative, argomenti della riga di comando e un contesto lakehouse. L'Assistente di Migrazione Spark gestisce automaticamente la migrazione SJD, ma richiedono attenzione le importanti differenze tra Synapse e Fabric SJD.
Differenze principali tra Synapse e SJDs Fabric
Contesto lakehouse obbligatorio. In Fabric, ogni SJD deve avere almeno una lakehouse associata. Questo lakehouse funge da file system predefinito per il runtime di Spark. Qualsiasi codice che usa percorsi relativi legge e scrive dal lakehouse predefinito. In Synapse, gli SJD utilizzano l'archiviazione predefinita dell'area di lavoro (ADLS Gen2) come file system predefinito.
Lingue supportate. Fabric supporta PySpark (Python), Spark (Scala/Java) e SparkR. .NET per Spark (C#/F#) non è supportato in Fabric. È necessario riscrivere questi carichi di lavoro in Python o Scala prima della migrazione.
Criteri di ripetizione dei tentativi. Fabric SJDs supportano politiche di ritrasmissione predefinite, come il numero massimo di tentativi e l'intervallo di ritentativi. Questa funzionalità è utile per i processi Spark Structured Streaming che devono essere eseguiti a tempo indeterminato.
Collegamento di ambiente. In Synapse, i file SJD vengono associati a un pool di Spark. In Fabric, gli SJD si associano a un elemento ambientale, che contiene la configurazione del pool, le librerie e le proprietà di Spark. L'Migration Assistant mappa automaticamente i riferimenti del pool Synapse agli elementi ambientali in Fabric.
Pianificazione. Le Fabric SJDs dispongono di una pianificazione integrata (Settings>Schedule) senza richiedere una pipeline separata. In Synapse, la pianificazione SJD richiede una pipeline con un'attività Spark Job. Se si dispone di pipeline Synapse che attivano solo unità SJD, è consigliabile utilizzare la pianificazione SJD integrata di Fabric invece di eseguire la migrazione della pipeline.
Importazione/esportazione. Synapse supporta l'importazione e l'esportazione JSON basate sull'interfaccia utente per IJD. Fabric non supporta l'importazione o l'esportazione dell'interfaccia utente. Usare lo Spark Migration Assistant o l'API REST Fabric per creare o aggiornare SJD programmaticamente.
Eseguire il refactoring del codice SJD
Gli stessi modelli di refactoring del codice in questo articolo si applicano ai file principali di SJD. Le modifiche rientrano in due categorie.
Modifiche al codice sorgente (all'interno del .pyfile principale , .jaro .R ):
- Sostituire
mssparkutilsconnotebookutilsper le operazioni su credenziali e file system. - Aggiornare i percorsi di file codificati staticamente nel codice in percorsi OneLake
abfss://o percorsi di collegamento, se necessario. Le unità SSD che usano solo percorsi relativi rispetto alla lakehouse predefinita potrebbero non richiedere modifiche. - Sostituire i riferimenti ai servizi collegati nel codice con segreti Key Vault o connessioni Fabric.
Note
Le connessioni DMTS non sono ancora supportate nelle definizioni dei processi Spark Fabric (supportate solo nei notebook). Se il codice SJD usa DMTS, effettuare il refactoring per usare l'autenticazione diretta degli endpoint.
modifiche alla configurazione di SJD (nelle impostazioni dell'elemento SJD Fabric):
- Verificare che i percorsi di ADLS Gen2 a cui fanno riferimento i file di definizione principali siano ancora accessibili dall'area di lavoro Fabric. Se i file sono stati archiviati nell'archiviazione interna dell'area di lavoro di Synapse, caricarli nuovamente nel Fabric SJD o spostarli in un percorso ad ADLS Gen2 accessibile.
- Verificare che tutti i file di riferimento (
.py,.R,.jar) siano accessibili dopo la migrazione. Caricare nuovamente tutti i file archiviati nell'archiviazione interna dell'area di lavoro di Synapse. - Se gli argomenti della riga di comando contengono percorsi specifici di Synapse o stringhe di connessione, li aggiorna ai rispettivi equivalenti di Fabric.
Eseguire la migrazione di pool, ambienti e librerie
Dopo aver eseguito la migrazione dei notebook e delle definizioni dei processi di lavoro Spark, è necessario decidere la strategia dei pool e degli ambienti. Questa sezione illustra quando è possibile usare Fabric pool starter (invece di eseguire la migrazione), quando creare ambienti personalizzati e come identificare e risolvere i gap di compatibilità della libreria.
Migrazione del pool di Spark
Pool di Avvio di Fabric
I pool di avvio di Fabric offrendo miglioramenti significativi rispetto ai pool di Synapse Spark, che richiedono avvii a freddo dei cluster che durano minuti. I pool di avvio sono pronti per l'uso dalla piattaforma e non richiedono alcuna configurazione.
Suggerimento
Se il pool di Spark synapse non ha configurazioni personalizzate, nessuna libreria personalizzata e nessun requisito specifico per le dimensioni dei nodi oltre Medium, non eseguire la migrazione del pool. Invece, lascia che i tuoi notebook e le definizioni di job Spark utilizzino le impostazioni predefinite del 'Starter Pool' dell'area di lavoro Fabric. Questo approccio offre i tempi di avvio più rapidi e un sovraccarico di gestione del pool pari a zero. Crea un Pool o un ambiente personalizzato solo quando hai un bisogno specifico.
Quando creare un pool o un ambiente personalizzato
Creare un Fabric pool personalizzato e/o un ambiente solo quando il carico di lavoro richiede:
- Dimensioni specifiche del nodo (Small, Large, XLarge, XXLarge) diverse dal valore predefinito Medium.
- Librerie personalizzate (pacchetti pip, pacchetti conda, JAR, ruote) che non sono nel runtime predefinito Fabric.
- Proprietà Spark personalizzate (ad esempio
spark.sql.shuffle.partitions, ,spark.executor.memory) oltre le impostazioni predefinite. - Endpoint privati gestiti per l'accesso a origini dati private (richiede pool personalizzati).
- Una versione specifica del runtime spark diversa dall'impostazione predefinita dell'area di lavoro.
Migrazione della configurazione e della libreria
Migra le configurazioni e le librerie di Spark agli elementi dell'ambiente in Fabric.
Per passaggi dettagliati sulla migrazione delle librerie agli elementi ambientali, vedi Migrate Spark Libraries da Azure Synapse a Fabric.
Esportare le configurazioni di Spark. In Synapse Studio passare a Gestisci>Spark Pools> selezionare pool >Configurations + Libraries> scaricare come
.yml/.conf/.json.Importa nell'ambiente. In Fabric, crea un oggetto ambientale. Passare a Spark Compute>Spark Properties> caricare il file esportato.
Eseguire la migrazione delle librerie. Per le librerie a livello di pool, carica pacchetti (ruote, JAR, tars) nella sezione libreria dell'ambiente. Per i pacchetti PyPI/Conda, aggiungili alla configurazione della biblioteca pubblica dell'ambiente.
Importante
Le impostazioni della libreria a livello di area di lavoro in Fabric sono deprecate. Migra tutte le librerie agli elementi ambientativi. La migrazione rimuove permanentemente le configurazioni esistenti a livello di workspace: scarica tutte le impostazioni prima di abilitare gli ambienti.
Compatibilità della libreria: Synapse e Fabric
Fabric Runtime 1.3 (Spark 3.5) include 223 librerie Python, 183 Java/Scala e 135 librerie R integrate. La maggior parte delle librerie Synapse è disponibile in Fabric, ma esistono lacune che possono causare errori di runtime se non risolti prima della migrazione.
Per identificare le librerie effettivamente usate dai notebook, eseguire questi controlli prima di esaminare le tabelle delle lacune.
-
Python notebooks: Cerca istruzioni
importefrom ... importin tutti i file \\.py/.ipynb. -
Notebook Java/Scala e SJDs: Cerca istruzioni
importe coordinate Maven; cerca pacchetti comecom.azure.cosmos.sparkocom.microsoft.kusto.spark. -
Export full dependency list: Eseguire
pip freezein un notebook Synapse, e comparare con il manifesto del runtime di Fabric 1.3. Solo le librerie che appaiono sia nel tuo outputpip freezesia nelle tabelle delle lacune sottostanti richiedono un'azione. - Librerie personalizzate a livello di pool e di spazio di lavoro: In Synapse Studio, vai su Gestisci>Apache Spark Pools> seleziona > Package per vedere librerie personalizzate che devono essere ricaricate su un elemento ambientale.
Python librerie mancanti da Fabric
| Categoria | Biblioteche | Action |
|---|---|---|
| CUDA/GPU (9 librerie) | libcublas, libcufft, libcufile, libcurand, libcusolver, libcusparse, libnpp, libnvfatbin, libnvjitlink, libnvjpeg | Non disponibile: Fabric non supporta i pool GPU. Effettuare il refactoring dei carichi di lavoro GPU per usare alternative basate sulla CPU o continuare a usare Synapse. |
| Client HTTP/API | httpx, httpcore, h11, google-auth, jmespath | Installa tramite ambiente: pip install httpx google-auth jmespath |
| ML/Interpretability | interpretare, nucleo-di-interpretazione | Installa tramite ambiente: pip install interpret |
| Serializzazione dei dati | Marshmallow, JsonPickle, Frozen Dict, Fixedint | Installa tramite ambiente se necessario: pip install marshmallow jsonpickle |
| Registrazione/telemetria | fluent-logger, humanfriendly, library-metadata-elaboratore, impulse-python-handler | fluent-logger: installare se usato. Altri sono interni a Synapse, probabilmente non necessari. |
| Interni di Jupyter | jupyter-client, jupyter-core, jupyter-ui-poll, jupyterlab-widgets, ipython-pygments-lexers | Fabric gestisce internamente l'infrastruttura di Jupyter. Queste librerie in genere non sono necessarie nel codice utente. |
| Librerie di sistema/C | libgcc, libstdcxx, libgrpc, libabseil, libexpat, libnsl, libzlib | Librerie di sistema di basso livello. In genere non è stato importato direttamente. Installare solo se sono presenti estensioni C che dipendono da esse. |
| File/concorrenza | Blocco file, FSSSpec, Knack | Installa tramite ambiente se utilizzato: pip install filelock fsspec |
librerie Java/Scala mancanti da Fabric
| Raccolta | Versione di Synapse | Action |
|---|---|---|
| azure-cosmos-analytics-spark | 2.2.5 | Installa come JAR personalizzato nell'elemento ambiente se i tuoi lavori Spark usano il connettore di analisi di Cosmos DB. |
| junit-jupiter-params | 5.5.2 | Libreria solo per test. Non necessario nei notebook di produzione. |
| junit-platform-commons | 1.5.2 | Libreria solo per test. Non necessario nei notebook di produzione. |
Librerie R
Una sola differenza: Synapse include il pacchetto lightgbm R (v4.6.0) che non è in Fabric. Installa tramite ambiente se necessario. Fabric aggiunge FabricTelemetry (v1.0.2) che è interno a Fabric.
Differenze di versione rilevanti
68 Python librerie esistono in entrambe le piattaforme, ma con versioni diverse. La maggior parte delle differenze di versione è secondaria, ma 17 presenta salti di versione principali che potrebbero influire sul comportamento.
| Raccolta | Versione Fabric | Versione di Synapse | Impatto |
|---|---|---|---|
| libxgboost | 2.0.3 | 3.0.1 | L'API XGBoost cambia tra v2 e v3. Testare il codice di addestramento/predizione del modello. |
| beuta | 2.2.5 | 3.0.3 | Flask 3.x presenta modifiche di rilievo. Se si servono le API Flask dai notebook, eseguire un test approfondito. |
| lxml | 4.9.3 | 5.3.0 | Modifiche minime all'API. Testare i flussi di lavoro di analisi XML. |
| libprotobuf | 3.20.3 | 4.25.3 | Protobuf 4.x presenta modifiche di rilievo per le definizioni proto personalizzate. |
| markupsafe | 2.1.3 | 3.0.2 | MarkupSafe 3.x elimina Python supporto 3.7, ma l'API è compatibile. |
| libpq | 12.17 | 17.4 | Libreria client PostgreSQL. Passaggio della versione principale: testare le connessioni del database. |
| libgcc-ng / libstdcxx-ng | 11.2.0 | 15.2.0 | Runtime GCC Potrebbe influire sulla compatibilità delle estensioni C. |
Note
Synapse offre in genere versioni più recenti delle librerie a livello di sistema (GCC, protobuf, libpq), mentre Fabric offre versioni più recenti di librerie di dati/ML (più pacchetti Python complessivamente). Se ti serve una versione specifica, fissala nella configurazione dell'oggetto dell'ambiente.
Suggerimento
Esegui un rapido controllo di compatibilità: esporta la lista delle librerie del pool Synapse (),pip freeze confronta con il manifesto Fabric Runtime 1.3 e preinstalla eventuali librerie mancanti nell'elemento dell'ambiente prima di eseguire i notebook migrati. Per un confronto line-by-line di ogni libreria e versione predefinita tra i runtime di Fabric e Synapse Spark, vedere microsoft/synapse-spark-runtime GitHub repository.
Contenuti correlati
- Fase 1: strategia e pianificazione della migrazione
- Fase 3: Hive Metastore e migrazione dei dati
- Fase 4: Migrazione della sicurezza e della governance
- Eseguire la migrazione di notebook di Azure Synapse a Fabric
- Eseguire la migrazione delle definizioni dei processi Spark da Azure Synapse a Fabric
- Migrare pool Spark da Azure Synapse a Fabric