Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Fabric Runtime 2.0 on uusin yleisesti saatavilla oleva (GA) ja oletusajonaikainen Apache Spark -työkuormille Microsoft Fabric. Se päivittää käyttöjärjestelmän, Java, Scala, Python, R, Apache Spark ja Delta Lake. Koska useat näistä päivityksistä ylittävät pääversioiden rajat, validoi muistikirjasi, Spark-tehtävämäärittelysi, kirjastot ja dataputkesi ennen kuin siirrät tuotantotyökuormat Runtime 1.3:sta.
Tämä opas kuvaa muutoksia, jotka voivat vaikuttaa migraatioon, ja tarjoaa vaiheittaisen prosessin työkuormien siirtämiseen Runtime 2.0:aan.
Mitä muuttui Runtime 2.0:ssa
Seuraava taulukko vertaa Runtime 1.3:n ja Runtime 2.0:n pääkomponentteja.
| Komponentti | Suoritusaika 1.3 | Runtime 2.0 | Muuttoliikkeen huomioiminen |
|---|---|---|---|
| Julkaisuvaihe | Tuen päättyminen ilmoitettu (EOSA) | yleinen saatavuus | Siirrä tuotantotyökuormat tuettuun GA-ajonaikaan. |
| Apache Spark | 3.5.5 | 4.1.1 | Tarkista Spark 4.1:n käyttäytymismuutokset ja poistetut rajapinnat. |
| Delta-järvi | 3,2 | 4.2 | Varmista taulun ominaisuudet ja protokollan yhteensopivuus jokaisessa Fabric-työkuormassa, joka käyttää taulujasi. |
| Java | 11 | 21 | Rakenna uudelleen ja testaa Java-kirjastoja ja Java Native Interface (JNI) -riippuvuuksia. |
| Scala | 2.12.17 | 2.13.16 | Käännä Scala JAR -tiedostot uudelleen Scala 2.13:lle. Scala 2.12 ja 2.13 -artefaktit eivät ole binääriyhteensopivia. |
| Python | 3.11 | 3.13 | Varmista, että jokainen Python-paketti tarjoaa Python 3.13 -yhteensopivan julkaisun ja Linux-pyörän. |
| R | 4.4.1 | 4.5.2 | Asenna ja testaa mukautetut R-paketit uudelleen. SparkR on vanhentunut Spark 4.1:ssä. |
| Käyttöjärjestelmä | Azure Linux 2.0 (Mariner 2.0) | Azure Linux 3.0 (Mariner 3.0) | Rakenna uudelleen natiivikirjastot ja mukautetut binäärit Azure Linux 3.0:lle. |
Runtime 2.0 tarjoaa myös uusia Apache Spark 4.1 -ominaisuuksia, kuten VARIANT tietotyypin, SQL-käyttäjän määrittelemät funktiot, istuntomuuttujat, putkisyntaksin, merkkijonojen kokoamisen, Python Data Source API:n, Python-käyttäjän määrittelemät taulufunktiot, yhtenäisen PySpark-profiilin sekä uudet Structured Streaming -tilahallinnan ja debuggausrajapinnat. Yleiskatsauksesta katso Runtime 2.0 in Fabric.
Arvosteluyhteensopivuuden muutokset
Käy läpi seuraavat alueet ennen kuin vaihdat työtilan tai ympäristön Runtime 2.0:aan.
Sisäänrakennetut ja räätälöidyt kirjastot
Runtime 2.0 poistaa useita valmiiksi asennettuja Python- ja R-paketteja, jotka olivat saatavilla Runtime 1.3:ssa. Oletuspakettien vähentäminen pitää ajonajan tiiviisti ja pienentää mahdollisten tietoturva-onnettomuuksien pinta-alaa. Paketti, joka oli saatavilla ilman konfiguraatiota Runtime 1.3:ssa, saattoi joutua lisäämään nimenomaisesti Runtime 2.0 -ympäristöösi.
Käytä Library Manageria lisätäksesi vain ne paketit, joita työkuormasi vaatii, ja tallenna sekä julkaise ympäristö. Kirjastonhallinta ratkaisee paketin vaaditut riippuvuudet, joten älä lisää kaikkia riippuvuuksia seuraaviin inventaarioihin erikseen. Älä oleta, että kirjasto on saatavilla tai että sen versio pysyy muuttumattomana:
- Vertaa Runtime 1.3:n ja Runtime 2.0:n pakettivarastoja Fabric-ajonaikaisten julkaisujen varastossa.
- Lisää puuttuvat PyPI-, Conda-, Maven-, R- tai mukautetut kirjastot ympäristöön ja julkaise se.
- Pinnaa versiot tuotantokuormille, jotta riippuvuuksien ratkaisu olisi toistettavissa.
- Varmista, että Python-paketit tukevat Python 3.13:ta. Natiivilaajennuksia sisältävien pakettien on tarjottava yhteensopiva Linux-pyörä tai rakennettava onnistuneesti Azure Linux 3.0:lla.
- Korvaa Scala 2.12:n riippuvuudet Scala 2.13 -artefakteilla. Artefaktien nimet sisältävät yleisesti Scala-binääriversion, kuten
_2.12tai_2.13. - Käännä mukautetut JAR-tiedostot uudelleen Java 21:n, Scala 2.13:n ja Spark 4.1:n kanssa. Testaa transitiivisia riippuvuuksia ristiriitojen varalta ajonaikaisten kirjastojen kanssa.
- Rakenna uudelleen räätälöidyt natiivikirjastot Azure Linux 3.0:lle.
Fabric siirtää kirjastospesifikaatioita, kun muutat olemassa olevan ympäristön ajonaikaa, mutta se ei voi taata, että kirjastot pysyvät yhteensopivina. Julkaiseminen epäonnistuu, kun riippuvuuden ratkaisu kohtaa ristiriidan. Pakettien asennusvaihtoehdot ja julkaisutilat löytyvät kohdasta Hallinnoi kirjastoja Fabric-ympäristöissä.
Paketit, jotka on poistettu oletusympäristöstä
Seuraavat varastot sisältävät käyttäjäkohtaiset paketit ja niiden matalan tason tai transitiiviset riippuvuudet. Etsi näistä listoista paketteja, joita Runtime 1.3 -työkuormasi käyttää. Jos paketti on listattu, lisää Python 3.13 -yhteensopiva tai R 4.5 -yhteensopiva versio Library Managerin kautta Runtime 2.0 -ympäristössäsi.
Python-ympäristö: 348 Conda-pakettia
| Paketti | Paketti | Paketti | Paketti |
|---|---|---|---|
_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-ympäristö: 24 pip-pakettia
| Paketti | Paketti | Paketti | Paketti |
|---|---|---|---|
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-ympäristö: 67 Conda-pakettia
| Paketti | Paketti | Paketti | Paketti |
|---|---|---|---|
_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
Jos ulospäin pääsyn suojaus tai hallittu virtuaaliverkko estää pääsyn julkisiin tietovarastoihin, lataa yhteensopivat pyörätiedostot tai isännöi pakettipeili. Ohjeita löytyy kohdasta Hallinnoi kirjastoja, joilla on rajoitettu verkkoyhteys Fabric-ohjelmassa.
Kipinäkonfiguraation muutokset
Runtime 2.0 lisää ja poistaa Spark-asetuksia ja muuttaa joitakin oletusarvoja. Fabric käyttää myös eri oletusasetuksia kuin Apache Sparkissa.
Ennen siirtymistä tutustu Spark-asetuksiin, jotka olet määrittänyt työtiloillesi, ympäristöillesi, muistikirjoillesi ja Spark-työtehtävien määrittelyille. Poista asetukset, joita ei enää tueta, ja testaa työkuormat, jotka perustuvat muutettuihin oletuksiin. Käytä ajonaikaisia oletuksia, ellei dokumentaatio ohjaa muuttamaan asetusta.
Merkittäviä oletusarvomuutoksia
Seuraava taulukko listaa valitut perusmuutokset. Ei asetettu tarkoittaa, että perusarvo ei määritä arvoa eksplisiittisesti; se ei tarkoita, että ominaisuus olisi pois päältä.
| Konfiguraatio | Runtime 1.3 -arvo | Runtime 2.0 -arvo | Muuttoliikkeen huomioiminen |
|---|---|---|---|
spark.checkpoint.compress |
false |
true |
Tarkistuspistetiedostot pakataan oletuksena. Tarkista tarkistuspisteiden yhteentoimivuus ja tallennuskäyttäytyminen. |
spark.databricks.delta.optimizeWrite.enabled |
true |
Ei asetettu | Kiinteistöä ei ole poistettu. Vahvista tehokas optimoitu kirjoituskäyttäytyminen taulukon, istunnon ja resurssiprofiilin asetuksilla. |
spark.databricks.delta.optimizeWrite.partitioned.enabled |
false |
true |
Validoi kirjoitusläpäisy- ja tulostustiedostokoot osioiduille Delta-tauluille. |
spark.hadoop.parquet.block.size |
1073741824 (1 GiB) |
134217728 (128 MiB) |
Parquet-kirjoittajat kohdistavat huomionsa pienempiin palikoihin. Varmista tiedostokoot ja lukusuorituskyky alaspäin. |
spark.microsoft.delta.optimize.fast.enabled |
false |
true |
OPTIMIZE voi jättää työn väliin, ellei tiedostojen määrä tai arvioitu tiivistymiskoon kriteeri täytty. Varmista huoltotulokset. |
spark.microsoft.delta.optimize.fileLevelTarget.enabled |
false |
true |
Tiedostot, jotka aiemmin saavuttivat vähintään puolet tiivistymistavoitteestaan, eivät ole enää pakkatuja. Validoi tiedostoasettelu jälkeen OPTIMIZE. |
spark.microsoft.delta.targetFileSize.adaptive.enabled |
false |
true |
Delta laskee kohdetiedoston koon taulukon koon perusteella. Validoi tuloksena olevien tiedostokoot ja lukusuorituskyky. |
spark.speculation.multiplier |
1.5 |
3 |
Tehtävän täytyy kulkea kolme kertaa hitaammin kuin mediaani, ennen kuin Spark harkitsee sitä spekulatiiviseksi toteutukseksi. |
spark.speculation.quantile |
0.75 |
0.9 |
Spark odottaa 90% tehtävää valmistuakseen ennen kuin harkitsee spekulatiivista toteutusta. |
spark.sql.files.maxPartitionBytes |
134217728 (128 MiB) |
536870912 (512 MiB) |
Tiedostoskannaukset voivat pakata enemmän dataa jokaiseen osioon. Validoi rinnakkaisuus ja suorittajan muistin käyttö. |
spark.sql.maxSinglePartitionBytes |
Long.MaxValue |
128m |
Yksi osio on oletuksena rajoitettu 128 MiB:iin. Validoi kyselyt, jotka tuottavat suuria yksittäisiä osioita. |
spark.sql.orc.compression.codec |
snappy |
zstd |
Uudet ORC-kirjoitukset käyttävät oletuksena Zstandard-pakkausta. Varmista yhteensopivuus ja suorituskyky alavirran lukijoiden kanssa. |
spark.sql.sources.v2.bucketing.enabled |
false |
true |
Spark mahdollistaa tallennus-osioidut liitokset ja muut Data Source V2 -bucketing-toiminnot oletuksena. Vahvista kyselysuunnitelmat ja tulokset. |
spark.sql.sources.v2.bucketing.pushPartValues.enabled |
false |
true |
Spark voi työntää yhteensopivia osioarvoja Data Source V2 -bucketingille. Vahvista kyselysuunnitelmat bucket-taulukoille. |
Runtime 2.0 käyttää ROCKSDB myös for sijaan spark.shuffle.service.db.backendLEVELDB ja asettaa .truespark.shuffle.service.removeShuffle Spark käyttää ulkoista sekoituspalvelua poistaakseen tarpeettomat sekoituslohkot vapautetuille toimeenpanijoille.
Delta-rinnakkaisen snapshot-lataus, rinnakkaisen datan hyppääminen ja kuljettajan puolen snapshot-lataus muuttuvat myös arvosta false .true Testaa kyselyiden viivettä ja ajuriresurssien käyttöä, erityisesti kyselyissä, jotka käyttävät useita Delta-tauluja.
Istunnon aloituksen ohitukset ja natiivi suoritus
Fabric-ominaisuuksien käyttöönotot voivat ohittaa perusarvot session alkaessa.
| Konfiguraatio | Runtime 2.0 -perusarvo | Suoritusaikainen 2.0 istunto-aloitusarvo julkisilla tuotantoalueilla | Muuttoliikkeen huomioiminen |
|---|---|---|---|
spark.gluten.sql.columnar.costBasedFallback.enabled |
false |
true |
16. lokakuuta 2026 kirjattu tuotannon käyttöönotto mahdollistaa kustannusperusteisen palautumisen Sparkille. Tarkista kyselysuunnitelmat ja suorituskyky uudelleen, mukaan lukien ennen tätä käyttöönottoa testatut työkuormat. |
spark.sql.parquet.native.writer.complexTypes.enabled |
false |
true |
Testaa natiivisti Parquetin kirjoituksia ja jälkivirran lukuja taulukoille, kartoille ja rakenteille. |
Kun käytät natiivia suoritusmoottoria, sisällytä seuraavat tarkistukset regressiotesteihisi:
- Validoi muistin käyttö siten, että sarakkeeräkoko oletus kasvaa 4 096:sta 10 240:een.
- Vertaa sekoitussuunnitelmia ja suorituskykyä lajitteluun perustuvan sarakkeen sekoituskynnyksellä, joka laskee 100 000:sta 4 000:een osioon.
- Vertaa säännöllisen ilmentämisen tuloksia ja suorituskykyä. Native-moottorin Java-regex-tuki vaihtuu pois päältä sallituksi, ja asetus, joka palauttaa kaikki regex-lausekkeet Sparkiin, muuttuu arvosta
truefalsearvoon .
Apache Spark 4.1:n oletusasetukset säilytetään eri tavalla Fabric:ssa
Fabric Runtime 2.0 ohittaa tarkoituksella seuraavat Apache Spark 4.1:n oletusasetukset. Älä oleta, että ylävirran Spark 4.1 -oletus on voimassa muuttumattomana Fabric-versiossa.
| Konfiguraatio | Apache Spark 4.1 oletus | Fabric Runtime 2.0 -arvo |
|---|---|---|
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 ja DataFrame-käyttäytyminen
Spark 4.1 tuo käyttöön käyttäytymismuutoksia, jotka voivat muuttaa kyselytuloksia tai aiheuttaa aiemmin hyväksyttyjen kyselyjen epäonnistumisen. Kiinnitä erityistä huomiota ANSI SQL -käyttäytymiseen, casteihin, päivämäärä- ja aikaleimatoimintoihin, tietotyyppeihin, JDBC-kartoituksiin ja vanhentuneisiin SQL-konfiguraatioihin.
Suorita regressiotestejä, jotka vertailevat:
- Tulostusskeemat, mukaan lukien tyyppi, tarkkuus, skaalaus ja nollaus.
- Rivimäärät ja yhteenlasketut tulokset.
- Nolla-, ylivuoto-, nolla-jako- ja virheellinen loitsu -käyttäytyminen.
- Päivämäärä, aikaleima, aikavyöhyke ja aikavälitulokset.
- JDBC-lähde- ja sinkityypin kartoitukset.
- Kysy suunnitelmia ja suorituskykyä kriittisistä työkuormista.
Älä käytä legacy-yhteensopivuusasetuksia pysyvänä siirtostrategiana. Jos käytät tilapäisesti virheen eristämiseen, päivitä kyseinen koodi ja poista asetus ennen migraation loppuunsaattamista. Täydelliset käyttäytymismuutokset löydät Spark SQL -migraatiooppaasta.
Python ja pandas API Sparkissa
Runtime 2.0 siirtyy Python 3.11:stä Python 3.13:een ja sisältää PySpark-muutokset, jotka esiteltiin Spark 4.1:ssä. Spark 4.1 nostaa myös pandas-, NumPy- ja PyArrow-versioiden minimituelliset versiot ja poistaa API:t, jotka olivat vanhentuneita aiemmissa versioissa.
Yleisiä pandas-API-rajapintoja Spark-päivityksissä ovat:
- Korvaa
DataFrame.iteritemsjaSeries.iteritems.items - Korvaa
DataFrame.appendjaSeries.append.ps.concat - Korvaa poistetut
inplaceparametrit kategorisista operaatioista määrityksillä. - Tarkista muuttuneet parametrien nimet ja oletusasetukset, kuten
inclusivejaSeries.str.replace(regex=...). - Validoi tulossarakeiden nimet, indeksinimet, d-tyypit ja järjestys.
Täydellisen listan löydät PySpark-migraatiooppaasta.
Java- ja Scala-sovellukset
Scala 2.13 ei ole binääriyhteensopiva Scala 2.12:n kanssa. Runtime 1.3 JAR:n uudelleenkäyttö Runtime 2.0:ssa voi aiheuttaa luokkien latausvirheitä, vaikka lähdekoodi ei olisi muuttunut. Rakenna erillinen Runtime 2.0 -artefakti ja päivitä kaikki Scala-ristiinrakennetut riippuvuudet.
Spark 4.1 muuttaa myös sisäiset servlet-API-viittauksensa arvosta javax .jakarta Tarkastele mukautettuja kuuntelijoita, Spark-laajennuksia ja kirjastoja, jotka ovat vuorovaikutuksessa Sparkin sisäisten laitteiden kanssa. Muita moottoritason muutoksia varten katso Spark Core -migraatio-oppaasta.
Suoratoistotyökuormat ja liittimet
EventHubConnector Vanhentunut versio, joka sisältyy Runtime 1.3:een, ei ole saatavilla Runtime 2.0:ssa. Käytä Apache Spark Kafka -liitintä Kafka-yhteensopivan päätepisteen kanssa Azure Event Hubs. Asennusohjeita varten katso Use Apache Spark with Azure Event Hubs for Apache Kafka.
Soveltuvissa tilanteissa voit myös arvioida Fabric eventstreamia, joka vastaanottaa suoratoistodataa ja käsittelee sen muistikirjassa Spark Structured Streamingin avulla. Lisätietoja löytyy kohdasta Kysely tapahtumavirta Microsoft Fabric -muistikirjasta, jossa on Spark Structured Streaming.
Jokaiselle Structured Streaming -työkuormalle:
- Testaa, voiko Runtime 2.0 -kysely käynnistyä uudelleen olemassa olevasta tarkistuspisteestä.
- Validoi tilalliset toiminnot, tapahtumaaikavesileimat, laukaisimet, lähde- ja sink-vaihtoehdot sekä tulostusskeemat.
- Pidä lähdedata ja alkuperäinen tarkistuspiste saatavilla, kunnes validointi on valmis.
- Jos tarkistuspiste on yhteensopimaton, suunnittele kontrolloitu uudelleenkäynnistys uudella tarkistuspisteellä. Ota huomioon uudelleentoistettu tai ohitettu syöte ja tee sink idempotentiksi ennen uudelleenkäynnistystä.
Tutustu Structured Streaming -migraatiooppaaseen saadaksesi lisäyksiä upstreamin yhteensopivuusmuutokset.
Delta Laken taulukot
Delta Lake ylläpitää taaksepäin yhteensopivuutta olemassa olevien taulujen kanssa, joten Runtime 2.0 voi toimia Runtime 1.3:n luomien taulujen kanssa. Uudemman taulukon ominaisuuden käyttöönotto voi kuitenkin nostaa taulukon lukija- tai kirjoitusprotokollaa ja estää vanhempia moottoreita tai muita Fabric-kokemuksia käyttämästä taulua.
Alkuperäisen ajonaikaisen siirron aikana:
- Älä päivitä taulukkoprotokollia tai ota käyttöön Delta Lake 4.2:n ominaisuuksia.
- Tutki uusien taulujen sekä olemassa olevien taulujen ominaisuuksia ja protokollaversioita. Runtime 2.0 asettaa
spark.databricks.delta.properties.defaults.enableDeletionVectors;truevarmista syntyvän taulukon metatiedot sen sijaan, että oletettaisiin, että manuaalisen ominaisuuksien aktivoinnin välttäminen säilyttää yhteensopivuuden. - Testilukemiset, kirjoittavat, yhdistävät, skeeman kehitykset, ylläpitotoiminnot ja samanaikainen pääsy.
- Tunnista jokainen moottori, joka lukee tai kirjoittaa jokaisen taulun, mukaan lukien SQL-analytiikan päätepiste, Power BI, putket, datavirrat, tapahtumavirrat ja ulkoiset moottorit.
- Ota uusi Delta-ominaisuus käyttöön vasta, kun kaikki kuluttajat tukevat sitä.
Delta Lake 4.2:een liittyvät ominaisuudet ovat kokeellisia Fabric-pelissä ja rajoittuvat Spark-kokemuksiin. Tukimatriisi- ja oletusprotokollaversioista katso Delta Lake -taulukkomuotojen yhteentoimivuus.
Siirrä työkuormasi
Käytä vaiheittaista migraatiota sen sijaan, että vaihdat tuotantotyötilan ajonaikaa välittömästi.
1. Inventoi Runtime 1.3 -työkuormasi
Kirjaa seuraavat tiedot:
- Muistikirjat, Spark-tehtävämääritelmät, putket, aikataulut ja riippuvaiset kohteet.
- Työtilatason ja esinetason ympäristön tehtävät.
- Spark-asetukset, mukaan lukien mahdolliset legacy-yhteensopivuusasetukset.
- Julkiset, yksityiset ja räätälöidyt kirjastot sekä niiden ratkaistut versiot.
- Mukautetut JAR-tiedostot, Python-pyörät, R-paketit, natiivikirjastot ja alustuslogiikka.
- Tietolähteet, kohteet, salaisuudet, yhteydet ja verkkovaatimukset.
- Delta-taulut ja kaikki ei-Spark-käyttäjät noista tauluista.
- Suoratoiston tarkistuspisteet, skeemat, offsetit ja palautusvaatimukset.
- Odotetut tulosskeemat, rivimäärät, datan laadun tarkistukset ja suorituskyvyn perusrajat.
Priorisoi työkuormat, jotka käyttävät mukautettuja kirjastoja, natiivikoodia, Scalaa, suoratoistotilaa tai kehittyneitä Delta-ominaisuuksia.
2. Luo Runtime 2.0 -testiympäristö
Luo erillinen ympäristökohde ja valitse 2.0 (Spark 4.1, Delta 4.2) sen ajonaikaksi. Lisää tarvittavat kirjastot, tallenna ympäristö ja julkaise se. Liitä ympäristö edustavien muistikirjojen ja Spark-työn määrittelyjen kopioihin kehitys- tai testityötilassa.
Jos tuotantotyötilasi käyttää edelleen Runtime 1.3:ta, älä muuta sen ajonaikaa ennen kuin testaus on valmis. Pidä sen nykyinen kokoonpano käytettävissä palautusta varten validoinnin aikana.
Validoidaksesi tulevat Runtime 2.0 -päivitykset ennen oletuskanavaa, käytä testiympäristösi varhaisen pääsyn julkaisukanavaa. Lisätietoja löytyy Fabric ajonaikaisesta julkaisukanavasta.
3. Päivitä kirjastot ja koodi
Sovella yhteensopivuustarkastuksessa tunnistetut muutokset:
- Korvaa puuttuvat sisäänrakennetut paketit eksplisiittisillä ympäristöriippuvuuksilla.
- Päivitä tai korvaa paketteja, jotka eivät tue Python 3.13:aa, Java 21:tä, Scala 2.13:aa tai Azure Linux 3.0:aa.
- Rakenna uudelleen omat JAR-tiedostot ja natiivibinäärit.
- Päivitys poisti PySpark- ja pandas-API:n Spark-kutsuista.
- Vaihda
EventHubConnectorKafka-liittimeen. - Poista Spark-asetukset konfiguraatioista, joita ei ole saatavilla Runtime 2.0:ssa, ja tarkista nimenomaiset ohitukset asetuksista, joiden oletusasetukset ovat muuttuneet.
- Ratkaise Spark SQL:n käyttäytymiserot koodissa sen sijaan, että luottaisit pysyvästi vanhoihin asetuksiin.
- Pidä olemassa olevat Delta-taulukon ominaisuudet ja protokollat ennallaan tämän vaiheen aikana.
4. Suorita yhteensopivuus- ja regressiotestit
Suorita samat edustavat syötteet Runtime 1.3:ssa ja Runtime 2.0:ssa. Verrata:
- Suoritustila, lokit, varoitukset ja kokeilut.
- Skeemat ja tietotyypit.
- Rivitasoiset ja yhteenlasketut tulokset.
- Delta-taulukon historia ja protokolla.
- Suoratoiston eteneminen, tila, viive ja kaksoiskappaleiden käsittely.
- Suoritusaika, resurssien käyttö ja kustannukset.
- Downstream johtaa SQL-analytiikkapäätepisteeseen, Power BI:hen, putkistoihin ja muihin kuluttajiin.
Sisällytä epäonnistumis- ja palautustestit, ei pelkästään onnistuneita suorituksia. Testisessioiden uudelleenkäynnistykset, tehtävien uudelleenkertoimit, tarkistuspisteen palautus ja samanaikainen taulukkokäyttö.
5. Käynnistä Runtime 2.0
Siirrä työkuormat hallituissa erissä:
- Julkaise validoitu Runtime 2.0 -ympäristö.
- Liitä se pieneen tuotantomuistikirjoihin tai Spark-tehtävämääritelmiin.
- Aja erä ja seuraa ulostuloja sekä loppuvirran kuluttajia.
- Jatka jäljellä olevien työkuormien kanssa havainnointijakson jälkeen.
- Aseta Runtime 2.0 työtilan oletusarvoksi vasta, kun yksikkötason migraatio on valmis.
Työtilan ajonajan muuttaminen vaikuttaa uusiin Spark-sessioihin. Olemassa olevat sessiot käyttävät nykyistä suoritusaikaansa kunnes ne loppuvat.
6. Pidä palautuspolku
Pidä Runtime 1.3 -ympäristö, artefaktit, kirjaston spesifikaatiot ja suoratoiston tarkistuspisteet Runtime 2.0:n havainnointijakson loppuun asti. Peruuttaaksesi taaksepäin, liitä Runtime 1.3 -ympäristö uudelleen tai palauta aiempi työtilan ajonaika ja aloita uusi Spark-istunto.
Important
Delta-protokollan päivitys ei yleensä ole palautettavissa. Älä ota käyttöön taulukkoominaisuuksia, jotka nostavat protokollaa, ennen kuin olet suorittanut Runtime 2.0 -validoinnin ja varmistanut yhteensopivuuden jokaisen taulun kuluttajan kanssa.
Siirron tarkistusluettelo
Ennen siirtymisen suorittamista varmista, että:
- [ ] Kaikki vaaditut Python- ja R-paketit ovat nimenomaisesti saatavilla ja yhteensopivia Python 3.13:n tai R 4.5:n kanssa.
- [ ] Mukautetut JAR-tiedostot kohdistuvat Java 21:een, Scala 2.13:een ja Spark 4.1:een.
- [ ] Natiiviriippuvuudet toimivat Azure Linux 3.0:ssa.
- [ ] Työtila-, ympäristö-, muistikirja- ja Spark-tehtävien määrittelyasetukset eivät käytä poistettuja Spark-asetuksia.
- [ ] Työkuormat testataan muutettujen Runtime 2.0 Spark -konfiguraatioiden oletusten mukaan.
- [ ] Spark SQL- ja PySpark-regressiotestit läpäisevät.
- [ ] Event Hubsin työkuormat käyttävät Kafka-liitintä.
- [ ] Rakenteellinen suoratoisto -työkuormat käynnistyvät uudelleen ja palautuvat suunnitellusti.
- [ ] Delta-taulukon protokollat ja ominaisuudet pysyvät yhteensopivina kaikkien kuluttajien kanssa.
- [ ] Datan laatu, suorituskyky ja kustannustulokset täyttävät hyväksymiskriteerisi.
- [ ] Tuotannon käyttöönotto, seuranta ja palautusmenettelyt dokumentoidaan ja testataan.