Migrer fra Fabric Runtime 1.3 til Runtime 2.0

Fabric Runtime 2.0 er den nyeste generelt tilgængelige (GA) og standardruntime for Apache Spark-arbejdsbelastninger i Microsoft Fabric. Den opdaterer operativsystemet, Java, Scala, Python, R, Apache Spark og Delta Lake. Da flere af disse opdateringer krydser grænser for hovedversioner, skal du validere dine notebooks, Spark-jobdefinitioner, biblioteker og datapipelines, før du flytter produktionsarbejdsbelastninger fra Runtime 1.3.

Denne guide beskriver de ændringer, der kan påvirke en migration, og giver en trinvis proces til at flytte dine arbejdsbelastninger til Runtime 2.0.

Hvad ændrede sig i Runtime 2.0

Følgende tabel sammenligner de primære komponenter i Runtime 1.3 og Runtime 2.0.

Komponent Spilletid 1.3 Spilletid 2.0 Migrationsovervejelser
Udgivelsesfase Slut på støtten annonceret (EOSA) generel tilgængelighed Migrer produktionsarbejdsbelastninger til den understøttede GA-runtime.
Apache Spark 3.5.5 4.1.1 Gennemgå Spark 4.1 adfærdsændringer og fjernede API'er.
Delta-søen 3,2 4.2 Valider tabelfunktioner og protokolkompatibilitet på tværs af alle Fabric-arbejdsbelastninger, der bruger dine tabeller.
Java 11 21 Genopbyg og test Java-biblioteker og Java Native Interface (JNI)-afhængigheder.
Scala 2.12.17 2.13.16 Genkompiler Scala JAR-filer til Scala 2.13. Scala 2.12 og 2.13 artefakter er ikke binære kompatible.
Python 3.11 3.13 Bekræft, at hver Python-pakke leverer en Python 3.13-kompatibel version og et Linux-hjul.
R 4.4.1 4.5.2 Geninstaller og test brugerdefinerede R-pakker. SparkR er forældet i Spark 4.1.
Operativsystem Azure Linux 2.0 (Mariner 2.0) Azure Linux 3.0 (Mariner 3.0) Genopbyg native biblioteker og brugerdefinerede binære filer til Azure Linux 3.0.

Runtime 2.0 tilbyder også nye Apache Spark 4.1-funktioner, herunder VARIANT datatypen, SQL-brugerdefinerede funktioner, sessionsvariabler, pipe-syntaks, streng-kollation, Python Data Source API, Python brugerdefinerede tabelfunktioner, samlet PySpark-profilering og nye Structured Streaming tilstandsstyrings- og fejlsøgnings-API'er. For et overblik, se Runtime 2.0 i Fabric.

Gennemgå ændringer i kompatibilitet

Gennemgå følgende områder, før du ændrer et arbejdsområde eller miljø til Runtime 2.0.

Indbyggede og brugerdefinerede biblioteker

Runtime 2.0 fjerner flere forudinstallerede Python- og R-pakker, som var tilgængelige i Runtime 1.3. At reducere standardpakkesættet holder runtime-niveauet slankt og reducerer overfladearealet for potentielle sikkerhedshændelser. En pakke, der var tilgængelig uden konfiguration i Runtime 1.3, kan have behov for at blive tilføjet eksplicit til dit Runtime 2.0-miljø.

Brug Library Manager til kun at tilføje de pakker, som din arbejdsbyrde kræver, og gem og publicér derefter miljøet. Library Manager løser pakkens nødvendige afhængigheder, så tilføj ikke hver afhængighed i de følgende inventarer enkeltvis. Antag ikke, at et bibliotek er tilgængeligt, eller at dets version er uændret:

  • Sammenlign Runtime 1.3- og Runtime 2.0-pakkelagrene i Fabric runtime releases-arkivet.
  • Tilføj manglende PyPI, Conda, Maven, R eller brugerdefinerede biblioteker til et miljø og publicer det.
  • Pin-versioner til produktionsarbejdsbelastninger for at gøre afhængighedsopløsning gentagelig.
  • Bekræft at Python-pakker understøtter Python 3.13. Pakker med native udvidelser skal levere et kompatibelt Linux-hjul eller bygge succesfuldt på Azure Linux 3.0.
  • Erstat Scala 2.12-afhængigheder med Scala 2.13-artefakter. Artefaktnavne inkluderer ofte Scala-binære versioner, såsom _2.12 eller _2.13.
  • Genkompiler brugerdefinerede JAR-filer mod Java 21, Scala 2.13 og Spark 4.1. Test transitive afhængigheder for konflikter med runtime-leverede biblioteker.
  • Genopbyg brugerdefinerede native biblioteker til Azure Linux 3.0.

