Migrera från Fabric Runtime 1.3 till Runtime 2.0

Fabric Runtime 2.0 är den senaste allmänt tillgängliga (GA) och standardruntime för Apache Spark-arbetsbelastningar i Microsoft Fabric. Den uppdaterar operativsystemet, Java, Scala, Python, R, Apache Spark och Delta Lake. Eftersom flera av dessa uppdateringar korsar gränser för huvudversioner, validera dina notebooks, Spark-jobbdefinitioner, bibliotek och datapipelines innan du flyttar produktionsarbetsbelastningar från Runtime 1.3.

Denna guide beskriver de förändringar som kan påverka en migrering och ger en stegvis process för att flytta dina arbetsbelastningar till Runtime 2.0.

Vad som förändrades i Runtime 2.0

Följande tabell jämför de primära komponenterna i Runtime 1.3 och Runtime 2.0.

Component Körtid 1.3 Runtime 2.0 Migrationsöverväganden
Utgivningsfas Slutet på supporten har meddelats (EOSA) GA Migrera produktionsarbetsbelastningar till den stödda GA-runtimen.
Apache Spark 3.5.5 4.1.1 Gå igenom beteendeförändringar i Spark 4.1 och borttagna API:er.
Delta Lake 3.2 4.2 Verifiera tabellfunktioner och protokollkompatibilitet i alla Fabric-arbetsbelastningar som använder dina tabeller.
Java 11 21 Bygg om och testa Java-bibliotek och Java Native Interface (JNI)-beroenden.
Scala 2.12.17 2.13.16 Kompylera om Scala JAR-filer för Scala 2.13. Artefakter i Scala 2.12 och 2.13 är inte binära kompatibla.
Python 3.11 3.13 Bekräfta att varje Python-paket har en Python 3.13-kompatibel version och en Linux wheel.
R 4.4.1 4.5.2 Installera om och testa anpassade R-paket. SparkR är utfasad i Spark 4.1.
Operativsystem Azure Linux 2.0 (Mariner 2.0) Azure Linux 3.0 (Mariner 3.0) Bygg om nativa bibliotek och anpassade binärfiler för Azure Linux 3.0.

Runtime 2.0 erbjuder också nya Apache Spark 4.1-funktioner, inklusive VARIANT-datatyp, SQL-användardefinierade funktioner, sessionsvariabler, pipesyntax, strängsortering, Python Data Source API, användardefinierade tabellfunktioner i Python, enhetlig PySpark-profilering och nya Structured Streaming-tillståndshanterings- och felsöknings-API:er. För en översikt, se Runtime 2.0 in Fabric.

Granska kompatibilitetsförändringar

Gå igenom följande områden innan du ändrar en arbetsyta eller miljö till Runtime 2.0.

Inbyggda och anpassade bibliotek

I Runtime 2.0 tas flera förinstallerade Python- och R-paket bort som fanns tillgängliga i Runtime 1.3. Att minska standardpaketuppsättningen håller körmiljön slimmad och minskar ytan för potentiella säkerhetsincidenter. Ett paket som fanns tillgängligt utan konfiguration i Runtime 1.3 kan behöva läggas till explicit i din Runtime 2.0-miljö.

Använd Library Manager för att bara lägga till de paket som din arbetsbelastning kräver, och spara sedan och publicera miljön. Library Manager löser paketets nödvändiga beroenden, så lägg inte till varje beroende i följande listor individuellt. Anta inte att ett bibliotek finns tillgängligt eller att dess version är oförändrad:

  • Jämför Runtime 1.3- och Runtime 2.0-paketlagren i Fabric runtime releases-repo.
  • Lägg till saknade PyPI, Conda, Maven, R eller egna bibliotek i en miljö och publicera den.
  • Lås versioner för produktionsarbetslaster så att beroendeupplösningen blir reproducerbar.
  • Bekräfta att Python-paket stöder Python 3.13. Paket med inbyggda tillägg måste tillhandahålla en kompatibel Linux-wheel eller bygga framgångsrikt på Azure Linux 3.0.
  • Ersätt Scala 2.12-beroenden med Scala 2.13-artefakter. Artefaktnamn inkluderar ofta Scalas binärversion, såsom _2.12 eller _2.13.
  • Kompylera om anpassade JAR-filer mot Java 21, Scala 2.13 och Spark 4.1. Testa de transitiva beroendena för konflikter med körtidslevererade bibliotek.
  • Bygg om anpassade nativa bibliotek för Azure Linux 3.0.

