Siirry Fabric Runtime 1.3:sta Runtime 2.0:aan

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.12 tai _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.iteritems ja Series.iteritems .items
  • Korvaa DataFrame.append ja Series.append .ps.concat
  • Korvaa poistetut inplace parametrit kategorisista operaatioista määrityksillä.
  • Tarkista muuttuneet parametrien nimet ja oletusasetukset, kuten inclusive ja Series.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:

  1. Korvaa puuttuvat sisäänrakennetut paketit eksplisiittisillä ympäristöriippuvuuksilla.
  2. 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.
  3. Rakenna uudelleen omat JAR-tiedostot ja natiivibinäärit.
  4. Päivitys poisti PySpark- ja pandas-API:n Spark-kutsuista.
  5. Vaihda EventHubConnector Kafka-liittimeen.
  6. Poista Spark-asetukset konfiguraatioista, joita ei ole saatavilla Runtime 2.0:ssa, ja tarkista nimenomaiset ohitukset asetuksista, joiden oletusasetukset ovat muuttuneet.
  7. Ratkaise Spark SQL:n käyttäytymiserot koodissa sen sijaan, että luottaisit pysyvästi vanhoihin asetuksiin.
  8. 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ä:

  1. Julkaise validoitu Runtime 2.0 -ympäristö.
  2. Liitä se pieneen tuotantomuistikirjoihin tai Spark-tehtävämääritelmiin.
  3. Aja erä ja seuraa ulostuloja sekä loppuvirran kuluttajia.
  4. Jatka jäljellä olevien työkuormien kanssa havainnointijakson jälkeen.
  5. 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.