Fase 2: Spark-arbeidsbelastningsmigrering

Denne artikkelen er fase 2 av 4 i Azure Synapse Spark til Microsoft Fabric migreringsbeste praksis-serien.

Bruk denne artikkelen til å migrere dine Spark-arbeidsbelastninger fra Azure Synapse til Microsoft Fabric. Denne artikkelen omhandler kjøring av Migration Assistant, refaktorering av kodemønstre som ikke kan konverteres automatisk, og migrering av Spark-poolkonfigurasjoner, miljøer og biblioteker.

I denne artikkelen lærer du hvordan du:

  • Forstå migreringsarbeidsflyten for standard (ikke-Git) og Git-aktiverte Synapse-arbeidsområder.
  • Bruk Spark Migration Assistant for å migrere notatbøker, Spark-jobbdefinisjoner og pooler.
  • Refaktorere Synapse-spesifikke kodemønstre for Fabric-kompatibilitet.
  • Migrer Spark-poolinnstillinger, miljøer og biblioteker.
  • Identifiser og løs bibliotekskompatibilitetsgap mellom Synapse og Fabric.

Migrer med Migration Assistant

Spark Migration Assistant automatiserer migrering av notatbøker, Spark-jobbdefinisjoner, pooler og metadata fra lake-databaser fra Synapse til Fabric. Assistenten kopierer og transformerer elementene dine, men fullfører ikke migreringen—du må fortsatt refaktorere koden, avstemme konfigurasjonshull og validere resultatene.

For trinnvise instruksjoner for å kjøre assistenten, se Spark Synapse to Fabric Spark Migration Assistant (Forhåndsvisning).

Assistenten migrerer følgende elementer:

  • Spark pools migreres til Fabric Pools og tilsvarende miljøartefakter.
  • Notatbøker og tilhørende miljøer migreres.
  • Spark-jobbdefinisjoner migreres med tilhørende miljøer.
  • Lake-databaser mappes til Fabric-skjemaer; administrerte Delta-tabeller migreres via OneLake-katalogsnarveier.

Viktig!

Spark-konfigurasjoner, egendefinerte biblioteker og tilpassede executor-innstillinger blir ikke migrert av assistenten. Du må konfigurere disse manuelt i Fabric Environments. Synapse-arbeidsområder under en VNet kan ikke migreres med assistenten.

Standard (ikke-Git) arbeidsområdemigrering

For arbeidsområder hvor notatbøker og SJD-er lagres direkte i Synapse (ikke i et Git-repositorium):

  1. Kjør Spark-Migration Assistant fra ditt Fabric arbeidsområde (Migrate>Data engineering items). Velg kilde-Synapse-arbeidsområdet og migrer alle Spark-elementer.

  2. Valider avhengigheter: sørg for at samme Spark-versjon brukes. Hvis notatbøker refererer til andre notatbøker via mssparkutils.notebook.run(), verifiser at de også ble migrert. Migration Assistant bevarer mappestrukturen (Fabric støtter opptil 10 nivåer med nesting).

  3. Refaktorerkode: bytt ut mssparkutils med notebookutils, bytt ut lenkede tjenestereferanser med Fabric Connections, og oppdater filstier. Se avsnittet Refactor Spark-kode for detaljer.

Git-aktivert arbeidsområdemigrering

For arbeidsområder hvor notatbøker og SJD-er lagres i et Azure DevOps- eller GitHub-repositorium, merk at Synapse og Fabric bruker forskjellige Git-serialiseringsformater. Synapse lagrer notatbøker som JSON; Fabric bruker kildeformat .py/.scala eller .ipynb. Du kan ikke peke et Fabric-arbeidsområde direkte mot samme Synapse Git-gren.

  1. Migrer gjenstander. Bruk Spark Migration Assistant for å migrere notatbøker og SJD-er fra Synapse-arbeidsområdet til et Fabric-arbeidsområde. Dette konverterer elementer til Fabric-kompatibelt format.

  2. Refaktorer-kode. Bruk samme koderefaktorering som i standardscenariet — bytt ut mssparkutils, oppdater filstier, erstatt lenkede tjenester. Se avsnittet Refactor Spark-kode for detaljer.

  3. Koble Fabric workspace til Git. Koble Fabric-arbeidsområdet ditt til en ny gren eller mappe i repositoriet ditt (Workspace Settings>Source Control>Git Integration). Bruk en egen gren eller mappe fra Synapse-innholdet ditt for å unngå konflikter. Committer Fabric-arbeidsområdets innhold for å fylle den nye grenen.

  4. Sett opp distribusjonspipelines (valgfritt). Konfigurer Fabric distribusjonspipelines (Dev → Test → Prod) for pågående CI/CD. Fabric støtter autobinding for standard innsjøhus og tilknyttede miljøer når man deployerer på tvers av nivåer.