Fabric migrerar bibliotekspecifikationer när du ändrar en befintlig miljös runtime, men det kan inte garantera att dessa bibliotek förblir kompatibla. Publicering misslyckas när beroendelösning hittar en konflikt. För paketinstallationsalternativ och publiceringslägen, se Hantera bibliotek i Fabric-miljöer.

Paket som tagits bort från standardmiljön

Följande listor inkluderar användarorienterade paket och deras lågnivå- eller transitiva beroenden. Sök i dessa listor efter paket som din Runtime 1.3-workload använder. Om ett paket listas, lägg till en Python 3.13- eller R 4.5-kompatibel version via Library Manager i din Runtime 2.0-miljö.

Python-miljö: 348 Conda-paket
Package Package Package Package
_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-paket
Package Package Package Package
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-paket
Package Package Package Package
_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

Om skydd för utgående åtkomst eller ett hanterat virtuellt nätverk förhindrar åtkomst till publika arkiv, ladda ner kompatibla wheel-filer eller hosta en paketspegel. För instruktioner, se Hantera bibliotek med begränsad nätverksåtkomst i Fabric.

Ändringar i Spark-konfigurationen

Runtime 2.0 lägger till och tar bort Spark-inställningar samt ändrar vissa standardvärden. Fabric använder också andra standardinställningar än Apache Spark för vissa inställningar.

Innan du migrerar, granska de Spark-inställningar du konfigurerat för dina arbetsytor, miljöer, notesböcker och Spark-jobbdefinitioner. Ta bort inställningar som inte längre stöds och testa arbetsbelastningar som bygger på ändrade standardinställningar. Använd runtime-standardinställningarna om inte dokumentationen instruerar dig att ändra en inställning.

Viktiga ändringar av standardvärden

Följande tabell listar utvalda baslinjeförändringar. Inte satt betyder att baslinjen inte uttryckligen sätter ett värde; det betyder inte att funktionen är inaktiverad.

