Fase 2: Migratie van Spark-workload

Dit artikel is deel 2 van 4 in de reeks best practices voor migratie van Azure Synapse Spark naar Microsoft Fabric.

Gebruik dit artikel om uw Spark-workloads te migreren van Azure Synapse naar Microsoft Fabric. Dit artikel bevat informatie over het uitvoeren van de Migration Assistant, het herstructureren van codepatronen die niet automatisch kunnen worden geconverteerd en het migreren van Spark-poolconfiguraties, omgevingen en bibliotheken.

In dit artikel leert u het volgende:

  • Meer informatie over de migratiewerkstroom voor standaardwerkstromen (niet-Git) en Synapse-werkruimten met Git-functionaliteit.
  • Gebruik de Spark-Migration Assistant om notebooks, Spark-taakdefinities en -pools te migreren.
  • Synapse-specifieke codepatronen herstructureren voor Fabric compatibiliteit.
  • Instellingen, omgevingen en bibliotheken van Spark-pools migreren.
  • Identificeer en los bibliotheekcompatibiliteitsverschillen tussen Synapse en Fabric op.

Migreren met de Migration Assistant

De Spark-Migration Assistant automatiseert de migratie van notebooks, Spark-taakdefinities, pools en meerdatabasemetagegevens van Synapse naar Fabric. De assistent kopieert en transformeert uw items, maar voltooit de migratie niet. U moet nog steeds code herstructureren, configuratie-hiaten afstemmen en de resultaten valideren.

Zie voor stapsgewijze instructies over het uitvoeren van de assistent de Spark Synapse naar Fabric Spark Migration Assistant (preview).

De assistent migreert de volgende items:

  • Spark-pools worden gemigreerd naar Fabric Pools en de bijbehorende omgevingselementen.
  • Notebooks en de bijbehorende omgevingen worden gemigreerd.
  • Spark-taakdefinities worden gemigreerd met gekoppelde omgevingen.
  • Lake databases worden toegewezen aan Fabric schema's; beheerde Delta-tabellen worden gemigreerd via OneLake catalog shortcuts.

Belangrijk

Spark-configuraties, aangepaste bibliotheken en aangepaste uitvoerprogramma-instellingen worden niet gemigreerd door de assistent. U moet deze handmatig configureren in Fabric-omgevingen. Synapse-werkruimten onder een VNet kunnen niet worden gemigreerd met de assistent.

Migratie van standaardwerkgebieden zonder Git

Voor werkruimten waarin notebooks en SJD's rechtstreeks worden opgeslagen in Synapse (niet in een Git-opslagplaats):

  1. Voer de Spark-Migration Assistant uit vanuit uw Fabric werkruimte (Migrate>Data engineering-items). Selecteer de Synapse-bronwerkruimte en migreer alle Spark-items.

  2. Afhankelijkheden valideren: zorg ervoor dat dezelfde Spark-versie wordt gebruikt. Controleer of notebooks die via mssparkutils.notebook.run() naar andere notebooks verwijzen ook zijn gemigreerd. De Migration Assistant behoudt de mapstructuur (Fabric ondersteunt maximaal 10 nestniveaus).

  3. Code herstructureren: vervang mssparkutils door notebookutils, vervang gekoppelde serviceverwijzingen door Fabric Verbindingen en werk bestandspaden bij. Zie de sectie Spark-code herstructureren voor meer informatie.

Migratie van werkruimten met Git

