Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.12eller_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
truetillfalse.
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.iteritemsochSeries.iteritemsmeditems. - Ersätt
DataFrame.appendochSeries.appendmedps.concat. - Ersätt borttagna
inplaceparametrar i kategoriska operationer med tilldelningar. - Granska ändrade parameternamn och standardinställningar, såsom
inclusiveochSeries.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.enableDeletionVectorstilltrue; 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:
- Ersätt saknade inbyggda paket med explicita miljöberoenden.
- Uppgradera eller byt ut paket som inte stödjer Python 3.13, Java 21, Scala 2.13 eller Azure Linux 3.0.
- Bygg om egna JAR-filer och nativa binärfiler.
- Uppdateringen tog bort anrop till PySpark och pandas API on Spark.
- Byt ut
EventHubConnectormot Kafka connector. - 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.
- Lös Spark SQL:s beteendeskillnader i koden istället för att permanent förlita sig på äldre inställningar.
- 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:
- Publicera den validerade Runtime 2.0-miljön.
- Bifoga det till en liten uppsättning produktionsnotebooks eller Spark-jobbdefinitioner.
- Kör batchen och övervaka utdata och nedströmskonsumenter.
- Fortsätt med de återstående arbetsuppgifterna efter observationsperioden.
- 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.