Fabric migrerer bibliotekspecifikationer, når du ændrer runtime-funktionen i et eksisterende miljø, men det kan ikke garantere, at disse biblioteker forbliver kompatible. Udgivelse fejler, når afhængighedsløsning finder en konflikt. For pakkeinstallationsmuligheder og publiceringstilstande, se Administrer biblioteker i Fabric-miljøer.

Pakker fjernet fra standardmiljøet

Følgende inventarer inkluderer brugervendte pakker og deres lavniveau- eller transitive afhængigheder. Søg i disse lister efter pakker, som din Runtime 1.3-arbejdsbelastning bruger. Hvis en pakke er opført, tilføj en Python 3.13- eller R 4.5-kompatibel version via Library Manager i dit Runtime 2.0-miljø.

Python-miljø: 348 Conda-pakker
Pakke Pakke Pakke Pakke
_libgcc_mutex _sysroot_linux-64_curr_repodata_hack abseil-cpp alabaster
aom appdirs archspec argon2-cffi
argon2-cffi-bindings arrow arrow-cpp asgiref
asn1crypto astropy async_generator async-lru
async-timeout autopep8 aws-c-auth aws-c-cal
aws-c-common aws-c-compression aws-c-event-stream aws-c-http
aws-c-io aws-c-mqtt aws-c-s3 aws-c-sdkutils
aws-checksums aws-crt-cpp aws-sdk-cpp azure-keyvault
azure-storage babel backports backports.shutil_get_terminal_size
bcrypt beautifulsoup4 binaryornot binutils_impl_linux-64
binutils_linux-64 bitarray bkcharts black
blas bleach blinker blosc
bokeh boltons boost-cpp boto
bottleneck brunsli c-ares c-blosc2
cached-property cfitsio chardet charls
cmake cmdstan conda-package-handling conda-package-streaming
configparser contextlib2 cookiecutter curl
cython cytoolz daal4py dal
dask dask-core dataclasses datasets
dav1d dill distributed distro
django docutils entrypoints expat
fastcache flake8 flit flit-core
fmt fonts-anaconda future gcc_impl_linux-64
gcc_linux-64 geographiclib geopy get_terminal_size
gevent gflags giflib glib
glob2 glog gmp gmpy2
gobject-introspection grpc-cpp gst-plugins-base gstreamer
gtk2 gxx_impl_linux-64 gxx_linux-64 hdf5
heapdict html5lib huggingface_hub imagecodecs
imageio imagesize inflection iniconfig
intel-openmp intervaltree ipython_genutils jaraco.classes
jeepney jpeg json5 jsonpatch
jsonpointer jupyter_console jupyter_events jupyter-lsp
jupyter_server jupyter_server_terminals jupyterlab jupyterlab_pygments
jupyterlab_server jxrlib kernel-headers_linux-64 keyring
lazy_loader lazy-object-proxy liac-arff libaec
libarchive libavif libclang libcurl
libev libevent libgcc-devel_linux-64 libgfortran-ng
liblief libllvm14 libmamba libmambapy
libnghttp2 libprotobuf libsolv libspatialindex
libssh2 libstdcxx-devel_linux-64 libthrift libtool
libwebp libzopfli lightning-utilities llvm-openmp
llvmlite locket lxml lz4
lz4-c lzo make markdown
mccabe menuinst minio mistune
mkl mkl_fft mkl_random mkl-service
mock more-itertools mpc mpfr
mpi mpich mpmath msgpack-python
msrest multipledispatch multiprocess mysql
nbclassic nbclient nbconvert nest-asyncio
networkx ninja ninja-base nose
notebook notebook-shim nspr nss
numba numexpr numpy-base numpydoc
oauthlib olefile openml orc
overrides pandocfilters paramiko partd
patch patchelf path path.py
pathlib2 pep8 pickleshare pkginfo
pluggy ply poppler poppler-data
prettytable prometheus_client py-cpuinfo py-lief
pybind11-abi pycodestyle pycosat pycurl
pydocstyle pyerfa pyflakes pynacl
pyopenssl pyqt pyqt5-sip pyrsistent
pytables pytest python-fastjsonschema python-json-logger
python-libarchive-c python-lmdb python-slugify python-xxhash
pytorch pytorch-lightning pytorch-mutex pywavelets
qdarkstyle qstylizer qt qt-main
qt-webengine qtawesome qtconsole qtpy
re2 reproc reproc-cpp requests-oauthlib
rfc3339-validator rfc3986-validator rhash ripgrep
rtree s2n safetensors scikit-build
scikit-image scikit-learn-intelex secretstorage send2trash
shap simplegeneric singledispatch sip
slicer snappy snowballstemmer sortedcollections
sortedcontainers soupsieve sphinx sphinxcontrib
sphinxcontrib-applehelp sphinxcontrib-devhelp sphinxcontrib-htmlhelp sphinxcontrib-jsmath
sphinxcontrib-qthelp sphinxcontrib-serializinghtml sphinxcontrib-websupport sqlite
sympy sysroot_linux-64 tbb tbb-devel
tbb4py tblib terminado testpath
text-unidecode textdistance tifffile tinycss2
tokenizers toml tomli-w toolz
torchdata torchmetrics transformers truststore
typed-ast ujson unicodecsv unidecode
utf8proc webencodings websocket-client wheel
whichcraft xlsxwriter xlwt xmltodict
xxhash xyzservices xz yaml-cpp
yapf zfp zict zlib
zope zope.event zope.interface zstandard
Python-miljø: 24 pip-pakker
Pakke Pakke Pakke Pakke
accelerate astor dash dash-core-components
dash-cytoscape dash-html-components dash-table docker
interpret interpret-core json-tricks nni
nvidia-ml-py pyperclip pythonwebhdfs responses
retrying salib schema seqeval
simplejson tensorboardx thop typeguard
R-miljø: 67 Conda-pakker
Pakke Pakke Pakke Pakke
_libgcc_mutex _sysroot_linux-64_curr_repodata_hack blosc cfitsio
expat fmt freetype freexl
geos geotiff giflib hdf4
hdf5 json-c kealib lcms2
libaec libarchive libgdal libgdal-core
libgdal-fits libgdal-grib libgdal-hdf4 libgdal-hdf5
libgdal-jp2openjpeg libgdal-kea libgdal-netcdf libgdal-pdf
libgdal-pg libgdal-postgisraster libgdal-tiledb libgdal-xls
libkml libnetcdf libnsl librttopo
libspatialite libsqlite libudunits2 libv8
libzip lzo minizip nspr
nss openjpeg poppler poppler-data
proj r-classint r-gsl r-jose
r-mgcv r-s2 r-sf r-units
r-wk spdlog sqlite tiledb
uriparser xerces-c xorg-kbproto xorg-renderproto
xorg-xextproto xorg-xproto xz

