Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Fabric Runtime 2.0 je najnovšia všeobecne dostupná (GA) a predvolená runtime pre pracovné zaťaženia Apache Spark v Microsoft Fabric. Aktualizuje operačný systém: Java, Scala, Python, R, Apache Spark a Delta Lake. Keďže niektoré z týchto aktualizácií prekračujú hranice hlavných verzií, overte si svoje notebooky, definície úloh v Spark, knižnice a dátové pipeline ešte predtým, než presuniete produkčné pracovné záťaže z Runtime 1.3.
Tento sprievodca popisuje zmeny, ktoré môžu ovplyvniť migráciu, a poskytuje stupňovitý proces na presun vašich pracovných záťaží do Runtime 2.0.
Čo sa zmenilo v Runtime 2.0
Nasledujúca tabuľka porovnáva hlavné komponenty v Runtime 1.3 a Runtime 2.0.
| Component | Runtime 1.3 | Runtime 2.0 | Úvahy o migrácii |
|---|---|---|---|
| Fáza vydania | Oznámený koniec podpory (EOSA) | GA | Migrujte produkčné pracovné záťaže do podporovaného GA runtime. |
| Apache Spark | 3.5.5 | 4.1.1 | Skontrolujte zmeny správania Spark 4.1 a odstránené API. |
| Jazero Delta | 3,2 | 4.2 | Overujte funkcie tabuliek a kompatibilitu protokolov naprieč každou Fabric záťažou, ktorá používa vaše tabuľky. |
| Java | 11 | 21 | Prebudujte a testujte Java knižnice a závislosti Java Native Interface (JNI). |
| Scala | 2.12.17 | 2.13.16 | Prekompilujte Scala JAR súbory pre Scala 2.13. Artefakty zo Scala 2.12 a 2.13 nie sú binárne kompatibilné. |
| Pytón | 3.11 | 3.13 | Overte si, že každý Python balík poskytuje verziu kompatibilnú s Python 3.13 a Linuxové koleso. |
| R | 4.4.1 | 4.5.2 | Preinštalujte a otestujte vlastné R balíky. SparkR je v Spark 4.1 zastaraný. |
| Operačný systém | Azure Linux 2.0 (Mariner 2.0) | Azure Linux 3.0 (Mariner 3.0) | Prebudujte natívne knižnice a vlastné binárky pre Azure Linux 3.0. |
Runtime 2.0 tiež prináša nové možnosti Apache Spark 4.1, vrátane VARIANT dátového typu, SQL používateľsky definovaných funkcií, relácií, syntaxe potrubia, kolácie reťazcov, Python Data Source API, Python používateľsky definovaných tabulových funkcií, jednotného profilovania PySpark a nových API pre správu stavu a ladenie štruktúrovaného streamovania. Pre prehľad pozri Runtime 2.0 v Fabric.
Zmeny kompatibility recenzií
Pred zmenou pracovného priestoru alebo prostredia na Runtime 2.0 si prejdite nasledujúce oblasti.
Vstavané a vlastné knižnice
Runtime 2.0 odstraňuje niekoľko predinštalovaných balíkov pre Python a R, ktoré boli dostupné v Runtime 1.3. Zníženie predvolenej sady balíkov udržiava runtime štíhy a znižuje plochu pre potenciálne bezpečnostné incidenty. Balík, ktorý bol dostupný bez konfigurácie v Runtime 1.3, mohol byť potrebný explicitne pridať do vášho prostredia Runtime 2.0.
Použite Library Manager na pridanie len balíkov, ktoré vaša záťaž vyžaduje, a potom uložte a publikujte prostredie. Library Manager rieši požadované závislosti balíka, preto nepridávajte každú závislosť do nasledujúcich inventárov zvlášť. Nepredpokladajte, že knižnica je dostupná alebo že jej verzia zostáva nezmenená:
- Porovnajte inventáre balíkov Runtime 1.3 a Runtime 2.0 v repozitári runtime releases Fabric.
- Pridajte chýbajúce knižnice PyPI, Conda, Maven, R alebo vlastné knižnice do prostredia a publikujte ho.
- Pripnite verzie pre produkčné záťaže, aby bolo riešenie závislostí opakovateľné.
- Potvrď, že balíky Python podporujú Python 3.13. Balíky s natívnymi rozšíreniami musia poskytovať kompatibilné koleso s Linuxom alebo úspešne zostaviť na Azure Linux 3.0.
- Nahraďte závislosti Scala 2.12 artefaktmi zo Scala 2.13. Názvy artefaktov bežne zahŕňajú binárnu verziu Scala, ako
_2.12napríklad alebo_2.13. - Prekompilujte vlastné JAR súbory proti Java 21, Scala 2.13 a Spark 4.1. Testujte tranzitívne závislosti na konflikty s knižnicami poskytovanými v runtime.
- Prebudujte vlastné natívne knižnice pre Azure Linux 3.0.
Fabric migruje špecifikácie knižníc, keď zmeníte runtime existujúceho prostredia, ale nemôže zaručiť, že tieto knižnice zostanú kompatibilné. Publikovanie zlyháva, keď riešenie závislostí nájde konflikt. Pre možnosti inštalácie balíkov a režimy publikovania pozri Správa knižníc v Fabric prostrediach.
Balíky odstránené z predvoleného prostredia
Nasledujúce inventáre zahŕňajú balíky určené pre používateľa a ich nízkoúrovňové alebo tranzitívne závislosti. Vyhľadajte v týchto zoznamoch balíky, ktoré používa vaša pracovná záťaž Runtime 1.3. Ak je balík uvedený, pridajte verziu kompatibilnú s Python 3.13 alebo R 4.5 cez Library Manager vo vašom Runtime 2.0 prostredí.
Python prostredie: 348 Conda balíkov
| Balík | Balík | Balík | Balík |
|---|---|---|---|
_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 prostredie: 24 pip balíkov
| Balík | Balík | Balík | Balík |
|---|---|---|---|
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 prostredie: 67 Conda balíkov
| Balík | Balík | Balík | Balík |
|---|---|---|---|
_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
Ak ochrana odchádzajúceho prístupu alebo spravovaná virtuálna sieť bráni prístupu k verejným repozitárom, stiahnite si kompatibilné súbory kolies alebo hostujte zrkadlo balíkov. Pre inštrukcie pozri Spravovať knižnice s obmedzeným prístupom k sieti v Fabric.
Zmeny konfigurácie iskry
Runtime 2.0 pridáva a odstraňuje nastavenia Spark a mení niektoré predvolené hodnoty. Fabric tiež používa iné predvolené nastavenia ako Apache Spark pre niektoré nastavenia.
Pred migráciou si skontrolujte nastavenia Sparku, ktoré ste nastavili pre svoje pracovné priestory, prostredia, notebooky a definície úloh v Sparku. Odstráňte nastavenia, ktoré už nie sú podporované, a otestujte pracovné záťaže, ktoré sa spoliehajú na zmenené predvolené nastavenia. Používajte runtime predvolené nastavenia, pokiaľ dokumentácia neodporúča zmeniť nastavenie.
Významné zmeny predvolených hodnôt
Nasledujúca tabuľka uvádza vybrané základné zmeny. Nenastavené znamená, že základná hodnota explicitne nenastavuje hodnotu; neznamená to, že je funkcia deaktivovaná.
| Konfigurácia | Hodnota Runtime 1.3 | Hodnota Runtime 2.0 | Úvahy o migrácii |
|---|---|---|---|
spark.checkpoint.compress |
false |
true |
Súbory kontrolných bodov sú štandardne komprimované. Overte interoperabilitu kontrolných bodov a správanie úložiska. |
spark.databricks.delta.optimizeWrite.enabled |
true |
Nie je nastavené | Nehnuteľnosť nie je odstránená. Overte efektívne správanie optimalizovaného zápisu pomocou nastavení tabuľky, relácie a profilu zdrojov. |
spark.databricks.delta.optimizeWrite.partitioned.enabled |
false |
true |
Overiť priepustnosť zápisu a veľkosť výstupných súborov pre rozdelené tabuľky Delta. |
spark.hadoop.parquet.block.size |
1073741824 (1 GiB) |
134217728 (128 MiB) |
Parketoví spisovatelia cielia na menšie bloky. Overujte veľkosti súborov a výkon čítania v downstreame. |
spark.microsoft.delta.optimize.fast.enabled |
false |
true |
OPTIMIZE môžu preskočiť prácu, pokiaľ nie sú splnené kritériá počtu súborov alebo odhadovanej veľkosti zhutnenia. Overte výsledky údržby. |
spark.microsoft.delta.optimize.fileLevelTarget.enabled |
false |
true |
Súbory, ktoré predtým spĺňali aspoň polovicu svojej cieľovej veľkosti zhutnenia, už nie sú kompaktované. Overte rozloženie súboru po OPTIMIZE. |
spark.microsoft.delta.targetFileSize.adaptive.enabled |
false |
true |
Delta vypočíta cieľovú veľkosť súboru na základe veľkosti tabuľky. Overte výsledné veľkosti súborov a výkon čítania. |
spark.speculation.multiplier |
1.5 |
3 |
Úloha musí bežať trikrát pomalšie ako medián, aby ju Spark zvážil na špekulatívne vykonanie. |
spark.speculation.quantile |
0.75 |
0.9 |
Spark čaká, kým sa dokončí 90% úloh, než začne uvažovať o špekulatívnom vykonaní. |
spark.sql.files.maxPartitionBytes |
134217728 (128 MiB) |
536870912 (512 MiB) |
Skenovanie súborov môže do každej partície zabaliť viac dát. Overte paralelizmus a využitie executor pamäte. |
spark.sql.maxSinglePartitionBytes |
Long.MaxValue |
128m |
Jedna partícia je predvolene obmedzená na 128 MiB. Overujte dotazy, ktoré produkujú veľké jednotlivé partície. |
spark.sql.orc.compression.codec |
snappy |
zstd |
Nové zápisy ORC používajú štandardnú kompresiu Zstandard. Overte kompatibilitu a výkon s downstream čítačkami. |
spark.sql.sources.v2.bucketing.enabled |
false |
true |
Spark predvolene umožňuje pripojenia s úložnými partíciami a ďalšie správanie Data Source V2 bucketing. Overujte plány dopytov a výsledky. |
spark.sql.sources.v2.bucketing.pushPartValues.enabled |
false |
true |
Spark dokáže posielať kompatibilné hodnoty partícií pre Data Source V2 bucketing. Overujte plány dotazov pre tabuľky v vedrách. |
Runtime 2.0 tiež používa ROCKSDB namiesto LEVELDB for spark.shuffle.service.db.backend a nastavuje spark.shuffle.service.removeShuffle na true. Spark používa externú službu zamiešania na vymazanie nepotrebných blokov zamiešania pre vyradených vykonávateľov.
Delta paralelné načítavanie snapshotov, paralelné preskakovanie dát a načítanie snapshotov na strane vodiča sa tiež menia z false na .true Testujte latenciu dotazov a využitie zdrojov ovládača, najmä pri dotazoch, ktoré pristupujú k viacerým tabuľkám Delta.
Prepísania pri začiatku relácie a natívne vykonávanie
Fabric feature rollouty môžu prepísať základné hodnoty pri začiatku relácie.
| Konfigurácia | Základná hodnota Runtime 2.0 | Hodnota začiatku relácie Runtime 2.0 v regiónoch verejnej produkcie | Úvahy o migrácii |
|---|---|---|---|
spark.gluten.sql.columnar.costBasedFallback.enabled |
false |
true |
Produkčné spustenie zaznamenané 16. októbra 2026 umožňuje nákladový návrat k Sparku. Znovu skontrolujte plány dotazov a výkon, vrátane pracovných záťaží testovaných pred nasadením. |
spark.sql.parquet.native.writer.complexTypes.enabled |
false |
true |
Testujte natívne zápisy a čítania v Parquete pre polia, mapy a štruktúry. |
Keď používate natívny výkonný engine, zahrňte do regresných testov nasledujúce kontroly:
- Overte využitie pamäte s predvolenou veľkosťou stĺpcovej dávky zvýšenou z 4 096 na 10 240.
- Porovnajte plány zamiešania a výkon s percentalným prahom stĺpcového zamiešania, ktorý klesol zo 100 000 na 4 000 partícií.
- Porovnajte výsledky pravidelných výrazov a výkon. Native-engine podpora Java regexu sa mení z vypnutý na povolený a nastavenie, ktoré všetky regex výrazy vracia späť do Spark, sa mení z
truenafalse.
Predvolené nastavenia Apache Spark 4.1 sa v Fabric uchovávajú inak
Fabric Runtime 2.0 zámerne prepisuje nasledujúce predvolené nastavenia Apache Spark 4.1. Nepredpokladajte, že predvolený Spark 4.1 sa v Fabric nezmení.
| Konfigurácia | Apache Spark 4.1 predvolený | Hodnota Fabric Runtime 2.0 |
|---|---|---|
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 |
Správanie Spark SQL a DataFrame
Spark 4.1 zavádza zmeny správania, ktoré môžu zmeniť výsledky dopytov alebo spôsobiť, že predtým prijaté dotazy zlyhajú. Venujte osobitnú pozornosť správaniu ANSI SQL, castom, operáciám s dátumovými a časovými pečiatkami, dátovým typom, JDBC mapovaniam a zastaraným SQL konfiguráciám.
Spustite regresné testy, ktoré porovnavajú:
- Výstupné schémy, vrátane typu, presnosti, škálovania a neplatnosti.
- Počet riadkov a súhrn výsledkov.
- Správanie null, overflow, delenie nulou a neplatné vyvolanie.
- Dátum, časová značka, časové pásmo a výsledky intervalov.
- JDBC mapovania zdrojov a drezových typov.
- Dotazujte sa na plány a výkon pre kritické pracovné zaťaženia.
Nepoužívajte nastavenia kompatibility starších ako trvalú migráciu. Ak ho dočasne použijete na izoláciu zlyhania, aktualizujte postihnutý kód a odstráňte toto nastavenie pred dokončením migrácie. Pre kompletný súbor zmien správania si pozrite sprievodcu migráciou SQL do Spark.
Python a pandas API na Sparku
Runtime 2.0 prechádza z Python 3.11 na Python 3.13 a obsahuje zmeny v PySparku zavedené v Spark 4.1. Spark 4.1 tiež zvyšuje minimálne podporované verzie pandas, NumPy a PyArrow a odstraňuje API, ktoré boli v predchádzajúcich verziách zastarané.
Bežné aktualizácie pandas API na Spark zahŕňajú:
- Nahradíme
DataFrame.iteritemsaSeries.iteritemszaitems. - Nahradíme
DataFrame.appendaSeries.appendzaps.concat. - Nahradiť odstránené
inplaceparametre kategóriových operácií priradeniami. - Review zmenil názvy parametrov a predvolené nastavenia, ako
inclusivenapríklad aSeries.str.replace(regex=...). - Overujte názvy výsledkov stĺpcov, názvy indexov, dtypy a poradie.
Kompletný zoznam nájdete v sprievodcovi migráciou do PySparku.
Aplikácie pre Java a Scala
Scala 2.13 nie je binárne kompatibilná so Scalou 2.12. Opätovné použitie Runtime 1.3 JAR v Runtime 2.0 môže spôsobiť chyby pri načítavaní tried, aj keď sa zdrojový kód nezmenil. Vytvorte samostatný Runtime 2.0 artefakt a aktualizujte všetky Scala cross-built závislosti.
Spark 4.1 tiež mení svoje interné referencie servlet API z javax na jakarta. Skontrolujte vlastné poslucháče, rozšírenia Spark a knižnice, ktoré interagujú s internými funkciami Sparku. Pre ďalšie zmeny na úrovni enginu si pozrite sprievodcu migráciou Spark Core.
Streamovanie pracovných záťaží a konektorov
Zastarané EventHubConnector verzie zahrnuté v Runtime 1.3 nie sú dostupné v Runtime 2.0. Použite konektor Apache Spark Kafka s Kafka-kompatibilným endpointom pre Azure Event Hubs. Pre návod na nastavenie pozri Use Apache Spark with Azure Event Hubs for Apache Kafka.
Pre relevantné scenáre môžete tiež vyhodnotiť Fabric eventstream na spracovanie streamovaných dát v notebooku so Spark Structured Streaming. Pre viac informácií pozri Query eventstream v Microsoft Fabric z notebooku so Spark Structured Streaming.
Pre každú záťaž Structured Streaming:
- Otestujte, či sa Runtime 2.0 dotaz môže reštartovať z kópie existujúceho kontrolného bodu.
- Validujte stavové operácie, vodoznaky v čase udalostí, spúšťače, možnosti zdroja a zachytávania a výstupné schémy.
- Uchovávajte zdrojové údaje a pôvodný kontrolný bod k dispozícii až do dokončenia overenia.
- Ak je kontrolný bod nekompatibilný, naplánujte kontrolovaný reštart s novým kontrolným bodom. Zohľadnite opakované alebo preskočené vstupy a nastavte drez idempotentný pred reštartom.
Prejdite si migračného sprievodcu Structured Streaming pre zmeny kompatibility vyššie.
Tabuľky Delta Lake
Delta Lake udržiava spätnú kompatibilitu pre existujúce tabuľky, takže Runtime 2.0 môže pracovať s tabuľkami vytvorenými v Runtime 1.3. Avšak povolenie novšej funkcie tabuľky môže zvýšiť protokol čítačky alebo zapisovateľa tabuľky a zabrániť používaniu tabuľky staršími enginmi alebo inými Fabric zážitkami.
Počas počiatočnej migrácie za behu:
- Neupgradujte protokoly tabuliek ani nezapájajte funkcie Delta Lake 4.2.
- Skontrolujte funkcie a protokolové verzie novo vytvorených tabuliek, ako aj existujúcich tabuliek. Runtime 2.0 nastavuje
spark.databricks.delta.properties.defaults.enableDeletionVectorsnatrue; overuje výsledné metadáta tabuliek namiesto predpokladu, že vyhýbanie sa manuálnemu povoleniu funkcií zachováva kompatibilitu. - Testovacie čítania, zápisy, zlúčenia, vývoj schémy, údržbové operácie a súbežný prístup.
- Identifikujte každý engine, ktorý číta alebo zapisuje každú tabuľku, vrátane SQL analytics endpointu, Power BI, pipelines, dataflows, eventstreamov a externých enginov.
- Novú funkciu Delta zapnite až po tom, čo ju všetci spotrebitelia podporia.
Funkcie špecifické pre Delta Lake 4.2 sú v Fabric experimentálne a obmedzené na zážitky so Spark. Pre podpornú maticu a predvolené verzie protokolu pozri interoperabilitu formátov tabuliek Delta Lake.
Migrujte svoje pracovné záťaže
Použite postupnú migráciu namiesto okamžitej zmeny runtime produkčného pracovného priestoru.
1. Inventarizujte pracovné zaťaženia Runtime 1.3
Zaznamenajte nasledujúce informácie:
- Zápisníky, definície úloh v Sparku, pipeline, harmonogramy a závislé položky.
- Priradenia prostredia na úrovni pracovného priestoru a na úrovni položiek.
- Konfigurácie Spark, vrátane všetkých nastavení kompatibility v legacy.
- Verejné, súkromné a vlastné knižnice a ich vyriešené verzie.
- Vlastné JAR súbory, Python kolieska, R balíky, natívne knižnice a inicializačná logika.
- Zdroje dát, destinácie, tajomstvá, pripojenia a požiadavky na sieť.
- Delta tabuľky a všetci ne-Spark konzumenti týchto tabuliek.
- Streamovacie kontrolné body, schémy, offsety a požiadavky na obnovu.
- Očakávané výstupné schémy, počet riadkov, kontroly kvality dát a výkonnostné základy.
Uprednostnite pracovné záťaže, ktoré používajú vlastné knižnice, natívny kód, Scalu, streamovací stav alebo pokročilé funkcie Delta.
2. Vytvoriť testovacie prostredie Runtime 2.0
Vytvorte samostatnú položku prostredia a vyberte 2.0 (Spark 4.1, Delta 4.2) ako jej runtime. Pridajte potrebné knižnice, uložte prostredie a publikujte ho. Pripojte prostredie k kópiám reprezentatívnych zápisníkov a definícií úloh v Spark pracovnom prostredí vo vývojovom alebo testovacom pracovnom priestore.
Ak váš produkčný pracovný priestor stále používa Runtime 1.3, nemeňte jeho runtime, kým testovanie nie je dokončené. Počas validácie nechajte existujúcu konfiguráciu dostupnú na vrátenie späť.
Ak chcete overiť nadchádzajúce aktualizácie Runtime 2.0 skôr, než sa dostanú na predvolený kanál, použite kanál early access release vo vašom testovacom prostredí. Viac informácií nájdete v Fabric runtime release channels.
3. Aktualizácia knižníc a kódu
Aplikujte zmeny identifikované v kontrole kompatibility:
- Nahradiť chýbajúce vstavané balíky explicitnými závislosťami prostredia.
- Aktualizujte alebo nahraďte balíky, ktoré nepodporujú Python 3.13, Java 21, Scala 2.13 alebo Azure Linux 3.0.
- Prebudujte vlastné JAR súbory a natívne binárne súbory.
- Aktualizácia odstránila PySpark a pandas API pri Spark volaniach.
- Vymeniť
EventHubConnectorkonektor Kafka. - Odstráňte nastavenia Spark pre konfigurácie, ktoré nie sú dostupné v Runtime 2.0, a skontrolujte explicitné prepísania konfigurácií, ktorých predvolené nastavenia sa zmenili.
- Vyriešiť rozdiely správania SQL v Spark v kóde namiesto trvalého spoliehania sa na staršie nastavenia.
- Počas tejto fázy nechajte existujúce funkcie a protokoly tabuľky Delta nezmenené.
4. Spustite testy kompatibility a regresie
Spustite rovnaké reprezentatívne vstupy na Runtime 1.3 a Runtime 2.0. Porovnať:
- Stav dokončenia, záznamy, varovania a opakovania.
- Schémy a dátové typy.
- Výsledky na úrovni riadkov a súhrn.
- História a protokol tabuľky Delta.
- Postup streamovania, stav, latencia a spracovanie duplikátov.
- Čas realizácie, spotreba zdrojov a náklady.
- Downstream vedie k SQL analytickému endpointu, Power BI, pipeline a ďalším spotrebiteľom.
Zahrňte testy zlyhania a zotavenia, nielen úspešné behy. Testovacia relácia sa reštartuje, opakovania úlohy, obnova kontrolných bodov a súbežný prístup k tabuľkám.
5. Spustenie Runtime 2.0
Presúvajte pracovné zaťaženia v kontrolovaných dávkach:
- Publikujte overené prostredie Runtime 2.0.
- Pripojte ho k malej sade produkčných zošitov alebo definíciám pracovných pozícií v Sparku.
- Spúšťajte batch a monitorujte výstupy a downstream spotrebiteľov.
- Pokračujte v zostávajúcich úlohách po uplynutí pozorovacieho obdobia.
- Runtime 2.0 nastavte ako predvolený pracovný priestor až po dokončení migrácie na úrovni položiek.
Zmena runtime pracovného priestoru ovplyvňuje nové Spark relácie. Existujúce relácie pokračujú v používaní svojho aktuálneho času behu, kým neprestanú.
6. Udržiavať rollback path
Ponechajte prostredie Runtime 1.3, artefakty, špecifikácie knižnice a kontrolné body streamovania až do konca pozorovacieho obdobia Runtime 2.0. Na vrátenie späť pripojte prostredie Runtime 1.3 alebo obnovte predchádzajúci runtime pracovného priestoru a začnite novú reláciu Spark.
Important
Aktualizácia protokolu Delta zvyčajne nie je vratná. Nezapájajte funkcie tabuliek, ktoré zvyšujú protokol, kým nedokončíte validáciu Runtime 2.0 a nepotvrdíte kompatibilitu so všetkými spotrebiteľmi tabuliek.
Kontrolný zoznam migrácie
Pred dokončením migrácie si overte, že:
- [ ] Každý požadovaný balík pre Python a R je explicitne dostupný a kompatibilný s Python 3.13 alebo R 4.5.
- [ ] Vlastné JAR súbory cielia na Java 21, Scala 2.13 a Spark 4.1.
- [ ] Natívne závislosti fungujú na Azure Linux 3.0.
- [ ] Nastavenia definície pracovných miest, prostredia, notebookov a Spark nepoužívajú odstránené konfigurácie Sparku.
- [ ] Pracovné záťaže sa testujú proti zmeneným predvoleným nastaveniam konfigurácie Spark v Runtime 2.0.
- [ ] Testy Spark SQL a PySpark regresie prešli.
- [ ] Záťaže Event Hubs používajú konektor Kafka.
- [ ] Záťaže štruktúrovaného streamovania sa reštartujú a obnovia podľa návrhu.
- [ ] Delta tabuľkové protokoly a funkcie zostávajú kompatibilné so všetkými spotrebiteľmi.
- [ ] Kvalita dát, výkon a výsledky nákladov spĺňajú vaše kritériá prijatia.
- [ ] Postupy zavádzania výroby, monitorovania a spätného postupu sú dokumentované a testované.