Tips

Behold Synapse Git-grenen din intakt som historisk referanse. Opprett en ny gren eller mappe for Fabric-innhold. Fabric lagrer notatbøker som kildefiler (.py for PySpark) i stedet for JSON, som gir renere Git-differ for kodegjennomgang.

Refaktor-Spark-kode

Etter å ha migrert notatbøkene og Spark-jobbdefinisjonene dine, må du fikse kodemønstre som Migration Assistant ikke kan konvertere automatisk. Denne delen veileder deg gjennom å erstatte Synapse-spesifikke API-er, oppdatere filstier og endre legitimasjonsmønstre for å fungere med Fabric.

Pre-refaktoreringsrevisjon

Før du adresserer individuelle refaktoreringsmønstre, kjør et kodebaseomfattende søk på tvers av alle notatbøker for å identifisere Synapse-spesifikk kode som trenger endringer.

Søkemønster Kategori Tiltak som kreves
spark.synapse.linkedService Koblede tjenester Fjern; erstatte med direkte endepunktautentisering eller Key Vault-hemmeligheter
getSecretWithLS Kvalifikasjonsbevis Erstatt med getSecret(vaultUrl, secretName)
TokenLibrary Token/Autentisasjon Fjern; bruk direct OAuth config eller notebookutils
synapsesql SQL Connector Erstatt spark.read.synapsesql() med Delta-formatlesninger
mssparkutils Spark Utils Erstatt med notebookutils (de fleste API-er identiske)
spark.catalog.listDatabases Katalog API Erstatt med spark.sql("SHOW DATABASES")
spark.catalog.currentDatabase Katalog API Erstatt med spark.sql("SELECT CURRENT_DATABASE()")
spark.catalog.getDatabase Katalog API Erstatt med spark.sql("DESCRIBE DATABASE ...")
spark.catalog.listFunctions Katalog API Ikke støttet i Fabric — fjern
spark.catalog.registerFunction Katalog API Ikke støttet — bruk spark.udf.register() i stedet
spark.catalog.functionExists Katalog API Ikke støttet i Fabric — fjern
LinkedServiceBasedTokenProvider Auth-leverandør Erstatt med ClientCredsTokenProvider
getPropertiesAsMap Koblede tjenester Fjern; Konfigurer lagringskonto direkte
spark.storage.synapse Koblede tjenester Fjern — ikke støttet i Fabric
/user/trusted-service-user/ Filstier Erstatt med OneLake-sti eller snarvei
cosmos.oltp Cosmos DB Oppdater til å bruke Key Vault for hemmeligheter i stedet for lenket tjeneste
kusto.spark.synapse Kusto/ADX Erstatt linket tjenesteautentisering med accessToken via getToken()

Tips

Kjør disse søkene gjennom hele notatbokarkivet ditt før migrering. Notatbøker uten treff er trygge å migrere as-is. Notatbøker med treff bør prioriteres for koderefaktorering ved å bruke den detaljerte veiledningen i følgende seksjoner.

Bruk av filsti

Oppdater Synapse-notatbøker som bruker relative stier eller Synapse-administrerte lagringsstier til å bruke direkte abfss:// stier eller OneLake-stier i Fabric.

