Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Fabric Runtime 2.0 er den nyeste generelt tilgjengelige (GA) og standard kjøretiden for Apache Spark-arbeidsbelastninger i Microsoft Fabric. Den oppdaterer operativsystemet, Java, Scala, Python, R, Apache Spark og Delta Lake. Siden flere av disse oppdateringene krysser hovedversjonsgrenser, bør du validere notatbøkene, Spark-jobbdefinisjonene, bibliotekene og datapipelinene dine før du flytter produksjonsarbeidsbelastninger fra Runtime 1.3.
Denne guiden beskriver endringene som kan påvirke en migrering og gir en trinnvis prosess for å flytte arbeidsbelastningene dine til Runtime 2.0.
Hva som endret seg i Runtime 2.0
Tabellen nedenfor sammenligner hovedkomponentene i Runtime 1.3 og Runtime 2.0.
| Komponent | Kjøretid 1.3 | Kjøretid 2.0 | Migrasjonsvurderinger |
|---|---|---|---|
| Utgivelsesfase | Slutt på støtten kunngjort (EOSA) | allmenn tilgjengelighet | Migrer produksjonsarbeidsbelastninger til den støttede GA-runtime. |
| Apache Spark | 3.5.5 | 4.1.1 | Gå gjennom atferdsendringer i Spark 4.1 og fjernet API-er. |
| Delta-sjøen | 3,2 | 4.2 | Valider tabellfunksjoner og protokollkompatibilitet på tvers av hver Fabric-arbeidsbelastning som bruker tabellene dine. |
| Java | 11 | 21 | Bygg opp og test Java-biblioteker og Java Native Interface (JNI)-avhengigheter. |
| Scala | 2.12.17 | 2.13.16 | Rekompiler Scala JAR-filer for Scala 2.13. Artefakter i Scala 2.12 og 2.13 er ikke binærkompatible. |
| Python | 3.11 | 3.13 | Bekreft at hver Python-pakke tilbyr en Python 3.13-kompatibel versjon og Linux-hjul. |
| R | 4.4.1 | 4.5.2 | Reinstaller og test tilpassede R-pakker. SparkR er foreldet i Spark 4.1. |
| Operativsystem | Azure Linux 2.0 (Mariner 2.0) | Azure Linux 3.0 (Mariner 3.0) | Bygg opp native biblioteker og egendefinerte binærfiler for Azure Linux 3.0. |
Runtime 2.0 tilbyr også nye Apache Spark 4.1-funksjonaliteter, inkludert VARIANT datatype, SQL-brukerdefinerte funksjoner, sesjonsvariabler, pipesyntaks, streng-sortering, Python Data Source API, Python brukerdefinerte tabellfunksjoner, samlet PySpark-profilering, og nye Structured Streaming tilstandsstyrings- og feilsøkings-API-er. For en oversikt, se Runtime 2.0 i Fabric.
Gjennomgå kompatibilitetsendringer
Gå gjennom følgende områder før du endrer et arbeidsområde eller miljø til Runtime 2.0.
Innebygde og tilpassede biblioteker
Runtime 2.0 fjerner flere forhåndsinstallerte Python- og R-pakker som var tilgjengelige i Runtime 1.3. Å redusere standardpakkesettet holder kjøretiden slank og reduserer overflatearealet for potensielle sikkerhetshendelser. En pakke som var tilgjengelig uten konfigurasjon i Runtime 1.3, må kanskje legges til eksplisitt i Runtime 2.0-miljøet ditt.
Bruk Library Manager for å legge til kun de pakkene som arbeidsmengden din krever, og lagre og publiser deretter miljøet. Library Manager løser pakkens nødvendige avhengigheter, så ikke legg til hver avhengighet i følgende inventarer individuelt. Ikke anta at et bibliotek er tilgjengelig eller at versjonen er uendret:
- Sammenlign Runtime 1.3- og Runtime 2.0-pakkeinventarene i Fabric runtime-releases-arkivet.
- Legg til manglende PyPI-, Conda-, Maven-, R- eller egendefinerte biblioteker i et miljø og publiser det.
- Pinne versjoner for produksjonsarbeidsbelastninger for å gjøre avhengighetsoppløsning repeterbar.
- Bekreft at Python-pakker støtter Python 3.13. Pakker med innebygde utvidelser må ha et kompatibelt Linux-hjul eller bygge vellykket på Azure Linux 3.0.
- Erstatt Scala 2.12-avhengigheter med Scala 2.13-artefakter. Artefaktnavn inkluderer ofte Scala-binærversjonen, som for eksempel
_2.12eller_2.13. - Rekompiler egendefinerte JAR-filer mot Java 21, Scala 2.13 og Spark 4.1. Test transitive avhengigheter for konflikter med biblioteker levert under kjøretid.
- Bygg opp tilpassede native biblioteker for Azure Linux 3.0.
Fabric migrerer bibliotekspesifikasjoner når du endrer kjøretiden i et eksisterende miljø, men det kan ikke garantere at disse bibliotekene forblir kompatible. Publisering mislykkes når avhengighetsløsning finner en konflikt. For alternativer for pakkeinstallasjon og publiseringsmoduser, se Administrer biblioteker i Fabric-miljøer.
Pakker fjernet fra standardmiljøet
Følgende inventarer inkluderer brukervendte pakker og deres lavnivå- eller transitive avhengigheter. Søk i disse listene etter pakker som din Runtime 1.3-arbeidsbelastning bruker. Hvis en pakke er oppført, legg til en Python 3.13- eller R 4.5-kompatibel versjon via Library Manager i Runtime 2.0-miljøet ditt.
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 utgående tilgangsbeskyttelse eller et administrert virtuelt nettverk hindrer tilgang til offentlige repositorier, last ned kompatible wheel-filer eller host et pakkespeil. For instruksjoner, se Administrer biblioteker med begrenset nettverkstilgang i Fabric.
Endringer i gnistkonfigurasjon
Runtime 2.0 legger til og fjerner Spark-innstillinger og endrer noen standardverdier. Fabric bruker også andre standardinnstillinger enn Apache Spark for noen innstillinger.
Før du migrerer, se gjennom Spark-innstillingene du har konfigurert for arbeidsområdene, miljøene, notatbøkene og Spark-jobbdefinisjonene. Fjern innstillinger som ikke lenger støttes, og test arbeidsbelastninger som er avhengige av endrede standardinnstillinger. Bruk kjøretidsstandardene med mindre dokumentasjonen ber deg endre en innstilling.
Merkbare endringer i standardverdi
Tabellen nedenfor viser utvalgte grunnlinjeendringer. Ikke satt betyr at baseline ikke eksplisitt setter en verdi; det betyr ikke at funksjonen er deaktivert.
| Konfigurasjon | Kjøretid 1.3-verdi | Kjøretid 2.0-verdi | Migrasjonsvurderinger |
|---|---|---|---|
spark.checkpoint.compress |
false |
true |
Checkpoint-filer komprimeres som standard. Valider sjekkpunktinteroperabilitet og lagringsatferd. |
spark.databricks.delta.optimizeWrite.enabled |
true |
Ikke angitt | Eiendommen er ikke fjernet. Valider effektiv optimalisert skriveatferd med tabell-, sesjons- og ressursprofilinnstillingene dine. |
spark.databricks.delta.optimizeWrite.partitioned.enabled |
false |
true |
Sjekk skrivegjennomstrømning og utdatafilstørrelser for partisjonerte Delta-tabeller. |
spark.hadoop.parquet.block.size |
1073741824 (1 GiB) |
134217728 (128 MiB) |
Parkettforfattere retter seg mot mindre blokker. Valider filstørrelser og nedstrøms leseytelse. |
spark.microsoft.delta.optimize.fast.enabled |
false |
true |
OPTIMIZE kan hoppe over arbeid med mindre kriteriene for filantall eller estimert komprimeringsstørrelse er oppfylt. Valider vedlikeholdsresultater. |
spark.microsoft.delta.optimize.fileLevelTarget.enabled |
false |
true |
Filer som tidligere nådde minst halvparten av kompakteringsmålstørrelsen blir ikke komprimert igjen. Valider filoppsettet etter OPTIMIZE. |
spark.microsoft.delta.targetFileSize.adaptive.enabled |
false |
true |
Delta beregner målfilstørrelsen basert på tabellstørrelse. Valider resulterende filstørrelser og leseytelse. |
spark.speculation.multiplier |
1.5 |
3 |
En oppgave må gå tre ganger saktere enn medianen før Spark vurderer den for spekulativ utførelse. |
spark.speculation.quantile |
0.75 |
0.9 |
Spark venter til 90% oppgaver er ferdige før den vurderer spekulativ utførelse. |
spark.sql.files.maxPartitionBytes |
134217728 (128 MiB) |
536870912 (512 MiB) |
Filskanninger kan pakke mer data inn i hver partisjon. Valider parallellisme og bruk av executorminne. |
spark.sql.maxSinglePartitionBytes |
Long.MaxValue |
128m |
En enkelt partisjon er som standard begrenset til 128 MiB. Valider spørringer som produserer store enkeltpartisjoner. |
spark.sql.orc.compression.codec |
snappy |
zstd |
Nye ORC-skrivinger bruker Zstandard-komprimering som standard. Valider kompatibilitet og ytelse med nedstrøms lesere. |
spark.sql.sources.v2.bucketing.enabled |
false |
true |
Spark muliggjør lagringspartisjonerte joins og annen Data Source V2-bøtteoppførsel som standard. Valider spørringsplaner og resultater. |
spark.sql.sources.v2.bucketing.pushPartValues.enabled |
false |
true |
Spark kan sende kompatible partisjonsverdier for Data Source V2-bøtter. Valider spørringsplaner for bøttetabeller. |
Runtime 2.0 bruker ROCKSDB også i stedet for LEVELDB for spark.shuffle.service.db.backend og setter spark.shuffle.service.removeShuffle til true. Spark bruker den eksterne stokkingstjenesten for å slette unødvendige stokkeblokker for deallokerte eksekutorer.
Delta parallell snapshot-lasting, parallell datahopping og driver-side snapshot-lasting endres også fra false til true. Test spørringsforsinkelse og bruk av driverressurser, spesielt for spørringer som får tilgang til flere Delta-tabeller.
Øktstart-overstyringer og native utførelse
Fabric-funksjonsutrullinger kan overstyre baseline-verdier når en økt starter.
| Konfigurasjon | Kjøretid 2.0 baseline-verdi | Kjøretid 2.0 sesjonsstartverdi i offentlige produksjonsregioner | Migrasjonsvurderinger |
|---|---|---|---|
spark.gluten.sql.columnar.costBasedFallback.enabled |
false |
true |
Produksjonslanseringen registrert 16. oktober 2026 muliggjør kostnadsbasert fallback til Spark. Sjekk spørringsplaner og ytelse på nytt, inkludert testet arbeidsbelastninger før utrulling. |
spark.sql.parquet.native.writer.complexTypes.enabled |
false |
true |
Test native Parquet-skrivinger og nedstrømslesninger for matriser, kart og strukturer. |
Når du bruker den native utførelsesmotoren, inkluder følgende sjekker i regresjonstestene dine:
- Valider minnebruk med standarden for kolonnebatch-størrelse som øker fra 4 096 til 10 240.
- Sammenlign stokkingsplaner og ytelse med den sorteringsbaserte kolonnestokk-terskelen som synker fra 100 000 til 4 000 partisjoner.
- Sammenlign resultater med regelmessig uttrykk og ytelse. Native engine Java regex støtter endringer fra deaktivert til aktivert, og innstillingen som faller tilbake alle regex-uttrykk til Spark endres fra
truetil .false
Apache Spark 4.1 sine standardinnstillinger beholdt annerledes i Fabric
Fabric Runtime 2.0 overstyrer bevisst følgende Apache Spark 4.1-standardinnstillinger. Ikke anta at en upstream Spark 4.1-standard gjelder uendret i Fabric.
| Konfigurasjon | Apache Spark 4.1 standard | Fabric Runtime 2.0-verdi |
|---|---|---|
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-oppførsel
Spark 4.1 introduserer atferdsendringer som kan endre spørringsresultater eller føre til at tidligere aksepterte spørringer feiler. Vær spesielt oppmerksom på ANSI SQL-oppførsel, casting, dato- og tidsstempeloperasjoner, datatyper, JDBC-mappinger og utdaterte SQL-konfigurasjoner.
Kjør regresjonstester som sammenligner:
- Utdataskjemaer, inkludert type, presisjon, skala og nullbarhet.
- Radteller og samlede resultater.
- Null, overløp, divisjon med null, og ugyldig kast-oppførsel.
- Dato, tidsstempel, tidssone og intervallresultater.
- JDBC-kilde- og sinktypemappinger.
- Spørreplaner og ytelse for kritiske arbeidsbelastninger.
Ikke bruk gamle kompatibilitetsinnstillinger som permanent migreringsstrategi. Hvis du midlertidig bruker en for å isolere en feil, oppdater den berørte koden og fjern innstillingen før du fullfører migreringen. For det komplette settet med atferdsendringer, se Spark SQL-migreringsguiden.
Python og pandas API på Spark
Runtime 2.0 flyttes fra Python 3.11 til Python 3.13 og inkluderer PySpark-endringene introdusert i Spark 4.1. Spark 4.1 øker også minimumsstøttede versjoner av pandas, NumPy og PyArrow, og fjerner API-er som tidligere ble foreldet i tidligere utgivelser.
Vanlige pandas API-oppdateringer på Spark inkluderer:
- Erstatt
DataFrame.iteritemsogSeries.iteritemsmeditems. - Erstatt
DataFrame.appendogSeries.appendmedps.concat. - Erstatt fjernede
inplaceparametere på kategoriske operasjoner med tildelinger. - Gå gjennom endrede parameternavn og standardinnstillinger, som
inclusiveogSeries.str.replace(regex=...). - Valider resultatkolonnenavn, indeksnavn, d-typer og rekkefølge.
For den komplette listen, se PySpark-migreringsguiden.
Java- og Scala-applikasjoner
Scala 2.13 er ikke binærkompatibel med Scala 2.12. Å gjenbruke en Runtime 1.3 JAR i Runtime 2.0 kan forårsake klasselastingsfeil selv om kildekoden ikke har endret seg. Bygg en separat Runtime 2.0-artefakt og oppdater alle Scala-kryssbygde avhengigheter.
Spark 4.1 endrer også sine interne servlet-API-referanser fra javax til .jakarta Gå gjennom tilpassede lyttere, Spark-utvidelser og biblioteker som samhandler med Sparks interne deler. For andre endringer på motornivå, se Spark Core-migreringsguiden.
Strømmingsarbeidsbelastninger og koblinger
Den utdaterte EventHubConnector som er inkludert i Runtime 1.3, er ikke tilgjengelig i Runtime 2.0. Bruk Apache Spark Kafka-connectoren med det Kafka-kompatible endepunktet for Azure Event Hubs. For oppsettveiledning, se Use Apache Spark with Azure Event Hubs for Apache Kafka.
For relevante scenarioer kan du også evaluere Fabric eventstream for å ta inn strømmedata og behandle dem i en notatbok med Spark Structured Streaming. For mer informasjon, se Query eventstream i Microsoft Fabric fra en bærbar PC med Spark Structured Streaming.
For hver strukturert strømmingsarbeidsbelastning:
- Test om Runtime 2.0-spørringen kan starte på nytt fra en kopi av det eksisterende sjekkpunktet.
- Valider tilstandsfulle operasjoner, hendelsestid-vannmerker, triggere, kilde- og senkingsalternativer, samt utdataskjemaer.
- Hold kildedataene og det opprinnelige sjekkpunktet tilgjengelig til valideringen er fullført.
- Hvis et sjekkpunkt er inkompatibelt, planlegg en kontrollert omstart med et nytt sjekkpunkt. Ta hensyn til gjenspilling eller hoppet over input, og gjør sinken idempotent før du starter på nytt.
Se gjennom migreringsguiden for strukturert strømming for endringer i kompatibilitet oppstrøms.
Delta Lake-tabeller
Delta Lake opprettholder bakoverkompatibilitet for eksisterende tabeller, slik at Runtime 2.0 kan fungere med tabeller laget av Runtime 1.3. Å aktivere en nyere tabellfunksjon kan imidlertid heve tabellens leser- eller skriverprotokoll og forhindre at eldre motorer eller andre Fabric-opplevelser bruker tabellen.
Under den innledende kjøretidsmigreringen:
- Ikke oppgrader tabellprotokoller eller aktiver Delta Lake 4.2-funksjoner.
- Inspiser funksjonene og protokollversjonene av nyopprettede tabeller samt eksisterende tabeller. Runtime 2.0 setter
spark.databricks.delta.properties.defaults.enableDeletionVectorstiltrue; verifiser den resulterende tabellmetadataen i stedet for å anta at det å unngå manuell funksjonsaktivering bevarer kompatibiliteten. - Testlesinger, skrivinger, sammenslåinger, skjemautvikling, vedlikeholdsoperasjoner og samtidig tilgang.
- Identifiser hver motor som leser eller skriver hver tabell, inkludert SQL-analyseendepunktet, Power BI, pipelines, dataflyter, hendelsesstrømmer og eksterne motorer.
- Aktiver en ny Delta-funksjon kun etter at alle forbrukere støtter den.
Delta Lake 4.2-spesifikke funksjoner er eksperimentelle i Fabric og er begrenset til Spark-opplevelser. For støttematriser og standardprotokollversjoner, se Delta Lake tabellformatinteroperabilitet.
Migrer arbeidsbelastningene dine
Bruk en trinnvis migrering i stedet for å endre kjøretiden for et produksjonsarbeidsområde umiddelbart.
1. Inventar arbeidsbelastningene dine i Runtime 1.3
Noter følgende informasjon:
- Notatbøker, Spark-jobbdefinisjoner, pipelines, tidsplaner og avlidende elementer.
- Arbeidsplass- og objektnivå-miljøtildelinger.
- Spark-konfigurasjoner, inkludert eventuelle innstillinger for eldre kompatibilitet.
- Offentlige, private og tilpassede biblioteker og deres løse versjoner.
- Egendefinerte JAR-filer, Python-hjul, R-pakker, native biblioteker og initialiseringslogikk.
- Datakilder, destinasjoner, hemmeligheter, forbindelser og nettverkskrav.
- Delta-tabeller og alle ikke-Spark-brukere av disse tabellene.
- Strømming av sjekkpunkter, skjemaer, offsets og gjenopprettingskrav.
- Forventede utdataskjemaer, radantall, datakvalitetskontroller og ytelsesbaselines.
Prioriter arbeidsbelastninger som bruker egendefinerte biblioteker, native kode, Scala, streaming state eller avanserte Delta-funksjoner.
2. Lag et testmiljø for Runtime 2.0
Lag et separat miljøelement og velg 2.0 (Spark 4.1, Delta 4.2) som kjøretid. Legg til de nødvendige bibliotekene, lagre miljøet, og publiser det. Legg miljøet til kopier av representative notatbøker og Spark-jobbdefinisjoner i et utviklings- eller testarbeidsområde.
Hvis produksjonsarbeidsområdet ditt fortsatt bruker Runtime 1.3, bør du ikke endre kjøretiden før testingen er fullført. Hold den eksisterende konfigurasjonen tilgjengelig for tilbakerulling under validering.
For å validere kommende Runtime 2.0-oppdateringer før de når standardkanalen, bruk early access-kanalen i testmiljøet ditt. For mer informasjon, se Fabric runtime release channels.
3. Oppdater biblioteker og kode
Bruk endringene identifisert i kompatibilitetsgjennomgangen:
- Bytt ut manglende innebygde pakker med eksplisitte miljøavhengigheter.
- Oppgrader eller bytt ut pakker som ikke støtter Python 3.13, Java 21, Scala 2.13 eller Azure Linux 3.0.
- Bygg opp tilpassede JAR-filer og native binærfiler.
- Oppdateringen fjernet PySpark og pandas API på Spark-kall.
- Bytt ut
EventHubConnectormed Kafka-kontakten. - Fjern Spark-innstillinger for konfigurasjoner som ikke er tilgjengelige i Runtime 2.0, og gjennomgå eksplisitte overstyringer av konfigurasjoner med endrede standardinnstillinger.
- Løs Spark SQL-atferdsforskjeller i koden i stedet for å være avhengig av gamle innstillinger permanent.
- Hold eksisterende Delta-tabellfunksjoner og protokoller uendret i denne fasen.
4. Kjør kompatibilitets- og regresjonstester
Kjør de samme representative inputene på Runtime 1.3 og Runtime 2.0. Sammenligne:
- Fullføringsstatus, logger, advarsler og nye forsøk.
- Skjemaer og datatyper.
- Resultater på radnivå og aggregerte resultater.
- Delta-tabellens historikk og protokoll.
- Strømmingsfremgang, tilstand, latens og håndtering av duplikater.
- Utførelsestid, ressursbruk og kostnad.
- Nedstrøms resulterer i SQL-analyseendepunktet, Power BI, pipelines og andre forbrukere.
Inkluder feil- og gjenopprettingstester, ikke bare vellykkede forsøk. Testøkter starter på nytt, jobbforsøk, sjekkpunktgjenoppretting og samtidig tabelltilgang.
5. Rull ut Runtime 2.0
Flytt arbeidsmengder i kontrollerte batcher:
- Publiser det validerte Runtime 2.0-miljøet.
- Legg det til et lite sett produksjonsnotatbøker eller Spark-jobbdefinisjoner.
- Kjør batchen og overvåk utganger og nedstrøms forbrukere.
- Fortsett med resten av arbeidsmengden etter observasjonsperioden.
- Sett Runtime 2.0 som arbeidsområde som standard først etter at migreringen på elementnivå er fullført.
Endring av arbeidsområdets kjøretid påvirker nye Spark-økter. Eksisterende økter fortsetter å bruke sin nåværende kjøretid til de stopper.
6. Behold en rullebane
Behold Runtime 1.3-miljøet, artefakter, bibliotekspesifikasjoner og strømmesjekkpunkter til Runtime 2.0-observasjonsperioden er over. For å rulle tilbake, koble til Runtime 1.3-miljøet på nytt eller gjenopprette forrige arbeidsområde-runtime og start en ny Spark-økt.
Important
En oppgradering av Delta-protokollen er vanligvis ikke reversibel. Ikke aktiver tabellfunksjoner som hever protokollen før du har fullført Runtime 2.0-validering og bekreftet kompatibilitet med alle tabellbrukere.
Sjekkliste for overføring
Før du fullfører migreringen, bekreft at:
- [ ] Alle nødvendige Python- og R-pakker er eksplisitt tilgjengelige og kompatible med Python 3.13 eller R 4.5.
- [ ] Egendefinerte JAR-filer retter seg mot Java 21, Scala 2.13 og Spark 4.1.
- [ ] Native dependencies fungerer på Azure Linux 3.0.
- [ ] Arbeidsområde, miljø, notatbok og Spark-jobbdefinisjonsinnstillinger bruker ikke fjernede Spark-konfigurasjoner.
- [ ] Arbeidsbelastninger testes mot de endrede Runtime 2.0 Spark-konfigurasjonsstandardene.
- [ ] Spark SQL og PySpark regresjonstester består.
- [ ] Event Hubs-arbeidsbelastninger bruker Kafka-kontakten.
- [ ] Strukturerte strømmingslaster starter på nytt og gjenopprettes som planlagt.
- [ ] Delta-tabellprotokoller og funksjoner forblir kompatible med alle brukere.
- [ ] Datakvalitet, ytelse og kostnadsresultater oppfyller dine akseptkriterier.
- [ ] Produksjonsutrulling, overvåking og tilbakerullingsprosedyrer dokumenteres og testes.