Configuration Runtime värde 1.3 Runtime 2.0-värde Migrationsöverväganden
spark.checkpoint.compress false true Checkpoint-filer är komprimerade som standard. Validera interoperabilitet för checkpoints och lagringsbeteende.
spark.databricks.delta.optimizeWrite.enabled true Inte inställt Egenskapen tas inte bort. Validera effektivt optimerat skrivbeteende med dina tabell-, session- och resursprofilinställningar.
spark.databricks.delta.optimizeWrite.partitioned.enabled false true Validera skrivgenomströmning och utdata filstorlekar för partitionerade Delta-tabeller.
spark.hadoop.parquet.block.size 1073741824 (1 GiB) 134217728 (128 MiB) Parquet-skrivare riktar in sig på mindre block. Validera filstorlekar och nedströms läsprestanda.
spark.microsoft.delta.optimize.fast.enabled false true OPTIMIZE kan hoppa över arbete om inte kriterierna för filantal eller uppskattad kompaktionsstorlek är uppfyllda. Verifiera underhållsresultaten.
spark.microsoft.delta.optimize.fileLevelTarget.enabled false true Filer som tidigare nådde minst hälften av deras målstorlek för kompaktering kompakteras inte igen. Validera fillayouten efter OPTIMIZE.
spark.microsoft.delta.targetFileSize.adaptive.enabled false true Delta beräknar målfilstorleken baserat på tabellstorleken. Validera resulterande filstorlekar och läsprestanda.
spark.speculation.multiplier 1.5 3 En uppgift måste gå tre gånger långsammare än medianen innan Spark överväger den för spekulativt utförande.
spark.speculation.quantile 0.75 0.9 Spark väntar på att 90 % av uppgifterna ska bli klara innan den överväger spekulativ körning.
spark.sql.files.maxPartitionBytes 134217728 (128 MiB) 536870912 (512 MiB) Filskanningar kan packa mer data i varje partition. Validera parallellitet och användning av executorminne.
spark.sql.maxSinglePartitionBytes Long.MaxValue 128m En enda partition är som standard begränsad till 128 MiB. Validera frågor som ger stora enskilda partitioner.
spark.sql.orc.compression.codec snappy zstd Nya ORC-skrivningar använder Zstandard-komprimering som standard. Kontrollera kompatibilitet och prestanda med efterföljande läsare.
spark.sql.sources.v2.bucketing.enabled false true Spark möjliggör lagringspartitionerade joins och annat Data Source V2-bucketbeteende som standard. Verifiera frågeplaner och resultat.
spark.sql.sources.v2.bucketing.pushPartValues.enabled false true Spark kan skicka kompatibla partitionsvärden för Data Source V2-bucketing. Validera frågeplaner för bucket-indelade tabeller.

Runtime 2.0 använder också ROCKSDB istället för LEVELDB för spark.shuffle.service.db.backend och sätter spark.shuffle.service.removeShuffle till true. Spark använder den externa shuffle-tjänsten för att ta bort onödiga shuffle-block för avallokerade exekutörer.

Delta parallell inläsning av snapshots, parallell dataöverhoppning och inläsning av snapshots på drivrutinssidan ändras också från false till true. Testa fördröjning för frågor och användning av drivrutinsresurser, särskilt för frågor som får tillgång till flera Delta-tabeller.

Åsidosättningar vid sessionsstart och intern körning

Fabric-funktionsutrullningar kan åsidosätta baslinjevärden när en session startar.

Configuration Runtime 2.0 baslinjevärde Runtime 2.0 session-startvärde i offentliga produktionsregioner Migrationsöverväganden
spark.gluten.sql.columnar.costBasedFallback.enabled false true Produktionslanseringen som registrerades den 16 oktober 2026 möjliggör kostnadsbaserad fallback till Spark. Kontrollera igen frågeplaner och prestanda, inklusive testade arbetsbelastningar innan den lanseringen.
spark.sql.parquet.native.writer.complexTypes.enabled false true Testa inbyggda Parquet-skrivningar och nedströmsläsningar för arrayer, mappningar och strukturer.

När du använder den inbyggda exekveringsmotorn, inkludera följande kontroller i dina regressionstester:

  • Validera minnesanvändningen med standardvärdet för kolumnär batchstorlek ökat från 4 096 till 10 240.
  • Jämför shuffle-planer och prestanda med den sorteringsbaserade kolumnära shuffle-tröskeln sänkt från 100 000 till 4 000 partitioner.
  • Jämför resultat med reguljära uttryck och prestanda. Stödet för Java-regex i Native Engine ändras från inaktiverat till aktiverat, och inställningen som gör att alla regex-uttryck faller tillbaka på Spark ändras från true till false.

Apache Spark 4.1 hanterar standardinställningar på ett annat sätt i Fabric

Fabric Runtime 2.0 åsidosätter medvetet följande Apache Spark 4.1-standardinställningar. Anta inte att en uppströms Spark 4.1-standard gäller oförändrad i Fabric.

Configuration Apache Spark 4.1 standard Fabric Runtime 2.0-värde
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 och DataFrame-beteende