Note

Hvis udgående adgangsbeskyttelse eller et administreret virtuelt netværk forhindrer adgang til offentlige repositorier, skal du downloade kompatible wheel-filer eller hoste et pakke-spejl. For instruktioner, se Administrer biblioteker med begrænset netværksadgang i Fabric.

Ændringer i gnistkonfiguration

Runtime 2.0 tilføjer og fjerner Spark-indstillinger og ændrer nogle standardværdier. Fabric bruger også andre standardindstillinger end Apache Spark til nogle indstillinger.

Før du migrerer, bør du gennemgå de Spark-indstillinger, du har konfigureret for dine arbejdsområder, miljøer, notesbøger og Spark-jobdefinitioner. Fjern indstillinger, der ikke længere understøttes, og test arbejdsbelastninger, der er afhængige af ændrede standardindstillinger. Brug runtime-standardindstillingerne, medmindre dokumentationen beder dig om at ændre en indstilling.

Bemærkelsesværdige ændringer i standardværdien

Følgende tabel viser udvalgte baseline-ændringer. Ikke sat betyder, at baseline ikke eksplicit sætter en værdi; det betyder ikke, at funktionen er deaktiveret.

Variantkonfiguration Runtime 1.3-værdi Runtime 2.0-værdi Migrationsovervejelser
spark.checkpoint.compress false true Checkpoint-filer er komprimeret som standard. Valider checkpoint-interoperabilitet og lagringsadfærd.
spark.databricks.delta.optimizeWrite.enabled true Ikke angivet Ejendommen bliver ikke fjernet. Valider effektiv optimeret skriveadfærd med dine tabel-, session- og ressourceprofilindstillinger.
spark.databricks.delta.optimizeWrite.partitioned.enabled false true Valider skrivegennemstrømning og outputfilstørrelser for partitionerede Delta-tabeller.
spark.hadoop.parquet.block.size 1073741824 (1 GiB) 134217728 (128 MiB) Parketskrivere retter sig mod mindre blokke. Valider filstørrelser og nedstrøms læseydelse.
spark.microsoft.delta.optimize.fast.enabled false true OPTIMIZE kan springe arbejde over, medmindre kriterierne for filantal eller estimeret kompaktstørrelse er opfyldt. Valider vedligeholdelsesresultater.
spark.microsoft.delta.optimize.fileLevelTarget.enabled false true Filer, der tidligere nåede mindst halvdelen af deres kompaktionsmål, bliver ikke komprimeret igen. Valider fillayout efter OPTIMIZE.
spark.microsoft.delta.targetFileSize.adaptive.enabled false true Delta beregner målfilstørrelsen baseret på tabelstørrelsen. Valider resulterende filstørrelser og læseydelse.
spark.speculation.multiplier 1.5 3 En opgave skal køre tre gange langsommere end medianen, før Spark overvejer den til spekulativ udførelse.
spark.speculation.quantile 0.75 0.9 Spark venter på 90% af opgaver, før den overvejer spekulativ udførelse.
spark.sql.files.maxPartitionBytes 134217728 (128 MiB) 536870912 (512 MiB) Filscanninger kan pakke flere data ind i hver partition. Valider parallelisme og brug af executor-hukommelse.
spark.sql.maxSinglePartitionBytes Long.MaxValue 128m En enkelt partition er som standard begrænset til 128 MiB. Valider forespørgsler, der producerer store enkeltpartitioner.
spark.sql.orc.compression.codec snappy zstd Nye ORC-skrivninger bruger Zstandard-komprimering som standard. Valider kompatibilitet og ydeevne med nedstrøms læsere.
spark.sql.sources.v2.bucketing.enabled false true Spark muliggør som standard storage-partitionerede joins og anden Data Source V2 bucketing-adfærd. Valider forespørgselsplaner og resultater.
spark.sql.sources.v2.bucketing.pushPartValues.enabled false true Spark kan sende kompatible partitionsværdier til Data Source V2 bucketing. Valider forespørgselsplaner for bucketed tables.

