Migrálás a Fabric Runtime 1.3-ról a Runtime 2.0-ra

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.12 vagy _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ól true-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 és Series.iteritems elemet erre: items.
  • Cseréld le a DataFrame.append és Series.append elemet erre: ps.concat.
  • A kategóriaműveletek eltávolított inplace paramétereit hozzárendelésekkel helyettesítse.
  • Átvizsgálja a módosított paraméterneveket és alapértelmezéseket, például inclusive és Series.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ét true-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:

  1. Cseréld ki a hiányzó beépített csomagokat explicit környezetfüggőségekkel.
  2. 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.
  3. Építs újra egyedi JAR-fájlokat és natív binárisokat.
  4. A frissítés eltávolította a PySpark- és pandas API on Spark-hívásokat.
  5. Cseréld le a EventHubConnector elemet Kafka csatlakozóra.
  6. 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.
  7. 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.
  8. 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:

  1. Tedd közzé a validált Runtime 2.0 környezetet.
  2. Csatold egy kisebb halmazához az éles notebookoknak vagy a Spark feladatdefinícióknak.
  3. Futtasd a köteget, és figyeld a kimeneteket, valamint a lejjebb lévő fogyasztókat.
  4. A megfigyelési időszak után folytassuk a fennmaradó munkafolyamatokkal.
  5. Á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.