Før (Synapse) Etter (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>")

Tips

Erstatt alle Synapse-administrerte lagringsstier med OneLake-stier (abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<item_id>/...). For ADLS Gen2-data, lag OneLake-snarveier og referer til snarveistiene i stedet.

Spark Catalog API

Fabric støtter ikke flere spark.catalog metoder. Bytt dem ut med Spark SQL-ekvivalenter.

Før (Synapse) Etter (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() Ikke støttet i Fabric — fjern eller hopp over
spark.catalog.registerFunction(name, fn) Ikke støttet i Fabric — bruk spark.udf.register() i stedet
spark.catalog.functionExists(name) Ikke støttet i Fabric — fjern eller hopp over

Note

spark.catalog tabellmetoder som createTable(), tableExists() og listTables() fungerer normalt i Fabric. Kun database- og funksjonsnivå-katalogmetoder krever refaktorering.

MSSparkUtils og NotebookUtils

Erstatt mssparkutils kall med Fabric notebookutils ekvivalenter. De vanligste endringene knyttet til kvalifikasjoner er:

Før (Synapse) Etter (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")

I Fabric støttes ikke linked service-basert hemmelig henting (getSecretWithLS). Referer i stedet direkte til Key Vault-URL-en ved å bruke notebookutils.credentials.getSecret(vaultUrl, secretName). Det samme mønsteret gjelder for TokenLibrary.getSecret() kall.

Note

De fleste mssparkutils.fs-metoder (for eksempel ls, cp, mv, rm, mkdirs, head) fungerer identisk som notebookutils.fs i Fabric. De viktigste endringene er legitimasjons- og hemmelige metoder, samt notebook.run() path-referanser.

Azure Data Explorer (Kusto) connector

Synapse-notatbøker som kobles til Azure Data Explorer (Kusto) via koblede tjenester må refaktoreres for å bruke direkte endepunktsautentisering.

Før (Synapse) Etter (Fabric)
.option("spark.synapse.linkedService", "AzureDataExplorer1") Fjern lenket tjenestereferanse
Les med koblingstjeneste-innstillingene .option("accessToken", notebookutils.credentials.getToken("https://<cluster>.kusto.windows.net"))

Bytt ut den tilknyttede tjenesten med et alternativ.accessToken Bruk notebookutils.credentials.getToken() for å hente en token for Kusto-klyngens endepunkt. Resten av spørringsalternativene (kustoDatabase, kustoQuery) forblir uendret.

Cosmos DB-kontakt

Oppdater Cosmos DB-tilkoblinger i Synapse som bruker koblede tjenester eller getSecretWithLS.

Før (Synapse) Etter (Fabric)
.option("spark.synapse.linkedService", "CosmosDbLS") Fjern lenket tjenestereferanse
mssparkutils.credentials.getSecretWithLS("cosmosKeyLS", "cosmosKey") notebookutils.credentials.getSecret("https://<vault>.vault.azure.net/", "cosmosKey")

Erstatt den lenkede tjenestereferansen med direkte Cosmos DB-endepunktkonfigurasjon. Lagre Cosmos DB-kontonøkkelen i Azure Key Vault og hent den ved å bruke notebookutils.credentials.getSecret(vaultUrl, secretName) i stedet for getSecretWithLS().

Lenkede tjenestereferanser

Bytt ut alle Synapse-lenkede tjenestereferanser i Fabric.

Før (Synapse) Etter (Fabric)
spark.conf.set("spark.storage.synapse.linkedServiceName", ls_name) Fjern — ikke støttet i 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) Fjern — bruk direkte tilkoblingsstreng eller service principal-konfigurasjon

I Fabric finnes det ingen tilknyttede tjenester. Bytt ut Synapse-tokenleverandøren med standard OAuth-klientlegitimasjoner (tjenesteprincipal). Konfigurer fs.azure.account.auth.type, oauth.provider.type, client.id, , client.secretog client.endpoint direkte ved å bruke spark.conf.set().

Tokenbibliotek

Synapses TokenLibrary for å hente tokens og lese linked service-egenskaper er ikke tilgjengelig i Fabric. Bytt det ut med tilsvarende mønstre.

Før (Synapse) Etter (Fabric)
TokenLibrary.getPropertiesAsMap(serviceConnection) Fjern — konfigurer lagringskonto direkte
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)

For OAuth-basert ADLS Gen2-tilgang, konfigurer tjenesteprincipal-legitimasjonen direkte ved å bruke spark.conf.set() med lagringskonto-spesifikke nøkler (for eksempel fs.azure.account.auth.type.<account>.dfs.core.windows.net) i stedet for å stole på leverandører av koblede tjenestetoken.

Viktig!

Gå gjennom alle notatbøker for referanser til knyttet tjeneste før overgang. Alle gjenværende spark.synapse.linkedService, TokenLibrary eller getSecretWithLS kall feiler under kjøretid i Fabric.

Migrasjon av spark-jobbdefinisjon

Spark-jobbdefinisjoner (SJD-er) er batch-jobbkonfigurasjoner som refererer til en hovedkjørbar fil (.py, .jar, eller .R), valgfrie referansebiblioteker, kommandolinjeargumenter og en lakehouse-kontekst. Selv om Spark Migration Assistant håndterer SJD-migrering automatisk, krever viktige forskjeller mellom Synapse- og Fabric-SJD-er oppmerksomhet.

Viktige forskjeller mellom Synapse og Fabric SJDs

  • Kontekst for Lakehouse kreves. I Fabric må hver SJD ha minst ett innsjøhus tilknyttet seg. Dette innsjøhuset fungerer som standard filsystem for Spark-runtime. All kode som bruker relative stier leses og skriver fra standard lakehouse. I Synapse bruker SJD-er arbeidsområdets standardlagring (ADLS Gen2) som standard filsystem.

  • Støttede språk. Fabric støtter PySpark (Python), Spark (Scala/Java) og SparkR. .NET for Spark (C#/F#) støttes ikke i Fabric. Du må skrive om disse arbeidslastene i Python eller Scala før migrering.

  • Retningslinjer for å prøve på nytt. Fabric SJD-er støtter innebygde retry-policyer, som maks retries og retry-intervall. Denne funksjonen er nyttig for Spark Structured Streaming-jobber som må kjøre på ubestemt tid.

  • Miljøbinding. I Synapse binder SJD-er seg til en gnistpool. I Fabric binder SJD-er seg til et miljø, som inneholder poolkonfigurasjon, biblioteker og Spark-egenskaper. Migration Assistant kartlegger automatisk Synapse pool-referanser til Fabric Environments.

  • Planlegging. Fabric SJD-er har innebygd planlegging (Settings>Schedule) uten å kreve en egen pipeline. I Synapse krever SJD-planlegging en pipeline med en Spark Job-aktivitet. Hvis du har Synapse-pipelines som kun utløser SJD-er, bør du vurdere å bruke Fabric sin innebygde SJD-planlegging i stedet for å migrere pipelinen.

  • Import/eksport. Synapse støtter UI-basert JSON-import og -eksport for SJD-er. Fabric støtter ikke UI-import eller -eksport. Bruk Spark Migration Assistant eller Fabric REST API for å opprette eller oppdatere SJD-er programmatisk.

Refaktorere SJD-kode

De samme koderefaktoreringsmønstrene i denne artikkelen gjelder for SJDs hovedfiler. Endringer faller inn i to kategorier.

Endringer i kildekoden (inne i .py, .jar, eller .R hovedfilen):

  • Erstatt mssparkutils med notebookutils for legitimasjon og filsystemoperasjoner.
  • Oppdater hardkodede filstier i koden til OneLake-stier abfss:// eller snarveistier, når det trengs. SJD-er som kun bruker relative stier mot standard lakehouse, trenger kanskje ikke endringer.
  • Erstatt lenkede tjenestereferanser i kode med Key Vault-hemmeligheter eller Fabric Connections.

Note

DMTS-tilkoblinger støttes ennå ikke i Fabric Spark-jobbdefinisjoner (støttes kun i notatbøker). Hvis SJD-koden din bruker DMTS, refaktorere til direkte endepunktautentisering.

SJD-konfigurasjonsendringer (i innstillingene for Fabric SJD-elementer):

  • Sjekk at ADLS Gen2-baner referert til i hoveddefinisjonsfiler fortsatt er tilgjengelige fra Fabric-arbeidsområdet. Hvis filer ble lagret i Synapse workspace-intern lagring, last dem opp på nytt til Fabric SJD eller flytt dem til en tilgjengelig ADLS Gen2-lokasjon.
  • Sjekk at alle referansefiler (.py, .R, .jar) er tilgjengelige etter migrering. Last opp alle filer som var lagret i Synapse arbeidsområde-intern lagring.
  • Hvis kommandolinjeargumenter inneholder Synapse-spesifikke stier eller tilkoblingsstrenger, oppdater dem til Fabric-ekvivalenter.

Migrer pooler, miljøer og biblioteker

Etter at notatbøkene og Spark-jobbdefinisjonene dine er migrert, må du bestemme deg for pool- og miljøstrategi. Denne delen forklarer når du kan bruke Fabric Starter Pools (i stedet for å migrere), når du bør lage tilpassede miljøer, og hvordan du identifiserer og løser bibliotekkompatibilitetsgap.

Gnistbassengmigrasjon

Fabric Starter Pools

Fabric Starter Pools gir oppstart av Spark-sesjoner på sekundnivå — en betydelig forbedring sammenlignet med Synapse Spark-pooler, som krever kaldstarter på flere minutter for å starte klynger. Startbassengene er klare til bruk fra plattformen og krever ingen konfigurasjon.

Tips

Hvis Synapse Spark-poolen din ikke har egendefinerte konfigurasjoner, ingen tilpassede biblioteker og ingen spesifikke nodestørrelseskrav utover Medium—ikke migrer poolen. La i stedet notatbøkene og Spark-jobbdefinisjonene bruke standardinnstillingene i Fabric-arbeidsområdet for Starter Pool. Denne tilnærmingen gir deg de raskeste oppstartstidene og null overhead for pool-administrasjon. Opprett kun en egendefinert pool eller miljø når du har et spesifikt behov.

Når skal man opprette en egendefinert pool eller miljø

Opprett en Fabric custom pool og/eller miljø kun når arbeidsmengden din krever:

  • En spesifikk nodestørrelse (Liten, Stor, XLarge, XXLarge) som er forskjellig fra standard Medium.
  • Egendefinerte biblioteker (pip-pakker, conda-pakker, JAR-er, hjul) som ikke er i Fabric-innebygd runtime.
  • Egendefinerte Spark-egenskaper (for eksempel spark.sql.shuffle.partitions, spark.executor.memory) utover standardinnstillingene.
  • Administrerte private endepunkter for tilgang til private datakilder (krever egendefinerte pooler).
  • En spesifikk Spark-runtime-versjon som er forskjellig fra arbeidsområdets standard.

Konfigurasjon og bibliotekmigrering

Migrer Spark-konfigurasjoner og biblioteker til Fabric Environments.

For detaljerte steg for å migrere biblioteker til Fabric Environments, se Migrate Spark Libraries from Azure Synapse to Fabric.

  1. Eksporter Spark-konfigurasjoner. I Synapse Studio, gå til Manage>Spark Pools> velg pool >Configurations + Libraries> last ned som .yml/.conf/.json.

  2. Importer til miljøet. I Fabric, lag et miljøartefakt. Gå til Spark Compute>Spark Properties>Last opp den eksporterte Sparkproperties.yml filen.

  3. Migrer biblioteker. For pool-nivå biblioteker, last opp pakker (hjul, JAR, tars) til Miljøets biblioteksseksjon. For PyPI/Conda-pakker, legg dem til i Miljøets offentlige bibliotekskonfigurasjon.

Viktig!

Workspace-nivå bibliotekinnstillinger i Fabric er foreldet. Migrer alle biblioteker til miljøartefakter. Migreringen fjerner permanent eksisterende konfigurasjoner på arbeidsområdenivå—last ned alle innstillinger før du aktiverer Environments.

Bibliotekkompatibilitet: Synapse vs. Fabric

Fabric Runtime 1.3 (Spark 3.5) leveres med 223 Python-, 183 Java/Scala- og 135 R-biblioteker innebygd. De fleste Synapse-biblioteker er tilgjengelige i Fabric, men det finnes hull som kan føre til kjøretidsfeil hvis de ikke adresseres før migrering.

For å identifisere hvilke biblioteker notatbøkene dine faktisk bruker, kjør disse sjekkene før du går gjennom gap-tabellene:

  • Python notebooks: Søk etter import og from ... import-setninger på tvers av alle .py / .ipynb-filer.
  • Java/Scala-notatbøker og SJDs: Søk etter import-setninger og Maven-koordinater; se etter pakker som com.azure.cosmos.spark eller com.microsoft.kusto.spark.
  • Eksporter full avhengighetsliste: Kjør pip freeze i en Synapse-notatbok, sammenlign med Fabric Runtime 1.3-manifestet. Kun biblioteker som vises både i utdataene dine pip freeze og i gap-tabellene nedenfor trenger handling.
  • Pool-nivå og arbeidsområde-nivå tilpassede biblioteker: I Synapse Studio, gå til Manage>Apache Spark Pools> velg pool >Packages for å se tilpassede biblioteker som må lastes opp på nytt til et Fabric-miljø.

Python-biblioteker mangler i Fabric

Kategori Biblioteker Handling
CUDA / GPU (9 biblioteker) libcublas, libcufft, libcufile, libcurand, libcusolver, libcusparse, libnpp, libnvfatbin, libnvjitlink, libnvjpeg Ikke tilgjengelig—Fabric støtter ikke GPU-pooler. Refaktorere GPU-arbeidsbelastninger for å bruke CPU-baserte alternativer eller beholde Synapse.
HTTP / API-klienter httpx, httpcore, h11, google-auth, jmespath Installer via miljø: pip install httpx google-auth jmespath
ML / Tolkbarhet tolk, tolk-kjerne Installer via miljø: pip install interpret
Dataserialisering marshmallow, jsonpickle, frozendict, fixedint Installer via Environment om nødvendig: pip install marshmallow jsonpickle
Logging / Telemetri flytende-logger, menneskevennlig, bibliotek-metadata-koker, impuls-python-handler Fluent-logger: installer hvis den brukes. Andre er Synapse-interne—sannsynligvis ikke nødvendige.
Jupyter-internals Jupyter-client, jupyter-core, jupyter-ui-poll, jupyterlab-widgets, ipython-pygments-lexers Fabric administrerer Jupyter-infrastrukturen internt. Disse bibliotekene er vanligvis ikke nødvendige i brukerkode.
System / C-biblioteker libgcc, libstdcxx, libgrpc, libabseil, libexpat, libnsl, libzlib Lavnivå systembiblioteker. Vanligvis ikke importert direkte. Installer kun hvis du har C-utvidelser som er avhengige av dem.
Fil / samtidighet fillås, fsspec, knack Installer via miljø hvis du bruker: pip install filelock fsspec

Java/Scala-biblioteker mangler i Fabric

Bibliotek Synapseversjon Handling
azure-cosmos-analytics-spark 2.2.5 Installer som en egendefinert JAR i Fabric Environment hvis Spark-jobbene dine bruker Cosmos DB analytics connector.
Junit-Jupiter-Params 5.5.2 Kun testbibliotek. Ikke nødvendig i produksjonsnotatbøker.
Junit-Plattform-Commons 1.5.2 Kun testbibliotek. Ikke nødvendig i produksjonsnotatbøker.

R-biblioteker

Bare én forskjell: Synapse inkluderer lightgbm R-pakken (v4.6.0) som ikke er i Fabric. Installer via Environment om nødvendig. Fabric legger til FabricTelemetry (v1.0.2) som er Fabric-internt.

Merkbare versjonsforskjeller

68 Python-biblioteker finnes på begge plattformene, men med forskjellige versjoner. De fleste er små versjonsforskjeller, men 17 har store versjonshopp som kan påvirke oppførselen.

Bibliotek Fabric versjon Synapseversjon Innvirkning
libxgboost 2.0.3 3.0.1 XGBoost API endres mellom v2 og v3. Testmodell trenings-/prediksjonskode.
Flask 2.2.5 3.0.3 Flask 3.x har endringer som bryter. Hvis du serverer Flask-API-er fra notatbøker, test grundig.
lxml 4.9.3 5.3.0 Mindre API-endringer. Test XML-parsing-arbeidsflyter.
libprotobuf 3.20.3 4.25.3 Protobuf 4.x har endringer for egendefinerte proto-definisjoner.
MarkupSafe 2.1.3 3.0.2 MarkupSafe 3.x dropper Python 3.7-støtten, men API-et er kompatibelt.
libpq 12.17 17.4 PostgreSQL klientbibliotek. Større versjonshopp — test databasetilkoblinger.
libgcc-ng / libstdcxx-ng 11.2.0 15.2.0 GCC-kjøretid. Det kan påvirke kompatibiliteten med C-utvidelser.

Note

Synapse leverer vanligvis nyere versjoner av systembiblioteker (GCC, protobuf, libpq), mens Fabric leverer nyere versjoner av data-/ML-biblioteker (flere Python-pakker totalt). Hvis du trenger en spesifikk versjon, fest den i din Fabric Environment-konfigurasjon.

Tips

Kjør en rask kompatibilitetssjekk: eksporter biblioteklisten til Synapse-poolen din (pip freeze), sammenlign med Fabric Runtime 1.3-manifestet, og forhåndsinstaller eventuelle manglende biblioteker i Fabric-miljøet før du kjører migrerte notatbøker. For en linje-for-linje sammenligning av hvert innebygd bibliotek og versjon mellom Fabric og Synapse Spark-kjøretider, se microsoft/synapse-spark-runtime GitHub repository.