Runtime 2.0 bruger ROCKSDB også i stedet for LEVELDB for spark.shuffle.service.db.backend og sætter spark.shuffle.service.removeShuffle til true. Spark bruger den eksterne shuffle-tjeneste til at slette unødvendige shuffle-blokke for afskilte eksekutører.

Delta parallel snapshot-indlæsning, parallel dataspringning og driver-side snapshot-indlæsning ændrer sig også fra false til true. Test forespørgselsforsinkelse og forbrug af driverressourcer, især for forespørgsler, der tilgår flere Delta-tabeller.

Sessionstart-overrides og native udførelse

Fabric-feature-udrulninger kan tilsidesætte baselineværdier, når en session starter.

Variantkonfiguration Runtime 2.0 baseline-værdi Runtime 2.0 session-startværdi i offentlige produktionsregioner Migrationsovervejelser
spark.gluten.sql.columnar.costBasedFallback.enabled false true Produktionsudrulningen, der blev registreret den 16. oktober 2026, muliggør omkostningsbaseret fallback til Spark. Gentjek forespørgselsplaner og ydeevne, inklusive arbejdsbelastninger testet før udrulningen.
spark.sql.parquet.native.writer.complexTypes.enabled false true Test-native Parquet-skrivninger og downstream-læsninger for arrays, kort og strukturer.

Når du bruger den native eksekveringsmotor, skal du inkludere følgende tjek i dine regressionstests:

  • Valider hukommelsesforbruget med standarden for kolonnebatchstørrelse, der stiger fra 4.096 til 10.240.
  • Sammenlign shuffle planer og ydeevne med den sort-baserede kolonne shuffle threshold, der falder fra 100.000 til 4.000 partitioner.
  • Sammenlign resultater med regulær udtryk og præstation. Native-engine Java regex-understøttelse ændres fra deaktiveret til aktiveret, og indstillingen, der falder tilbage til alle regex-udtryk til Spark, ændres fra true til .false