Spark 4.1 introducerar beteendeförändringar som kan ändra frågeresultat eller orsaka att tidigare accepterade frågor misslyckas. Var särskilt uppmärksam på ANSI SQL-beteende, casts, datum- och tidsstämpeloperationer, datatyper, JDBC-mappningar och föråldrade SQL-konfigurationer.

Kör regressionstester som jämför:

  • Utdatascheman, inklusive typ, precision, skala och nullbar egenskap.
  • Radantal och aggregerade resultat.
  • Null, överskridning, division-med-noll, och beteende vid ogiltig typkonvertering.
  • Datum, tidsstämpel, tidszon och intervallresultat.
  • JDBC-källa och sink-typmappningar.
  • Frågeplaner och prestanda för kritiska arbetsbelastningar.

Använd inte gamla kompatibilitetsinställningar som permanent migreringsstrategi. Om du tillfälligt använder en för att isolera ett fel, uppdatera den drabbade koden och ta bort inställningen innan du slutför migreringen. För hela uppsättningen av beteendeförändringar, se Spark SQL-migreringsguiden.

Python och pandas API på Spark

Runtime 2.0 flyttar från Python 3.11 till Python 3.13 och inkluderar de PySpark-ändringar som introducerades i Spark 4.1. Spark 4.1 höjer också de lägsta versioner som stöds för pandas, NumPy och PyArrow och tar bort API:er som förklarats föråldrade i tidigare versioner.

Vanliga uppdateringar i pandas API on Spark omfattar:

  • Ersätt DataFrame.iteritems och Series.iteritems med items.
  • Ersätt DataFrame.append och Series.append med ps.concat.
  • Ersätt borttagna inplace parametrar i kategoriska operationer med tilldelningar.
  • Granska ändrade parameternamn och standardinställningar, såsom inclusive och Series.str.replace(regex=...).
  • Validera resultatkolumnnamn, indexnamn, dtyper och ordning.

För den fullständiga listan, se PySpark-migrationsguiden.

Java- och Scala-applikationer

Scala 2.13 är inte binärkompatibelt med Scala 2.12. Att återanvända en Runtime 1.3 JAR i Runtime 2.0 kan orsaka klassladdningsfel även när källkoden inte har ändrats. Bygg en separat Runtime 2.0-artefakt och uppdatera alla Scala-korsbyggda beroenden.

Spark 4.1 ändrar också sina interna servlet-API-referenser från javax till jakarta. Granska anpassade lyssnare, Spark-tillägg och bibliotek som interagerar med Sparks interna delar. För andra ändringar på motornivå, se Spark Core-migreringsguiden.

Strömmande arbetsbelastningar och anslutningar

Den föråldrade EventHubConnector som ingår i Runtime 1.3 finns inte tillgänglig i Runtime 2.0. Använd Apache Spark Kafka-kontakten med den Kafka-kompatibla endpointen för Azure Event Hubs. För installationsguider, se Use Apache Spark with Azure Event Hubs for Apache Kafka.

För tillämpliga scenarier kan du också utvärdera Fabric eventstream för att ta in strömmande data och bearbeta den i en anteckningsbok med Spark Structured Streaming. För mer information, se Query eventstream i Microsoft Fabric från en anteckningsbok med Spark Structured Streaming.

För varje strukturerad strömningsarbetsbelastning:

  • Testa om Runtime 2.0-frågan kan starta om från en kopia av den befintliga checkpointen.
  • Validera tillståndsbevarande operationer, watermarks för händelsetid, triggers, käll- och sink-alternativ samt utdatascheman.
  • Behåll källdatan och den ursprungliga kontrollpunkten tillgängliga tills valideringen är klar.
  • Om en kontrollpunkt är inkompatibel, planera en kontrollerad omstart med en ny kontrollpunkt. Ta hänsyn till omspelad eller hoppad inmatning, och gör sinken idempotent innan du startar om.

Gå igenom migreringsguiden för Structured Streaming för ändringar i kompatibilitet uppströms.

Delta Lake-tabeller