Voor werkruimten waarin notebooks en SJD's worden opgeslagen in een Azure DevOps- of GitHub-opslagplaats, moet u er rekening mee houden dat Synapse en Fabric verschillende Git-serialisatie-indelingen gebruiken. Synapse slaat notebooks op als JSON; Fabric maakt gebruik van de bronindeling .py/.scala of .ipynb. U kunt geen Fabric-werkruimte rechtstreeks naar dezelfde Synapse Git-branch verwijzen.

  1. Het migreren van items. Gebruik de Spark-Migration Assistant om notebooks en SJD's te migreren van de Synapse-werkruimte naar een Fabric-werkruimte. Hiermee worden items geconverteerd naar Fabric-compatibele formaat.

  2. Code herstructureren. Pas dezelfde codeherstructurering toe als het standaardscenario: vervang mssparkutils, werk bestandspaden bij, vervang gekoppelde services. Zie de sectie Spark-code herstructureren voor meer informatie.

  3. Fabric werkruimte verbinden met Git. Verbind uw Fabric werkruimte met een nieuwe vertakking of map in uw opslagplaats (Werkruimte-instellingen>Bronbeheer>Git Integration). Gebruik een afzonderlijke vertakking of map van uw Synapse-inhoud om conflicten te voorkomen. Leg de inhoud van de Fabric-werkruimte vast om de nieuwe tak te vullen.

  4. Implementatiepijplijnen instellen (optioneel). Stel Fabric-implementatiepijplijnen (Dev → Test → Prod) in voor voortdurende CI/CD-processen. Fabric ondersteunt automatische binding voor standaard lakehouses en gekoppelde omgevingen bij het implementeren in verschillende fasen.

Aanbeveling

Houd uw Synapse Git-vertakking intact als een historische verwijzing. Maak een nieuwe vertakking of map voor de inhoud van Fabric. Fabric slaat notebooks op als bronbestanden (.py voor PySpark) in plaats van JSON, wat schonere Git-verschillen biedt voor codebeoordeling.

Spark-code herstructureren

Nadat u uw notebooks en Spark-taakdefinities hebt gemigreerd, moet u codepatronen herstellen die door de Migration Assistant niet automatisch kunnen worden geconverteerd. In deze sectie wordt u begeleid bij het vervangen van Synapse-specifieke API's, het bijwerken van bestandspaden en het wijzigen van referentiepatronen om te werken met Fabric.

Controle vooraf herstructureren

Voordat u afzonderlijke herstructureringspatronen aanpakt, voert u een zoekopdracht voor de hele code uit in alle notebooks om Synapse-specifieke code te identificeren die wijzigingen nodig heeft.

Zoekpatroon Categorie Actie vereist
spark.synapse.linkedService Gekoppelde services Verwijderen; vervangen door eindpuntverificatie of geheimen uit Key Vault.
getSecretWithLS Credentials Vervangen door getSecret(vaultUrl, secretName)
TokenLibrary Token/authenticatie/autorisatie Verwijderen; direct OAuth-configuratie of notebookutils gebruiken
synapsesql SQL-connector Vervang spark.read.synapsesql() door lezen in Delta-formaat
mssparkutils Spark-hulpprogramma's Vervangen door notebookutils (de meeste API's identiek)
spark.catalog.listDatabases Catalogus-API Vervangen door spark.sql("SHOW DATABASES")
spark.catalog.currentDatabase Catalogus-API Vervangen door spark.sql("SELECT CURRENT_DATABASE()")
spark.catalog.getDatabase Catalogus-API Vervangen door spark.sql("DESCRIBE DATABASE ...")
spark.catalog.listFunctions Catalogus-API Niet ondersteund in Fabric - verwijderen
spark.catalog.registerFunction Catalogus-API Niet ondersteund : gebruik spark.udf.register() in plaats daarvan
spark.catalog.functionExists Catalogus-API Niet ondersteund in Fabric - verwijderen
LinkedServiceBasedTokenProvider Verificatieprovider Vervangen door ClientCredsTokenProvider
getPropertiesAsMap Gekoppelde services Verwijderen; opslagaccount rechtstreeks configureren
spark.storage.synapse Gekoppelde services Verwijderen , niet ondersteund in Fabric
/user/trusted-service-user/ Bestandspaden Vervang door het OneLake-pad of het snelkoppelingspad
cosmos.oltp Cosmos DB Bijwerken om Key Vault te gebruiken voor geheimen in plaats van gekoppelde service
kusto.spark.synapse Kusto/ADX Vervang de authenticatie van de gekoppelde service door accessToken via getToken()

Aanbeveling