Apache Spark 4.1 defaults bevares forskelligt i Fabric

Fabric Runtime 2.0 tilsidesætter bevidst følgende Apache Spark 4.1-standardindstillinger. Antag ikke, at en upstream Spark 4.1-standard gælder uændret i Fabric.

Variantkonfiguration Apache Spark 4.1 standard Fabric Runtime 2.0-værdi
spark.eventLog.compress true false
spark.eventLog.rolling.enabled true false
spark.sql.ansi.enabled true false
spark.sql.catalog.spark_catalog builtin org.apache.spark.sql.delta.catalog.DeltaCatalog
spark.sql.hive.metastore.version 2.3.10 2.3.2

Spark SQL og DataFrame-adfærd

Spark 4.1 introducerer adfærdsændringer, der kan ændre forespørgselsresultater eller få tidligere accepterede forespørgsler til at fejle. Vær særlig opmærksom på ANSI SQL-adfærd, casts, dato- og tidsstempeloperationer, datatyper, JDBC-mappinger og forældede SQL-konfigurationer.

Kør regressionstests, der sammenligner:

  • Outputskemaer, herunder type, præcision, skala og nullbarhed.
  • Rækkeoptælling og samlede resultater.
  • Null, overflow, division-med-nul og ugyldig kast-adfærd.
  • Dato, tidsstempel, tidszone og intervalresultater.
  • JDBC-kilde- og sinktypemappinger.
  • Forespørgselsplaner og ydeevne for kritiske arbejdsbelastninger.

Brug ikke legacy-kompatibilitetsindstillinger som den permanente migrationsstrategi. Hvis du midlertidigt bruger en til at isolere en fejl, så opdater den berørte kode og fjern indstillingen, før du fuldfører migreringen. For det komplette sæt af adfærdsændringer, se Spark SQL-migreringsguiden.

Python og pandas API på Spark

Runtime 2.0 flytter fra Python 3.11 til Python 3.13 og inkluderer de PySpark-ændringer, der blev introduceret i Spark 4.1. Spark 4.1 hæver også minimumsunderstøttede versioner af pandas, NumPy og PyArrow og fjerner API'er, der tidligere var forældet i tidligere udgivelser.

Almindelige pandas API-opdateringer på Spark inkluderer:

  • Erstat DataFrame.iteritems og Series.iteritems med items.
  • Erstat DataFrame.append og Series.append med ps.concat.
  • Erstat fjernede inplace parametre på kategoriske operationer med tildelinger.
  • Gennemgå ændrede parameternavne og standardindstillinger, såsom inclusive og Series.str.replace(regex=...).
  • Valider resultatkolonnenavne, indeksnavne, dtyper og rækkefølge.

For den komplette liste, se PySpark-migrationsguiden.

Java- og Scala-applikationer

Scala 2.13 er ikke binærkompatibel med Scala 2.12. Genbrug af en Runtime 1.3 JAR i Runtime 2.0 kan forårsage klasseindlæsningsfejl, selv når kildekoden ikke er ændret. Byg et separat Runtime 2.0-artefakt, og opdater alle Scala cross-built-afhængigheder.

Spark 4.1 ændrer også sine interne servlet API-referencer fra javax til .jakarta Gennemgå brugerdefinerede lyttere, Spark-udvidelser og biblioteker, der interagerer med Sparks interne dele. For andre ændringer på motorniveau, se Spark Core-migreringsguiden.

Streaming-arbejdsbelastninger og stik

Den forældede EventHubConnector , der er inkluderet i Runtime 1.3, er ikke tilgængelig i Runtime 2.0. Brug Apache Spark Kafka-connectoren med det Kafka-kompatible endpoint til Azure Event Hubs. For opsætningsvejledning, se Use Apache Spark with Azure Event Hubs for Apache Kafka.

For relevante scenarier kan du også evaluere Fabric eventstream for at indlæse streamingdata og behandle dem i en notebook med Spark Structured Streaming. For mere information, se Query eventstream i Microsoft Fabric fra en bærbar computer med Spark Structured Streaming.