Delta Lake upprätthåller bakåtkompatibilitet för befintliga tabeller, så Runtime 2.0 kan arbeta med tabeller skapade av Runtime 1.3. Att aktivera en nyare tabellfunktion kan dock höja tabellens läsar- eller skrivarprotokoll och förhindra att äldre motorer eller andra Fabric-upplevelser använder tabellen.

Under den initiala runtime-migreringen:

  • Uppgradera inte tabellprotokoll eller aktivera Delta Lake 4.2-funktioner.
  • Inspektera funktioner och protokollversioner av nyskapade tabeller samt befintliga tabeller. Runtime 2.0 sätter spark.databricks.delta.properties.defaults.enableDeletionVectors till true; verifiera resulterande tabellmetadata istället för att anta att undvikandet av manuell funktionsaktivering bevarar kompatibiliteten.
  • Test av läsningar, skrivåtgärder, sammanfogningar, schemautveckling, underhållsoperationer och samtidig åtkomst.
  • Identifiera varje motor som läser eller skriver varje tabell, inklusive SQL-analysändpunkten, Power BI, pipelines, dataflöden, händelseströmmar och externa motorer.
  • Aktivera en ny Delta-funktion först efter att alla användare av funktionen stöder den.

Delta Lake 4.2-specifika funktioner är experimentella i Fabric och begränsade till Spark-upplevelser. Information om stödmatris och standardprotokollversioner finns i interoperabilitet för Delta Lake-tabellformat.

Migrera dina arbetsbelastningar

Använd en stegvis migrering istället för att ändra runtime för en produktionsarbetsplats direkt.

1. Inventera dina Runtime 1.3-arbetsbelastningar

Registrera följande information:

  • Anteckningsböcker, Spark-jobbdefinitioner, pipelines, scheman och beroende objekt.
  • Miljötilldelningar på arbetsytsnivå och objektnivå.
  • Spark-konfigurationer, inklusive eventuella inställningar för äldre kompatibilitet.
  • Publika, privata och anpassade bibliotek samt deras upplösta versioner.
  • Anpassade JAR-filer, Python wheels, R-paket, inbyggda bibliotek och initialiseringslogik.
  • Datakällor, destinationer, hemligheter, anslutningar och nätverkskrav.
  • Delta-tabeller och alla icke-Spark-konsumenter av dessa tabeller.
  • Strömmande checkpoints, scheman för data, offsets och återställningskrav.
  • Förväntade utdatascheman, radantal, datakvalitetskontroller och prestandabaslinjer.

Prioritera arbetsbelastningar som använder egna bibliotek, nativ kod, Scala, tillstånd för strömning eller avancerade Delta-funktioner.

2. Skapa en testmiljö för Runtime 2.0

Skapa ett separat miljöobjekt och välj 2.0 (Spark 4.1, Delta 4.2) som dess körtid. Lägg till de nödvändiga biblioteken, spara miljön och publicera den. Bifoga miljön till kopior av representativa notebooks och Spark-jobbdefinitioner i en utvecklings- eller testarbetsyta.

Om din produktionsarbetsyta fortfarande använder Runtime 1.3, ändra inte dess Runtime förrän testningen är klar. Behåll dess befintliga konfiguration tillgänglig för rollback under validering.

För att validera kommande Runtime 2.0-uppdateringar innan de når standardkanalen, använd early access-releasekanalen i din testmiljö. För mer information, se Fabric runtime release channels.

3. Uppdatera bibliotek och kod

