Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
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.12eller_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
truetil .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.iteritemsogSeries.iteritemsmeditems. - Erstat
DataFrame.appendogSeries.appendmedps.concat. - Erstat fjernede
inplaceparametre på kategoriske operationer med tildelinger. - Gennemgå ændrede parameternavne og standardindstillinger, såsom
inclusiveogSeries.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.enableDeletionVectorstiltrue; 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:
- Erstat manglende indbyggede pakker med eksplicitte miljøafhængigheder.
- Opgrader eller udskift pakker, der ikke understøtter Python 3.13, Java 21, Scala 2.13 eller Azure Linux 3.0.
- Genopbyg brugerdefinerede JAR-filer og native binærfiler.
- Opdateringen fjernede PySpark og pandas API på Spark-kald.
- Erstat
EventHubConnectormed Kafka-stikket. - Fjern Spark-indstillinger for konfigurationer, der ikke er tilgængelige i Runtime 2.0, og gennemgå eksplicitte overstyringer af konfigurationer, hvis standardindstillinger er ændret.
- Løs Spark SQL-adfærdsforskelle i koden i stedet for permanent at stole på legacy-indstillinger.
- 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:
- Publicér det validerede Runtime 2.0-miljø.
- Vedhæft det til et lille sæt produktionsnotesbøger eller Spark-jobdefinitioner.
- Kør batchen og overvåge output og downstream forbrugere.
- Fortsæt med de resterende arbejdsopgaver efter observationsperioden.
- 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.