For hver struktureret streaming-arbejdsbyrde:

  • Test om Runtime 2.0-forespørgslen kan genstarte fra en kopi af det eksisterende checkpoint.
  • Valider tilstandsfulde operationer, event-time vandmærker, triggere, kilde- og sænkemuligheder samt outputskemaer.
  • Hold kildedataene og det oprindelige checkpoint tilgængelige, indtil valideringen er fuldført.
  • Hvis et checkpoint er inkompatibelt, planlæg en kontrolleret genstart med et nyt checkpoint. Tag højde for genafspillet eller sprunget input over, og gør sinken idempotent, før du genstarter.

Gennemgå guiden til struktureret streaming-migrering for ændringer i upstream-kompatibilitet.

Delta Lake-tabeller

Delta Lake opretholder bagudkompatibilitet for eksisterende tabeller, så Runtime 2.0 kan arbejde med tabeller oprettet af Runtime 1.3. Dog kan aktivering af en nyere tabelfunktion hæve tabellens læser- eller skriverprotokol og forhindre ældre motorer eller andre Fabric-oplevelser i at bruge tabellen.

Under den indledende runtime-migrering:

  • Opgrader ikke tabelprotokoller eller aktiver Delta Lake 4.2-funktioner.
  • Inspicer funktioner og protokolversioner af nyoprettede tabeller samt eksisterende tabeller. Runtime 2.0 sætter spark.databricks.delta.properties.defaults.enableDeletionVectors til true; verificér den resulterende tabelmetadata i stedet for at antage, at undgåelse af manuel funktionsaktivering bevarer kompatibiliteten.
  • Testlæsninger, skrivninger, sammenfletninger, skemaudvikling, vedligeholdelsesoperationer og samtidig adgang.
  • Identificer hver motor, der læser eller skriver hver tabel, inklusive SQL-analyse-endpointet, Power BI, pipelines, dataflows, eventstreams og eksterne engines.
  • Aktivér en ny Delta-funktion først, når alle forbrugere støtter den.

Delta Lake 4.2-specifikke funktioner er eksperimentelle i Fabric og er begrænset til Spark-oplevelser. For understøttelsesmatrix- og standardprotokolversioner, se Delta Lake tabelformat-interoperabilitet.

Migrer dine arbejdsbelastninger

Brug en trindelt migration i stedet for straks at ændre runtimen for et produktionsarbejdsområde.

1. Inventariser dine Runtime 1.3 arbejdsbelastninger

Registrer følgende oplysninger:

  • Notesbøger, Spark-jobdefinitioner, pipelines, tidsplaner og afhængige elementer.
  • Arbejdsområde-niveau og element-niveau miljøtildelinger.
  • Spark-konfigurationer, inklusive eventuelle indstillinger for ældre kompatibilitet.
  • Offentlige, private og brugerdefinerede biblioteker samt deres løse versioner.
  • Brugerdefinerede JAR-filer, Python-hjul, R-pakker, native biblioteker og initialiseringslogik.
  • Datakilder, destinationer, hemmeligheder, forbindelser og netværkskrav.
  • Delta-tabeller og alle ikke-Spark-brugere af disse borde.
  • Streaming af checkpoints, skemaer, offsets og gendannelseskrav.
  • Forventede outputskemaer, rækketællinger, datakvalitetskontroller og performance-baselines.

Prioriter arbejdsbelastninger, der bruger brugerdefinerede biblioteker, native kode, Scala, streaming state eller avancerede Delta-funktioner.

2. Oprette et Runtime 2.0 testmiljø

Opret et separat miljøobjekt og vælg 2.0 (Spark 4.1, Delta 4.2) som dets runtime. Tilføj de nødvendige biblioteker, gem miljøet, og udgiv det. Vedhæft miljøet til kopier af repræsentative notesbøger og Spark-jobdefinitioner i et udviklings- eller testarbejdsområde.

Hvis dit produktionsarbejdsområde stadig bruger Runtime 1.3, så ændr ikke dets runtime, før testen er færdig. Hold den eksisterende konfiguration tilgængelig for tilbagerulning under valideringen.

For at validere kommende Runtime 2.0-opdateringer, før de når standardkanalen, skal du bruge early access-releasekanalen i dit testmiljø. For mere information, se Fabric runtime release channels.

3. Opdater biblioteker og kode