Voer deze zoekopdrachten uit in uw hele notebookopslagplaats vóór de migratie. Notebooks zonder overeenkomsten kunnen veilig als zodanig worden gemigreerd. Notebooks met overeenkomsten moeten prioriteit krijgen voor het herstructureren van code met behulp van de gedetailleerde richtlijnen in de volgende secties.

Bestandspadgebruik

Werk Synapse-notebooks bij die gebruikmaken van relatieve paden of door Synapse beheerde opslagpaden om directe abfss:// paden of OneLake-paden in Fabric te gebruiken.

Voor (Synapse) After (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>")

Aanbeveling

Vervang alle door Synapse beheerde opslagpaden door OneLake-paden (abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<item_id>/...). Voor ADLS Gen2-gegevens maakt u OneLake-snelkoppelingen en verwijst u in plaats daarvan naar de snelkoppelingspaden.

Spark Catalog-API

Fabric biedt geen ondersteuning voor verschillende methoden spark.catalog. Vervang deze door Spark SQL-equivalenten.

Voor (Synapse) After (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() Niet ondersteund in Fabric : verwijderen of overslaan
spark.catalog.registerFunction(name, fn) Niet ondersteund in Fabric: gebruik in plaats daarvan spark.udf.register()
spark.catalog.functionExists(name) Niet ondersteund in Fabric : verwijderen of overslaan

Note

spark.catalog tabelmethoden zoals createTable(), tableExists() en listTables() werken normaal in Fabric. Alleen catalogusmethoden op database- en functieniveau vereisen herstructurering.

MSSparkUtils en NotebookUtils

Vervang mssparkutils-aanroepen door de Fabric notebookutils-equivalenten. De meest voorkomende wijzigingen gerelateerd aan inloggegevens zijn:

Voor (Synapse) After (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 wordt het ophalen van geheime sleutels op basis van een gekoppelde service (getSecretWithLS) niet ondersteund. Verwijs in plaats daarvan rechtstreeks naar de KEY VAULT-URL met behulp van notebookutils.credentials.getSecret(vaultUrl, secretName). Hetzelfde patroon geldt voor TokenLibrary.getSecret() aanroepen.

Note

De meeste mssparkutils.fs methoden (bijvoorbeeld ls, cp, mv, rm, mkdirs, head) werken identiek als notebookutils.fs in Fabric. De primaire wijzigingen zijn referentie- en geheime methoden en notebook.run() padverwijzingen.

Azure Data Explorer (Kusto)-connector

Synapse-notebooks die verbinding maken met Azure Data Explorer (Kusto) via gekoppelde services, moeten worden geherstructureerd om directe eindpuntverificatie te gebruiken.

Voor (Synapse) After (Fabric)
.option("spark.synapse.linkedService", "AzureDataExplorer1") Verwijzing naar gekoppelde service verwijderen
Lezen met optieset voor gekoppelde services .option("accessToken", notebookutils.credentials.getToken("https://<cluster>.kusto.windows.net"))

Vervang de optie voor de gekoppelde service door een accessToken optie. Hiermee notebookutils.credentials.getToken() haalt u een token op voor uw Kusto-clustereindpunt. De rest van de queryopties (kustoDatabase, kustoQuery) blijft ongewijzigd.

Cosmos DB-connector

Cosmos DB-verbindingen bijwerken in Synapse die gebruikmaken van gekoppelde services of getSecretWithLS.

Voor (Synapse) After (Fabric)
.option("spark.synapse.linkedService", "CosmosDbLS") Verwijzing naar gekoppelde service verwijderen
mssparkutils.credentials.getSecretWithLS("cosmosKeyLS", "cosmosKey") notebookutils.credentials.getSecret("https://<vault>.vault.azure.net/", "cosmosKey")

Vervang de gekoppelde servicereferentie door de directe configuratie van het Cosmos DB-eindpunt. Sla de Cosmos DB-accountsleutel op in Azure Key Vault en haal deze op met behulp van notebookutils.credentials.getSecret(vaultUrl, secretName) in plaats van getSecretWithLS().

Gekoppelde serviceverwijzingen

Vervang alle gekoppelde Synapse-serviceverwijzingen in Fabric.

Voor (Synapse) After (Fabric)
spark.conf.set("spark.storage.synapse.linkedServiceName", ls_name) Verwijderen , niet ondersteund 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) Verwijderen: direct verbindingsreeks of configuratie van service-principal gebruiken

In Fabric zijn er geen gekoppelde services. Vervang de Synapse-tokenprovider door standaard OAuth-clientreferenties (service-principal). Configureer fs.azure.account.auth.type, oauth.provider.type, , client.id, client.secreten client.endpoint rechtstreeks met behulp van spark.conf.set().

Tokenbibliotheek

Synapse's TokenLibrary voor het ophalen van tokens en het lezen van gekoppelde service-eigenschappen is niet beschikbaar in Fabric. Vervang deze door gelijkwaardige patronen.

Voor (Synapse) After (Fabric)
TokenLibrary.getPropertiesAsMap(serviceConnection) Verwijderen : opslagaccount rechtstreeks configureren
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)

Voor op OAuth gebaseerde ADLS Gen2-toegang configureert u de referenties van de service-principal rechtstreeks met behulp van spark.conf.set() de opslagaccountspecifieke sleutels (bijvoorbeeld fs.azure.account.auth.type.<account>.dfs.core.windows.net) in plaats van te vertrouwen op gekoppelde servicetokenproviders.

Belangrijk

Bekijk vóór de overgang alle notebooks op verwijzingen naar gekoppelde services. Alle resterende spark.synapse.linkedService, TokenLibrary of getSecretWithLS-aanroepen mislukken tijdens runtime in Fabric.

Migratie van Spark-taakdefinitie

Spark-taakdefinities (SJD's) zijn batchtaakconfiguraties die verwijzen naar een primair uitvoerbaar bestand (.py, .jarof .R), optionele referentiebibliotheken, opdrachtregelargumenten en een lakehouse-context. Hoewel de Spark-Migration Assistant SJD-migratie automatisch afhandelt, vereisen belangrijke verschillen tussen Synapse en Fabric SJD's aandacht.

Belangrijke verschillen tussen Synapse en Fabric-SJDs

  • Lakehouse-context vereist. In Fabric moet aan elke SJD ten minste één lakehouse zijn gekoppeld. Dit lakehouse fungeert als het standaardbestandssysteem voor Spark Runtime. Alle code die gebruikmaakt van relatieve paden, leest en schrijft vanuit het standaard lakehouse. In Synapse gebruiken SJD's de standaardopslag van de werkruimte (ADLS Gen2) als het standaardbestandssysteem.

  • Ondersteunde talen. Fabric ondersteunt PySpark (Python), Spark (Scala/Java) en SparkR. .NET voor Spark (C#/F#) wordt niet ondersteund in Fabric. U moet deze workloads vóór de migratie herschrijven in Python of Scala.

  • Beleid voor opnieuw proberen. Fabric SJD's bieden ondersteuning voor ingebouwd beleid voor opnieuw proberen, zoals maximaal aantal nieuwe pogingen en interval voor opnieuw proberen. Deze functie is handig voor Spark Structured Streaming-taken die voor onbepaalde tijd moeten worden uitgevoerd.

  • Omgevingsbinding. In Synapse binden SJD's zich aan een Spark-pool. In Fabric binden SJD's zich aan een omgeving, die poolconfiguratie, bibliotheken en Spark-eigenschappen bevat. De Migration Assistant wijst automatisch Synapse-poolgegevens toe aan Fabric-omgevingen.

  • Plannen. Fabric SJDs hebben ingebouwde scheduling (Settings>Schedule) zonder dat er een aparte pijplijn nodig is. In Synapse vereist SJD-planning een pipeline met een Spark-taak. Als u Synapse-pipelines hebt die alleen SJD's activeren, kunt u overwegen om de ingebouwde SJD-planning van Fabric te gebruiken in plaats van de pipelines te migreren.

  • Importeren/exporteren. Synapse biedt ondersteuning voor JSON-import en export op basis van gebruikersinterfaces voor SJD's. Fabric biedt geen ondersteuning voor het importeren of exporteren van gebruikersinterfaces. Gebruik de Spark-Migration Assistant of de Fabric REST API om SJD's programmatisch te maken of bij te werken.

SJD-code herstructureren

Dezelfde patronen voor het herstructureren van code in dit artikel zijn van toepassing op SJD-hoofdbestanden. Wijzigingen worden onderverdeeld in twee categorieën.

Wijzigingen in broncode (in het hoofdbestand .py, .jar of .R):

  • Vervang mssparkutils door notebookutils voor referentie- en bestandssysteembewerkingen.
  • Werk hardgecodeerde bestandspaden in code bij naar OneLake-paden abfss:// of snelkoppelingspaden, indien nodig. Voor SJD's die alleen relatieve paden gebruiken voor het standaard lakehouse, zijn mogelijk geen wijzigingen vereist.
  • Vervang gekoppelde serviceverwijzingen in de code door Key Vault-secrets of Fabric-connections.

Note

DMTS-verbindingen worden nog niet ondersteund in Fabric Spark-taakdefinities (alleen ondersteund in notebooks). Als uw SJD-code DMTS gebruikt, refactoreren om directe eindpunt-authenticatie te gebruiken.

SJD-configuratiewijzigingen (in de Fabric SJD-iteminstellingen):

  • Controleer of ADLS Gen2-paden waarnaar wordt verwezen door hoofddefinitiebestanden nog steeds toegankelijk zijn vanuit de Fabric werkruimte. Als bestanden zijn opgeslagen in interne opslag in synapse-werkruimte, uploadt u ze opnieuw naar de Fabric SJD of verplaatst u ze naar een toegankelijke ADLS Gen2-locatie.
  • Controleer of alle referentiebestanden (.py, .R, .jar) toegankelijk zijn na de migratie. Upload alle bestanden die zijn opgeslagen in de interne opslag van de Synapse-werkruimte opnieuw.
  • Als opdrachtregelargumenten Synapse-specifieke paden of verbindingsreeksen bevatten, werkt u deze bij naar Fabric equivalenten.

Migreren van pools, omgevingen en bibliotheken

Nadat uw notebooks en Spark-taakdefinities zijn gemigreerd, moet u beslissen over de pool- en omgevingsstrategie. In deze sectie wordt uitgelegd wanneer u Fabric Starter-pools (in plaats van migreren) kunt gebruiken, wanneer u aangepaste omgevingen maakt en hoe u compatibiliteitsproblemen in bibliotheken kunt identificeren en oplossen.

Migratie van Spark-pool

Fabric Starter-pools

Fabric Starter-pools zorgen voor het opstarten van Spark-sessies op secondenniveau. Dit is een aanzienlijke verbetering ten opzichte van Synapse Spark-pools, waarvoor het starten van clusters enkele minuten lang duurt. Starter-pools zijn klaar voor gebruik vanaf het platform en vereisen geen configuratie.

Aanbeveling

Als uw Synapse Spark-pool geen aangepaste configuraties heeft, geen aangepaste bibliotheken en geen specifieke vereisten voor knooppuntgrootte buiten normaal, migreert u de pool niet. Laat in plaats daarvan uw notebooks en Spark-taakdefinities de standaardinstellingen van de Fabric-werkruimte gebruiken. Deze benadering biedt u de snelste opstarttijden en geen overhead voor poolbeheer. Maak alleen een aangepaste pool of omgeving wanneer u een specifieke behoefte hebt.

Wanneer maakt u een aangepaste pool of omgeving

Maak een aangepaste Fabric-pool en/of omgeving alleen wanneer het voor uw workload nodig is.

  • Een specifieke knooppuntgrootte (Klein, Groot, XLarge, XXLarge) die verschilt van de standaard Middel.
  • Aangepaste bibliotheken (pip-pakketten, conda-pakketten, JAR-bestanden, wielbestanden) die zich niet in de ingebouwde runtime van Fabric bevinden.
  • Aangepaste Spark-eigenschappen (bijvoorbeeld spark.sql.shuffle.partitions, spark.executor.memory) buiten de standaardwaarden.
  • Beheerde privé-eindpunten voor toegang tot privégegevensbronnen (hiervoor zijn aangepaste pools vereist).
  • Een specifieke Spark-runtimeversie verschilt van de standaardinstelling voor de werkruimte.

Configuratie- en bibliotheekmigratie

Spark-configuraties en -bibliotheken migreren naar Fabric omgevingen.

Zie Migrate Spark-bibliotheken van Azure Synapse naar Fabric voor gedetailleerde stappen voor het migreren van bibliotheken naar Fabric omgevingen.

  1. Spark-configuraties exporteren. Ga in Synapse Studio naar Manage>Spark Pools> selecteer pool >Configuraties + Bibliotheken> downloaden als .yml/.conf/.json.

  2. Importeren in omgeving. Maak in Fabric een omgevingsartefact. Ga naar Spark Compute>Spark-eigenschappen>upload het geëxporteerde Sparkproperties.yml bestand.

  3. Bibliotheken migreren. Voor bibliotheken op poolniveau, uploadt u pakketten (wheels, JAR's, TAR-bestanden) naar de bibliotheeksectie van de omgeving. Voor PyPI-/Conda-pakketten voegt u deze toe aan de configuratie van de openbare bibliotheek van de omgeving.

Belangrijk

Bibliotheekinstellingen op werkruimteniveau in Fabric zijn afgeschaft. Migreer alle bibliotheken naar omgevingsartefacten. Met de migratie worden bestaande configuraties op werkruimteniveau definitief verwijderd. Download alle instellingen voordat u omgevingen inschakelt.

Bibliotheekcompatibiliteit: Synapse versus Fabric

Fabric Runtime 1.3 (Spark 3.5) wordt geleverd met ingebouwde bibliotheken 223 Python, 183 Java/Scala en 135 R. De meeste Synapse-bibliotheken zijn beschikbaar in Fabric, maar er zijn hiaten die runtimefouten kunnen veroorzaken als deze niet vóór de migratie worden opgelost.

Als u wilt bepalen welke bibliotheken uw notebooks daadwerkelijk gebruiken, voert u deze controles uit voordat u de tussenruimtetabellen bekijkt:

  • Python notebooks: Zoeken naar import en from ... import instructies in alle .py / .ipynb-bestanden.
  • Java/Scala notebooks en SJDs: Zoek naar import-instructies en Maven-coördinaten; zoek naar pakketten zoals com.azure.cosmos.spark of com.microsoft.kusto.spark.
  • Volledige afhankelijkheidslijst exporteren: Voer pip freeze uit in een Synapse-notebook, vergeleken met het manifest Fabric Runtime 1.3. Alleen bibliotheken die worden weergegeven in zowel uw pip freeze uitvoer als de onderstaande tussenruimtetabellen, hebben actie nodig.
  • Pool- en werkruimteniveau aangepaste bibliotheken: Ga in Synapse Studio naar Beheer>ApaChe Spark-pools> selecteer pool >Packages om aangepaste bibliotheken te zien die opnieuw moeten worden geüpload naar een Fabric-omgeving.

Python bibliotheken ontbreken in Fabric

Categorie bibliotheken Actie
CUDA / GPU (9 bibliotheken) libcublas, libcufft, libcufile, libcurand, libcusolver, libcusparse, libnpp, libnvfatbin, libnvjitlink, libnvjpeg Niet beschikbaar: Fabric biedt geen ondersteuning voor GPU-pools. GPU-workloads herstructureren om alternatieven op basis van CPU te gebruiken of Synapse te behouden.
HTTP/API-clients httpx, httpcore, h11, google-auth, jmespath Installeren via systeemomgeving: pip install httpx google-auth jmespath
ML/interpreteerbaarheid interpreteren, interpreteren-kern Installeren via omgeving: pip install interpret
Gegevensserialisatie marshmallow, jsonpickle, frozendict, fixedint Installeer indien nodig via omgeving: pip install marshmallow jsonpickle
Logboekregistratie/telemetrie fluent-logger, humanfriendly, library-metadata-cooker, impulse-python-handler fluent-logger: installeren indien gebruikt. Anderen zijn intern in Synapse en waarschijnlijk niet nodig.
Jupyter internals jupyter-client, jupyter-core, jupyter-ui-poll, jupyterlab-widgets, ipython-pygments-lexers Fabric beheert de Jupyter-infrastructuur intern. Deze bibliotheken zijn meestal niet nodig in gebruikerscode.
Systeem-/C-bibliotheken libgcc, libstdcxx, libgrpc, libabseil, libexpat, libnsl, libzlib Bibliotheken voor systemen op laag niveau. Meestal niet rechtstreeks geïmporteerd. Installeer alleen als u C-extensies hebt die hiervan afhankelijk zijn.
Bestand/gelijktijdigheid filelock, fsspec, knack Installeren via Enviroment indien gebruikt: pip install filelock fsspec

Java/Scala-bibliotheken ontbreken in Fabric

Bibliotheek Synapse-versie Actie
azure-cosmos-analytics-spark 2.2.5 Installeer als een aangepast JAR-bestand in de Fabric-omgeving als uw Spark-taken gebruikmaken van de Cosmos DB-analyseconnector.
junit-jupiter-params 5.5.2 Bibliotheek uitsluitend voor testen. Niet nodig in productienotebooks.
junit-platform-commons 1.5.2 Alleen-voor-testgebruik-bibliotheek Niet nodig in productienotebooks.

R-bibliotheken

Slechts één verschil: Synapse bevat het lightgbm R-pakket (v4.6.0) dat zich niet in Fabric bevindt. Installeer indien nodig via de omgeving. Fabric voegt FabricTelemetry (v1.0.2) toe die Fabric-intern is.

Belangrijke versieverschillen

Er bestaan 68 Python bibliotheken op beide platforms, maar met verschillende versies. De meeste zijn kleine versieverschillen, maar 17 hebben grote versiesprongen die van invloed kunnen zijn op gedrag.

Bibliotheek Fabric-versie Synapse-versie Impact
libxgboost 2.0.3 3.0.1 XGBoost-API-wijzigingen tussen v2 en v3. Test modeltraining/voorspellingscode.
fles 2.2.5 3.0.3 Flask 3.x heeft belangrijke wijzigingen. Als u Flask-API's uit notebooks dient, test u deze grondig.
Lxml 4.9.3 5.3.0 Kleine API-wijzigingen. Xml-parseringswerkstromen testen.
Libprotobuf 3.20.3 4.25.3 Protobuf 4.x heeft belangrijke wijzigingen voor aangepaste protodefinities.
markupsafe 2.1.3 3.0.2 MarkupSafe 3.x laat Python 3.7-ondersteuning vallen, maar API is compatibel.
libpq 12.17 17.4 PostgreSQL-clientbibliotheek. Belangrijke versiesprong — databankverbindingen testen.
libgcc-ng / libstdcxx-ng 11.2.0 15.2.0 GCC runtime Dit kan van invloed zijn op de compatibiliteit van C-extensies.

Note

Synapse verzendt over het algemeen nieuwere versies van systeembibliotheken (GCC, protobuf, libpq) terwijl Fabric nieuwere versies van gegevens/ML-bibliotheken (meer Python pakketten over het algemeen). Als u een specifieke versie nodig hebt, maakt u deze vast in de configuratie van uw Fabric-omgeving.

Aanbeveling

Voer een snelle compatibiliteitscontrole uit: exporteer de bibliotheeklijst van uw Synapse-pool (pip freeze), vergelijk met het Fabric Runtime 1.3-manifest en installeer eventuele ontbrekende bibliotheken in uw Fabric-omgeving voordat u gemigreerde notebooks uitvoert. Zie de microsoft/synapse-spark-runtime GitHub repository voor een line-by-line-vergelijking van elke ingebouwde bibliotheek en versie tussen Fabric en Synapse Spark-runtime.