Tillämpa de ändringar som identifierats i kompatibilitetsgranskningen:

  1. Ersätt saknade inbyggda paket med explicita miljöberoenden.
  2. Uppgradera eller byt ut paket som inte stödjer Python 3.13, Java 21, Scala 2.13 eller Azure Linux 3.0.
  3. Bygg om egna JAR-filer och nativa binärfiler.
  4. Uppdateringen tog bort anrop till PySpark och pandas API on Spark.
  5. Byt ut EventHubConnector mot Kafka connector.
  6. Ta bort Spark-inställningar för konfigurationer som inte finns i Runtime 2.0, och granska explicita överskrivningar av konfigurationer vars standardinställningar ändrats.
  7. Lös Spark SQL:s beteendeskillnader i koden istället för att permanent förlita sig på äldre inställningar.
  8. Behåll befintliga funktioner och protokoll i Delta-tabellen oförändrade under denna fas.

4. Kör kompatibilitets- och regressionstester

Kör samma representativa indata på Runtime 1.3 och Runtime 2.0. Jämföra:

  • Slutförandestatus, loggar, varningar och omförsök.
  • Scheman och datatyper.
  • Resultat på radnivå och aggregerade resultat.
  • Delta-tabellens historik och protocol.
  • Strömningsförlopp, tillstånd, latens och hantering av dubbletter.
  • Genomförandetid, resursanvändning och kostnad.
  • Resultat längre nedströms i SQL-analysändpunkten, Power BI, pipelines och andra mottagare.

Inkludera misslyckanden och återhämtningstester, inte bara lyckade körningar. Testsessioner startar om, jobbomförsök, återhämtning av checkpoint och samtidig åtkomst till tabeller.

5. Inför Runtime 2.0

Flytta arbetsbelastningar i kontrollerade batcher:

  1. Publicera den validerade Runtime 2.0-miljön.
  2. Bifoga det till en liten uppsättning produktionsnotebooks eller Spark-jobbdefinitioner.
  3. Kör batchen och övervaka utdata och nedströmskonsumenter.
  4. Fortsätt med de återstående arbetsuppgifterna efter observationsperioden.
  5. Ställ in Runtime 2.0 som standard för arbetsytan först efter att migreringen på objektnivå är klar.

Att ändra arbetsmiljöns runtime påverkar nya Spark-sessioner. Befintliga sessioner fortsätter att använda sin nuvarande körningsmiljö tills de upphör.

6. Behåll en rollback-väg

Behåll Runtime 1.3-miljön, artefakter, bibliotekspecifikationer och streamingkontrollpunkter tills Runtime 2.0-observationsperioden är slut. För att rulla tillbaka, koppla tillbaka Runtime 1.3-miljön eller återställ den tidigare workspace-runtimen och starta en ny Spark-session.

Important

En uppgradering av Delta-protokollet är vanligtvis inte reversibel. Aktivera inte tabellfunktioner som höjer protokollet förrän du har genomfört validering av Runtime 2.0 och bekräftat kompatibilitet med varje tabellkonsument.

Checklista för migrering

Innan du slutför migreringen, bekräfta att:

  • [ ] Varje nödvändigt Python- och R-paket är uttryckligen tillgängligt och kompatibelt med Python 3.13 eller R 4.5.
  • [ ] Anpassade JAR-filer riktar in sig på Java 21, Scala 2.13 och Spark 4.1.
  • [ ] Inbyggda beroenden fungerar på Azure Linux 3.0.
  • [ ] Workspace, miljö, notebook och Spark-jobbdefinitionsinställningar använder inte borttagna Spark-konfigurationer.
  • [ ] Arbetsbelastningar testas mot de ändrade standardvärdena för Spark-konfigurationen i Runtime 2.0.
  • [ ] Spark SQL och PySpark regressionstester godkänns.
  • [ ] Event Hubs-arbetslaster använder Kafka-kontakten.
  • [ ] Strukturerade strömningsarbetsbelastningar startar om och återhämtar sig som avsett.
  • [ ] Delta-tabellprotokoll och funktioner förblir kompatibla med alla konsumenter.
  • [ ] Datakvalitet, prestanda och kostnadsresultat uppfyller dina acceptanskriterier.
  • [ ] Driftsättning i produktion, övervakning och tillbakarullningsprocedurer dokumenteras och testas.