Anvend de ændringer, der er identificeret i kompatibilitetsgennemgangen:

  1. Erstat manglende indbyggede pakker med eksplicitte miljøafhængigheder.
  2. Opgrader eller udskift pakker, der ikke understøtter Python 3.13, Java 21, Scala 2.13 eller Azure Linux 3.0.
  3. Genopbyg brugerdefinerede JAR-filer og native binærfiler.
  4. Opdateringen fjernede PySpark og pandas API på Spark-kald.
  5. Erstat EventHubConnector med Kafka-stikket.
  6. Fjern Spark-indstillinger for konfigurationer, der ikke er tilgængelige i Runtime 2.0, og gennemgå eksplicitte overstyringer af konfigurationer, hvis standardindstillinger er ændret.
  7. Løs Spark SQL-adfærdsforskelle i koden i stedet for permanent at stole på legacy-indstillinger.
  8. Behold eksisterende Delta-tabelfunktioner og protokoller uændrede i denne fase.

4. Kør kompatibilitets- og regressionstests

Kør de samme repræsentative input på Runtime 1.3 og Runtime 2.0. Sammenligne:

  • Fuldførelsesstatus, logs, advarsler og gentagelser.
  • Skemaer og datatyper.
  • Rækkeniveau og samlede resultater.
  • Delta-tabellens historik og protokol.
  • Streaming-fremskridt, tilstand, latenstid og håndtering af duplikater.
  • Udførelsestid, ressourceforbrug og omkostninger.
  • Downstream resulterer i SQL-analyse-endpointet, Power BI, pipelines og andre forbrugere.

Inkluder fejl- og genopretningstests, ikke kun vellykkede kørsler. Genstarter af testsessioner, jobforsøg, genoprettelse af checkpoint og samtidig adgang til tabeller.

5. Udrul Runtime 2.0

Flyt arbejdsbelastninger i kontrollerede batches:

  1. Publicér det validerede Runtime 2.0-miljø.
  2. Vedhæft det til et lille sæt produktionsnotesbøger eller Spark-jobdefinitioner.
  3. Kør batchen og overvåge output og downstream forbrugere.
  4. Fortsæt med de resterende arbejdsopgaver efter observationsperioden.
  5. Sæt Runtime 2.0 som arbejdsområde som standard, først efter at item-level migreringen er fuldført.

Ændring af arbejdsområdets runtime påvirker nye Spark-sessioner. Eksisterende sessioner fortsætter med at bruge deres nuværende runtime, indtil de stopper.

6. Hold en rullevej

Behold Runtime 1.3-miljøet, artefakter, bibliotekspecifikationer og streaming-checkpoints, indtil Runtime 2.0-observationsperioden slutter. For at rulle tilbage, gentilknyt Runtime 1.3-miljøet eller genskaber den tidligere arbejdsområde-runtime og start en ny Spark-session.

Vigtigt!

En opgradering af Delta-protokollen er generelt ikke reversibel. Aktiver ikke tabelfunktioner, der hæver protokollen, før du har gennemført Runtime 2.0-validering og bekræftet kompatibilitet med alle tabelforbrugere.

Tjekliste til migrering

Før du gennemfører migrationen, skal du bekræfte, at:

  • [ ] Alle nødvendige Python- og R-pakker er eksplicit tilgængelige og kompatible med Python 3.13 eller R 4.5.
  • [ ] Brugerdefinerede JAR-filer sigter mod Java 21, Scala 2.13 og Spark 4.1.
  • [ ] Native afhængigheder virker på Azure Linux 3.0.
  • [ ] Arbejdsområde, miljø, notesbog og Spark-jobdefinitionsindstillinger bruger ikke fjernede Spark-konfigurationer.
  • [ ] Arbejdsbelastninger testes mod de ændrede Runtime 2.0 Spark-konfigurationsstandarder.
  • [ ] Spark SQL og PySpark regressionstests består.
  • [ ] Event Hubs-arbejdsbelastninger bruger Kafka-connectoren.
  • [ ] Structured Streaming-arbejdsbelastninger genstarter og gendannes som designet.
  • [ ] Delta-tabelprotokoller og funktioner forbliver kompatible med alle forbrugere.
  • [ ] Datakvalitet, ydeevne og omkostningsresultater opfylder dine acceptkriterier.
  • [ ] Produktionsudrulning, overvågning og tilbagerulning dokumenteres og testes.