Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Fabric Runtime 2.0 a legfrissebb, általánosan elérhető (GA) és alapértelmezett runtime Apache Spark munkaterhelésekhez a Microsoft Fabric-ben. Frissíti az operációs rendszert, a Java-t, Scalát, Python-t, R-t, Apache Sparkot és a Delta Lake-et. Mivel ezek közül több frissítés átlépi a főverziók határait, ellenőrizd a notebookjaidat, Spark-feladatdefinícióidat, könyvtáraidat és adatfolyamataidat, mielőtt áthelyeznéd a termelési munkaterhelést a Runtime 1.3-ról.
Ez az útmutató leírja azokat a változásokat, amelyek befolyásolhatják a migrációt, és egy szakaszos folyamatot ad a munkaterhelések Runtime 2.0-ra áthelyezéséhez.
Mi változott a Runtime 2.0-ban
Az alábbi táblázat összehasonlítja a Runtime 1.3 és Runtime 2.0 elsődleges komponenseit.
| Component | Futtatókörnyezet 1.3 | Futtatókörnyezet 2.0 | Migrációs szempontok |
|---|---|---|---|
| Kiadási szakasz | A támogatás végének bejelentése (EOSA) | GA | Migrálja az éles munkaterheléseket a támogatott GA futtatókörnyezetre. |
| Apache Spark | 3.5.5 | 4.1.1 | Nézze át a Spark 4.1 viselkedésváltozásait és az eltávolított API-kat. |
| Delta-tó | 3.2 | 4.2 | Validáld a tábla funkcióit és a protokollkompatipatibilitást minden Fabric munkaterhelésen, amely a tábláidat használja. |
| Java | 11 | 21 | Építsd újra és teszteld a Java könyvtárakat és a Java Native Interface (JNI) függőségeket. |
| Scala | 2.12.17 | 2.13.16 | Fordítsd újra a Scala JAR-fájlokat Scala 2.13-hoz. A Scala 2.12 és 2.13 artefaktumok nem bináris kompatibilisek. |
| Python | 3.11 | 3.13 | Győződjön meg róla, hogy minden Python csomag tartalmaz-e Python 3.13-kompatibilis kiadást és Linux wheelt. |
| R | 4.4.1 | 4.5.2 | Telepítsd újra és teszteld az egyedi R csomagokat. A SparkR-t elavulttá nyilvánították a Spark 4.1-ben. |
| Operációs rendszer | Azure Linux 2.0 (Mariner 2.0) | Azure Linux 3.0 (Mariner 3.0) | Újjáépítsd a natív könyvtárakat és egyedi binárokat Azure Linux 3.0-hoz. |
A Runtime 2.0 új Apache Spark 4.1 képességeket is kínál, beleértve a VARIANT adattípust, SQL felhasználó által definiált függvényeket, munkamenetváltozókat, csőszintaxist, karakterlánc-kollációt, a Python Data Source API-t, a Python felhasználó által definiált táblafunkciókat, egységes PySpark profilozást, valamint új Strukturált Streaming állapotkezelő és hibakeresési API-kat. Az áttekintésért lásd: Runtime 2.0 a Fabricben.
Kompatibilitási változások áttekintése
Nézze át a következő területeket, mielőtt átváltja a munkaterületet vagy környezetet Runtime 2.0-ra.
Beépített és egyedi könyvtárak
A Runtime 2.0 eltávolít több előre telepített Python és R csomagot, amelyek a Runtime 1.3-ban elérhetők voltak. Az alapértelmezett csomagkészlet csökkentése karcsún tartja a futtatókörnyezetet, és csökkenti a lehetséges biztonsági kockázatok támadási felületét. Egy olyan csomagot, amely konfiguráció nélkül volt elérhető a Runtime 1.3-ban, kifejezetten hozzá kell adni a Runtime 2.0 környezetedhez.
Használd a Library Managert, hogy csak azokat a csomagokat add hozzá, amiket a munkafolyamat igényel, majd mentsd és tedd közzé a környezetet. A Könyvtárkezelő kezeli a csomag szükséges függőségeit, ezért ne adj hozzá minden függőséget külön a következő jegyzékekhez. Ne feltételezd, hogy egy programkönyvtár elérhető, vagy hogy a verziója változatlan:
- Hasonlítsd össze a Runtime 1.3 és Runtime 2.0 csomagkészleteket a Fabric runtime releases repository-ban.
- Hozzáadj hiányzó PyPI, Conda, Maven, R vagy egyedi könyvtárakat egy környezetbe, és tüntesd közzé.
- Rögzítse a verziókat a gyártási számítási feladatokhoz, hogy a függőségek feloldása megismételhető legyen.
- Ellenőrizze, hogy a Python csomagok támogatják a Python 3.13-at. A natív kiterjesztéssel rendelkező csomagoknak kompatibilis Linux wheelt kell biztosítaniuk, vagy sikeresen kell lefordulniuk Azure Linux 3.0 alatt.
- Cseréld le a Scala 2.12 függőségeket Scala 2.13 artefaktumokra. Az artefaktumok nevei általában tartalmazzák a Scala bináris változatát, például
_2.12vagy_2.13. - Fordítsd újra az egyedi JAR-fájlokat Java 21-re, Scala 2.13-ra és Spark 4.1-re. Tesztelje a tranzitív függőségeket a futásidő által biztosított könyvtárakkal való ütközések szempontjából.
- Újjáépítsd az egyedi natív könyvtárakat Azure Linux 3.0-hoz.
A Fabric migrálja a könyvtárspecifikációkat, amikor megváltoztatod egy meglévő környezet futásidejét, de nem garantálja, hogy ezek a könyvtárspecifikációk kompatibilisek maradnak. A közzététel akkor bukik el, ha a függőségfeloldás ütközést talál. A csomagtelepítési lehetőségekről és közzétételi módokról lásd: Könyvtárak kezelése Fabric környezetekben.
Az alapértelmezett környezetből eltávolított csomagok
Az alábbi jegyzékek tartalmazzák a felhasználó számára látható csomagokat és azok alacsony szintű vagy tranzitív függőségeit. Keress ezekben a listákban, hogy megtaláld azokat a csomagokat, amelyeket a Runtime 1.3 számítási feladata használ. Ha egy csomag szerepel, adj hozzá egy Python 3.13-kompatibilis vagy R 4.5-kompatibilis verziót a Könyvtárkezelőn keresztül a Runtime 2.0 környezetedben.
Python környezet: 348 Conda csomag
| 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 környezet: 24 pip csomag
| 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 környezet: 67 Conda csomagok
| 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
Ha a kimenő hozzáférésvédelem vagy egy menedzselt virtuális hálózat megakadályozza a nyilvános tárakhoz való hozzáférést, töltsd le a kompatibilis wheel fájlokat, vagy üzemeltess egy csomagtükröt. Az utasításokért lásd: Könyvtárak kezelése korlátozott hálózati hozzáféréssel a Fabric-ben.
Spark konfigurációs módosítások
A runtime 2.0 hozzáadja és eltávolítja a Spark beállításokat, valamint néhány alapértelmezett értéket megváltoztat. A Fabric bizonyos beállításokhoz eltérő alapértelmezéseket használ az Apache Spark-tól.
Migráció előtt nézze át a Spark beállításait, amelyeket a munkaterületeihez, környezeteihez, jegyzetfüzeteihez és Spark-feladatdefinícióihoz konfigurált. Távolítsd el azokat a beállításokat, amelyek már nem támogatottak, és teszteld azokat a munkaterheléseket, amelyek a megváltozott alapértelmezett beállításokra támaszkodnak. Használd a runtime alapértelmezetteket, hacsak a dokumentáció nem utasít egy beállítás megváltoztatására.
Jelentős alapértelmezett értékváltozások
Az alábbi táblázat a kiválasztott alapállapot változásait sorolja fel. Nincs beállítva azt jelenti, hogy az alapvonal nem ad meg kifejezetten értéket; ez nem jelenti azt, hogy a funkció le van tiltva.
| Configuration | Runtime 1.3 értéke | Runtime 2.0 értéke | Migrációs szempontok |
|---|---|---|---|
spark.checkpoint.compress |
false |
true |
A checkpointfájlok alapértelmezés szerint tömörítettek. Ellenőrizd az ellenőrzőpontok interoperabilitását és tárolási viselkedését. |
spark.databricks.delta.optimizeWrite.enabled |
true |
Nincs beállítva | A tulajdonság nincs eltávolítva. Ellenőrizd az optimalizált írás működését a tábla, a munkamenet és az erőforrás-profil beállításaival. |
spark.databricks.delta.optimizeWrite.partitioned.enabled |
false |
true |
Validáld az írási átbocsátóképességet és a kimeneti fájlméreteket particionált Delta-táblákhoz. |
spark.hadoop.parquet.block.size |
1073741824 (1 GiB) |
134217728 (128 MiB) |
A Parquet írók kisebb blokkokat céloznak meg. Validáld a fájlméreteket és a downstream olvasási teljesítményt. |
spark.microsoft.delta.optimize.fast.enabled |
false |
true |
OPTIMIZE Kihagyhatja a munkát, hacsak a fájlszám vagy a becsült tömörítési méret feltételei nem teljesülnek. Ellenőrizd a karbantartási eredményeket. |
spark.microsoft.delta.optimize.fileLevelTarget.enabled |
false |
true |
Azok a fájlok, amelyek korábban legalább a kompaktálási célméretük felét elérték, nem lesznek újra kompaktálva. Validáld a fájlelrendezést a(z) OPTIMIZE után. |
spark.microsoft.delta.targetFileSize.adaptive.enabled |
false |
true |
A Delta a tábla mérete alapján számolja ki a célfájl méretét. Validáld a kapott fájlméreteket és az olvasási teljesítményt. |
spark.speculation.multiplier |
1.5 |
3 |
Egy feladatnak háromszor lassabbnak kell lennie, mint a medián, mielőtt a Spark spekulatív végrehajtásra fontolóra venné. |
spark.speculation.quantile |
0.75 |
0.9 |
A Spark megvárja, hogy a feladatok 90%-a befejeződjön, mielőtt spekulatív végrehajtást fontolóra venne. |
spark.sql.files.maxPartitionBytes |
134217728 (128 MiB) |
536870912 (512 MiB) |
A fájlvizsgálat több adatot is becsomagolhat minden partícióba. Validáld a párhuzamosságot és az executor memória használatát. |
spark.sql.maxSinglePartitionBytes |
Long.MaxValue |
128m |
Egy partíció alapértelmezés szerint 128 MiB-re korlátozott. Validálja azokat a lekérdezéseket, amelyek nagy egyedi partíciókat eredményeznek. |
spark.sql.orc.compression.codec |
snappy |
zstd |
Az új ORC írások alapértelmezés szerint Zstandard tömörítést használnak. Ellenőrizd a kompatibilitást és a teljesítményt a későbbi olvasókkal. |
spark.sql.sources.v2.bucketing.enabled |
false |
true |
A Spark alapértelmezett módon lehetővé teszi a tároló szerint particionált illesztéseket és más Data Source V2 bucketing viselkedést. Ellenőrizd a lekérdezési terveket és eredményeket. |
spark.sql.sources.v2.bucketing.pushPartValues.enabled |
false |
true |
A Spark kompatibilis partíciós értékeket képes továbbítani a Data Source V2 bucketinghez. Validáld a bucketed table-k lekérdezési terveit. |
A Runtime 2.0 is a(z) spark.shuffle.service.db.backend esetén a(z) LEVELDB helyett a(z) ROCKSDB elemet használja, és a(z) spark.shuffle.service.removeShuffle értékét true értékre állítja. A Spark a külső shuffle szolgáltatást használja arra, hogy törölje a felszabadított végrehajtókhoz tartozó felesleges shuffle blokkokat.
A Delta párhuzamos pillanatkép-betöltés, a párhuzamos adatkihagyás és az illesztőprogram-oldali pillanatkép-betöltés is true értékről false értékre változik. Tesztelje a lekérdezések késleltetését és az illesztőprogram-erőforrás-használatot, különösen olyan lekérdezéseknél, amelyek több Delta táblához férnek hozzá.
Session-start felülbírálások és natív végrehajtás
A Fabric funkcióbevezetései felülírhatják az alapértékeket egy munkamenet indításakor.
| Configuration | Runtime 2.0 alapérték | Runtime 2.0 munkamenet-indítási érték nyilvános éles régiókban | Migrációs szempontok |
|---|---|---|---|
spark.gluten.sql.columnar.costBasedFallback.enabled |
false |
true |
A 2026. október 16-án rögzített produkciós bevezetés költségalapú visszaállást tesz lehetővé a Sparkra. Ellenőrizd újra a lekérdezési terveket és a teljesítményt, beleértve a bevezetés előtt tesztelt munkaterheléseket is. |
spark.sql.parquet.native.writer.complexTypes.enabled |
false |
true |
Teszteld a natív Parquet írásokat és downstream olvasásokat tömbök, térképek és struktúrák esetében. |
Amikor a natív végrehajtó motort használod, a következő ellenőrzéseket vedd fel a regressziós tesztek közé:
- Validáld a memóriahasználatot úgy, hogy a oszlopos batch-méret alapértelmezett értéke 4 096-ról 10 240-re nő.
- Hasonlítsa össze a keverési terveket és a teljesítményt, amikor a rendezésalapú oszlopos keverés küszöbértéke 100 000-ről 4 000 partícióra csökken.
- Hasonlítsa össze a reguláriskifejezés-találatokat és a teljesítményt. A natív motoros Java regex támogatása letiltottról engedélyezettre változik, és az a beállítás, amely az összes regex kifejezést a Sparkra irányítja vissza,
false-róltrue-re változik.
Az Apache Spark 4.1 alapértelmezett beállításai eltérően megmaradnak a Fabric-ben
A Fabric Runtime 2.0 szándékosan felülírja a következő Apache Spark 4.1 alapértelmezéseit. Ne feltételezd, hogy egy Spark 4.1 alapértelmezés változatlan módon érvényes a Fabric-ben.
| Configuration | Apache Spark 4.1 alapértelmezett | Fabric Runtime 2.0 érték |
|---|---|---|
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 és DataFrame viselkedése
A Spark 4.1 viselkedésváltozásokat vezet be, amelyek megváltoztathatják a lekérdezések eredményeit, vagy a korábban elfogadott lekérdezések meghiúsulhatnak. Különös figyelmet fordítson az ANSI SQL viselkedésére, castokra, dátum- és időbélyeg-műveletekre, adattípusokra, JDBC leképezésekre és elavult SQL konfigurációkra.
Futtasson regressziós teszteket, amelyek összehasonlítják:
- Kimeneti sémák, beleértve a típust, pontosságot, skálát és nullázhatóságot.
- Sorok száma és összesített eredmények.
- Nullérték, túlcsordulás, nullával osztás és érvénytelen típuskonverzió viselkedése.
- Dátum, időbélyeg, időzóna és intervallum eredmények.
- JDBC forrás- és nyelő típusú leképezések.
- Lekérdezési tervek és teljesítmény kritikus munkaterhelések esetén.
Ne használd az örökölt kompatibilitási beállításokat végleges migrációs stratégiaként. Ha ideiglenesen használsz egyet egy hiba izolálására, frissítsd az érintett kódot, és távolítsd el a beállítást, mielőtt befejezed a migrációt. A viselkedésváltozások teljes halmazához lásd a Spark SQL migrációs útmutatóját.
Python és pandas API a Spark-en
A Runtime 2.0 átlép a Python 3.11-ről a Python 3.13-ra, és tartalmazza a Spark 4.1-ben bevezetett PySpark változásokat. A Spark 4.1 emeli a pandas, NumPy és PyArrow minimális támogatott verzióit is, és eltávolítja azokat az API-kat, amelyek korábbi kiadásokban elavultak.
A Sparkon futó közös pandas API frissítései a következők:
- Cseréld le a(z)
DataFrame.iteritemsésSeries.iteritemselemet erre:items. - Cseréld le a
DataFrame.appendésSeries.appendelemet erre:ps.concat. - A kategóriaműveletek eltávolított
inplaceparamétereit hozzárendelésekkel helyettesítse. - Átvizsgálja a módosított paraméterneveket és alapértelmezéseket, például
inclusiveésSeries.str.replace(regex=...). - Validáld az eredményoszlop neveit, indexneveket, dtype-okat és sorrendet.
A teljes listáért lásd a PySpark migrációs útmutatót.
Java és Scala alkalmazások
A Scala 2.13 nem bináris kompatibilis a Scala 2.12-vel. Egy Runtime 1.3 JAR újrahasználata a Runtime 2.0-ban osztálybetöltési hibákat okozhat, még akkor is, ha a forráskód nem változott. Építs egy külön Runtime 2.0 artefaktumot, és frissítsd az összes Scala cross-built függőséget.
A Spark 4.1 a belső servlet API-hivatkozásait is javax-ról jakarta-re változtatja. Nézd át az egyedi figyelőket, Spark kiterjesztéseket és könyvtárakat, amelyek a Spark belső elemeivel lépnek kapcsolatba. További motor szintű változásokért lásd a Spark Core migrációs útmutatót.
Streaming számítási feladatok és csatlakozók
A Runtime 1.3-ban található elavult EventHubConnector változat nem elérhető a Runtime 2.0-ban. Használd az Apache Spark Kafka connectort az Azure Event Hubshoz való Kafka-kompatibilis végponttal. A beállítással kapcsolatos útmutatásért lásd: Use Apache Spark with Azure Event Hubs for Apache Kafka.
Az alkalmazható forgatókönyvek esetén a Fabric eventstreamet is kiértékelheted streamingadatok betöltésére és azok egy jegyzetfüzetben, a Spark Structured Streaming használatával történő feldolgozására. További információért lásd: Query eventstream in Microsoft Fabric from a notebook with Spark Structured Streaming.
Minden egyes strukturáltstreaming-feladat esetén:
- Tesztelje, hogy a Runtime 2.0 lekérdezés újraindulhat-e a meglévő felvételi pont másolatáról.
- Validálja az állapottartó műveleteket, eseményidős vízjeleket, triggereket, forrás- és sink opciókat, valamint kimeneti sémákat.
- Tartsd elérhetővé a forrásadatokat és az eredeti ellenőrzőpontot, amíg a validálás befejeződik.
- Ha egy ellenőrzőpont nem kompatibilis, tervezz egy kontrollált újraindítást egy új ellenőrzőponttal. Számolj az újrajátszott vagy kihagyott bemenetekkel, és tedd a sinket idempotenssé újraindítás előtt.
Nézd át a Strukturált Streaming migrációs útmutatót az upstream kompatibilitási változásokkal kapcsolatban.
Delta Lake-táblák
A Delta Lake visszafelé kompatibilitást tart fenn a meglévő táblákkal, így a Runtime 2.0 képes működni a Runtime 1.3 által létrehozott táblákkal. Azonban egy újabb táblázatfunkció engedélyezése növelheti a táblázat olvasó- vagy írói protokollját, és megakadályozhatja, hogy a régebbi motorok vagy más Fabric-felületek használják a táblát.
A kezdeti futtatáskori migráció során:
- Ne frissítsd a táblaprotokollokat, és ne engedélyezd a Delta Lake 4.2 funkcióit.
- Vizsgálja meg az újonnan létrehozott táblák, valamint a meglévő táblák funkcióit és protokollverzióit. A Runtime 2.0 a(z)
spark.databricks.delta.properties.defaults.enableDeletionVectorsértékéttrue-ra állítja; ehelyett ellenőrizze a kapott tábla metaadatait, ahelyett, hogy feltételezné, hogy a kézi funkcióengedélyezés elkerülése megőrzi a kompatibilitást. - Tesztolvasások, írások, összevonások, sémaevolúció, karbantartási műveletek és egyidejű hozzáférés.
- Azonosítsd az összes motort, amely minden táblát olvas vagy ír, beleértve az SQL analitikai végpontot, a Power BI-t, a pipeline-okat, adatfolyamokat, eseményfolyamokat és külső motorokat.
- Az új Delta funkciót csak akkor engedélyezd, ha minden fogyasztó támogatja.
A Delta Lake 4.2-re jellemző funkciók kísérleti jellegűek a Fabricben, és csak a Spark-környezetekre korlátozódnak. A támogatási mátrixról és az alapértelmezett protokollverziókról lásd: Delta Lake táblaformátum-interoperabilitás.
Migrálja a munkaterheléseit
Használj szakaszos migrációt ahelyett, hogy azonnal megváltoztatnád az éles munkaterület futási idejét.
1. Készíts leltárt a Runtime 1.3 munkaterheléseiről
Jegyezze fel a következő adatokat:
- Jegyzetfüzetek, Spark feladatdefiníciók, pipeline-ok, ütemezések és függő elemek.
- Munkaterületi és elemszintű környezeti kiosztások.
- A Spark konfigurációk, beleértve a régi kompatibilitási beállításokat.
- Nyilvános, privát és egyedi könyvtárak és azok feloldott verziói.
- Egyedi JAR fájlok, Python wheel csomagok, R csomagok, natív könyvtárak és inicializációs logika.
- Adatforrások, célok, titkos kulcsok, kapcsolatok és hálózati követelmények.
- Delta-táblák és e táblák minden nem Spark-felhasználója.
- Streaming ellenőrzőpontok, sémák, eltolások és helyreállítási követelmények.
- Várható kimeneti sémák, a sorok száma, adatminőség-ellenőrzések és teljesítményalapok.
Priorizálja azokat a munkaterheléseket, amelyek egyedi könyvtárakat, natív kódot, Scalát, streaming állapotot vagy fejlett Delta funkciókat használnak.
2. Hozz létre egy Runtime 2.0 tesztkörnyezetet
Hozzon létre egy külön környezeti elemet, és válassza ki a(z) 2.0-t (Spark 4.1, Delta 4.2) futásidőként. Add hozzá a szükséges könyvtárakat, mentsd meg a környezetet, és tüntesd közzé. Csatolja a környezetet reprezentatív notebookok és Spark-feladatdefiníciók másolataihoz egy fejlesztői vagy tesztelési munkaterületen.
Ha a termelési munkaterületed még mindig a Runtime 1.3-at használja, ne változtasd meg a Runtime verzióját, amíg a tesztelés be nem fejeződik. A meglévő konfigurációja maradjon elérhetővé a visszaállításhoz az ellenőrzés során.
A közelgő Runtime 2.0 frissítések ellenőrzéséhez, mielőtt azok elérnék az alapértelmezett csatornát, használd a tesztkörnyezeted korai hozzáférésű kiadási csatornáját. További információért lásd a Fabric runtime release csatornáit.
3. Frissítsék a könyvtárakat és a kódot
Alkalmazza a kompatibilitási felülvizsgálatban azonosított változásokat:
- Cseréld ki a hiányzó beépített csomagokat explicit környezetfüggőségekkel.
- Frissítsd vagy cseréld ki azokat a csomagokat, amelyek nem támogatják a Python 3.13-at, a Java 21-et, a Scala 2.13-at vagy az Azure Linux 3.0-at.
- Építs újra egyedi JAR-fájlokat és natív binárisokat.
- A frissítés eltávolította a PySpark- és pandas API on Spark-hívásokat.
- Cseréld le a
EventHubConnectorelemet Kafka csatlakozóra. - Távolítsd el a Spark beállításait olyan konfigurációktól, amelyek nem érhetők el a Runtime 2.0-ban, és nézd át azoknak a konfigurációknak a kifejezett felülbírálásait, amelyek alapértelmezett értékei megváltoztak.
- Oldd meg a Spark SQL viselkedésbeli különbségeit a kódban ahelyett, hogy véglegesen a régi beállításokra hagyatkozz.
- Tartsd meg a meglévő Delta tábla funkcióit és protokolljait változatlanul ebben a fázisban.
4. Futtass kompatibilitási és regressziós teszteket
Ugyanazokat a reprezentatív bemeneteket futtasd Runtime 1.3-on és Runtime 2.0-n. Összehasonlít:
- Teljesítési állapot, naplók, figyelmeztetések és újrapróbálkozások.
- Sémák és adattípusok.
- Sorszintű és összesített eredmények.
- Delta table előzményei és protokollja.
- streamelési előrehaladás, állapot, késleltetés és duplikátumkezelés.
- Végrehajtási idő, erőforrás-felhasználás és költség.
- Az SQL analitikai végpontban, a Power BI-ban, a folyamatokban és más felhasználóknál jelentkező eredmények.
Tartalmazzon sikertelen és helyreállítási teszteket, ne csak sikeres futásokat. Tesztalkalom újraindítása, feladat újrapróbálkozásai, ellenőrzőpontból való helyreállítás és párhuzamos táblázat-hozzáférés.
5. Vezesd be a Runtime 2.0-t
A workloadok áthelyezése kontrollált adagokban:
- Tedd közzé a validált Runtime 2.0 környezetet.
- Csatold egy kisebb halmazához az éles notebookoknak vagy a Spark feladatdefinícióknak.
- Futtasd a köteget, és figyeld a kimeneteket, valamint a lejjebb lévő fogyasztókat.
- A megfigyelési időszak után folytassuk a fennmaradó munkafolyamatokkal.
- Állítsd be a Runtime 2.0-t a munkaterület alapértelmezéseként csak az item szintű migráció befejezése után.
A munkaterület futási idejének módosítása az új Spark-munkameneteket érinti. A meglévő munkamenetek addig használják a jelenlegi futtatókörnyezetet, amíg véget nem érnek.
6. Biztosíts visszaállítási lehetőséget
Tartsd meg a Runtime 1.3 környezetet, az artefaktumokat, könyvtárspecifikációkat és a streaming ellenőrzőpontokat, amíg a Runtime 2.0 megfigyelési időszak véget nem ér. A visszalépéshez csatlakozzon újra a Runtime 1.3 környezethez, vagy állítsa vissza a korábbi munkaterület futtatókörnyezetét, és indítson új Spark-munkamenetet.
Important
A Delta protokoll frissítése általában nem visszafordítható. Ne engedélyezd azokat a táblázatfunkciókat, amelyek megemelik a protokollverziót, amíg nem fejezted be a Runtime 2.0 ellenőrzést, és meg nem erősítetted az összes táblafogyasztóval való kompatibilitást.
Migrálási ellenőrzőlista
A migráció befejezése előtt erősítse meg, hogy:
- [ ] Minden szükséges Python és R csomag kifejezetten elérhető és kompatibilis a Python 3.13-mal vagy R 4.5-tel.
- [ ] Egyedi JAR fájlok a Java 21-et, a Scala 2.13-at és a Spark 4.1-et célozzák meg.
- [ ] A natív függőségek működnek az Azure Linux 3.0-n.
- [ ] A munkaterület, környezet, notebook és Spark munkadefiníció beállításai nem használják a eltávolított Spark konfigurációkat.
- [ ] A munkafolyamatokat a módosított Runtime 2.0 Spark konfiguráció alapértelmezetei alapján teszteljük.
- [ ] A Spark SQL és PySpark regressziós tesztek átmennek.
- [ ] Az Event Hubs munkaterhelései a Kafka csatlakozót használják.
- [ ] A strukturált streaming munkafolyamatok újraindulnak és helyreállnak a tervezett módon.
- [ ] A delta tábla protokollok és funkciók minden klienssel kompatibilisek maradnak.
- [ ] Az adatminőség, teljesítmény és költségek megfelelnek az elfogadási feltételeknek.
- [ ] A termelés bevezetése, monitorozása és visszalépési eljárásai dokumentálva és tesztelve vannak.