Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Το Fabric Runtime 2.0 είναι ο πιο πρόσφατος γενικά διαθέσιμος (GA) και ο προεπιλεγμένος χρόνος εκτέλεσης για φόρτους εργασίας Apache Spark στο Microsoft Fabric. Ενημερώνει το λειτουργικό σύστημα, Java, Scala, Python, R, Apache Spark και Delta Lake. Επειδή πολλές από αυτές τις ενημερώσεις υπερβαίνουν τα όρια της κύριας έκδοσης, επικυρώστε τα σημειωματάριά σας, τους ορισμούς εργασιών Spark, τις βιβλιοθήκες και τις διοχετεύσεις δεδομένων πριν μετακινήσετε φόρτους εργασίας παραγωγής από το Runtime 1.3.
Αυτός ο οδηγός περιγράφει τις αλλαγές που μπορούν να επηρεάσουν μια μετεγκατάσταση και παρέχει μια σταδιακή διαδικασία για τη μετακίνηση των φόρτων εργασίας σας στο Runtime 2.0.
Τι άλλαξε στο Runtime 2.0
Ο παρακάτω πίνακας συγκρίνει τα κύρια στοιχεία στο Runtime 1.3 και στο Runtime 2.0.
| Συνθετικός | Χρόνος εκτέλεσης: 1.3 | Χρόνος εκτέλεσης 2.0 | Εξέταση μετεγκατάστασης |
|---|---|---|---|
| Στάδιο έκδοσης | Ανακοινώθηκε η λήξη της υποστήριξης (EOSA) | Γενική διαθεσιμότητα (General Availability) | Μετεγκατάσταση φόρτων εργασίας παραγωγής στον υποστηριζόμενο χρόνο εκτέλεσης GA. |
| Apache Spark | 3.5.5 | 4.1.1 | Ελέγξτε τις αλλαγές συμπεριφοράς του Spark 4.1 και τα API που καταργήθηκαν. |
| Delta Λίμνη | 3,2 | 4.2 | Επικυρώστε τις δυνατότητες του πίνακα και τη συμβατότητα πρωτοκόλλου σε κάθε φόρτο εργασίας Fabric που χρησιμοποιεί τους πίνακές σας. |
| Java | 11 | 21 | Αναδημιουργήστε και δοκιμάστε βιβλιοθήκες Java και εξαρτήσεις Java Native Interface (JNI). |
| Scala | 2.12.17 | 2.13.16 | Μεταγλώττιση αρχείων Scala JAR για Scala 2.13. Τα τεχνουργήματα Scala 2.12 και 2.13 δεν είναι συμβατά με δυαδικά αρχεία. |
| Πύθωνας | 3.11 | 3.13 | Επιβεβαιώστε ότι κάθε πακέτο Python παρέχει μια έκδοση συμβατή με Python 3.13 και έναν τροχό Linux. |
| R | 4.4.1 | 4.5.2 | Επανεγκαταστήστε και δοκιμάστε προσαρμοσμένα πακέτα R. Το SparkR αποσύρεται στο Spark 4.1. |
| Λειτουργικό σύστημα | Azure Linux 2.0 (Mariner 2.0) | Azure Linux 3.0 (Mariner 3.0) | Αναδημιουργήστε εγγενείς βιβλιοθήκες και προσαρμοσμένα δυαδικά αρχεία για το Azure Linux 3.0. |
Το Runtime 2.0 παρέχει επίσης νέες δυνατότητες Apache Spark 4.1, συμπεριλαμβανομένου του τύπου δεδομένων, των συναρτήσεων SQL που ορίζονται από το VARIANT χρήστη, των μεταβλητών περιόδου λειτουργίας, της σύνταξης σωλήνων, της ταξινόμησης συμβολοσειρών, του Python Data Source API, των συναρτήσεων πίνακα Python που ορίζονται από το χρήστη, του ενοποιημένου προφίλ PySpark και των νέων API διαχείρισης κατάστασης και εντοπισμού σφαλμάτων δομημένης ροής. Για μια επισκόπηση, ανατρέξτε στο θέμα Χρόνος εκτέλεσης 2.0 στο Fabric.
Ελέγξτε τις αλλαγές συμβατότητας
Εξετάστε τις παρακάτω περιοχές πριν αλλάξετε έναν χώρο εργασίας ή ένα περιβάλλον σε Runtime 2.0.
Ενσωματωμένες και προσαρμοσμένες βιβλιοθήκες
Το Runtime 2.0 καταργεί πολλά προεγκατεστημένα πακέτα Python και R που ήταν διαθέσιμα στο Runtime 1.3. Η μείωση του προεπιλεγμένου συνόλου πακέτων διατηρεί το χρόνο εκτέλεσης λιτό και μειώνει την επιφάνεια για πιθανά συμβάντα ασφαλείας. Ένα πακέτο που ήταν διαθέσιμο χωρίς ρύθμιση παραμέτρων στο Runtime 1.3 ίσως χρειαστεί να προστεθεί ρητά στο περιβάλλον Runtime 2.0.
Χρησιμοποιήστε τη Διαχείριση ΒΙΒΛΙΟΘΗΚΗΣ για να προσθέσετε μόνο τα πακέτα που απαιτεί ο φόρτος εργασίας σας και στη συνέχεια αποθηκεύστε και δημοσιεύστε το περιβάλλον. Η Διαχείριση ΒΙΒΛΙΟΘΗΚΗΣ επιλύει τις απαιτούμενες εξαρτήσεις του πακέτου, επομένως μην προσθέτετε κάθε εξάρτηση στα ακόλουθα αποθέματα μεμονωμένα. Μην υποθέτετε ότι μια βιβλιοθήκη είναι διαθέσιμη ή ότι η έκδοσή της δεν έχει αλλάξει:
- Συγκρίνετε τα αποθέματα πακέτων Runtime 1.3 και Runtime 2.0 στο αποθετήριο εκδόσεων χρόνου εκτέλεσης Fabric.
- Προσθέστε βιβλιοθήκες PyPI, Conda, Maven, R ή προσαρμοσμένες βιβλιοθήκες που λείπουν σε ένα περιβάλλον και δημοσιεύστε το.
- Καρφιτσώστε εκδόσεις για φόρτους εργασίας παραγωγής για να κάνετε την ανάλυση εξάρτησης επαναλαμβανόμενη.
- Επιβεβαιώστε ότι τα πακέτα Python υποστηρίζουν την Python 3.13. Τα πακέτα με εγγενείς επεκτάσεις πρέπει να παρέχουν έναν συμβατό τροχό Linux ή να έχουν κατασκευαστεί με επιτυχία στο Azure Linux 3.0.
- Αντικαταστήστε τις εξαρτήσεις Scala 2.12 με τεχνουργήματα Scala 2.13. Τα ονόματα τεχνουργημάτων περιλαμβάνουν συνήθως τη δυαδική έκδοση Scala, όπως
_2.12ή_2.13. - Μεταγλωττίστε ξανά προσαρμοσμένα αρχεία JAR σε Java 21, Scala 2.13 και Spark 4.1. Ελέγξτε τις μεταβατικές εξαρτήσεις για διενέξεις με βιβλιοθήκες που παρέχονται από το χρόνο εκτέλεσης.
- Δημιουργήστε ξανά προσαρμοσμένες εγγενείς βιβλιοθήκες για το Azure Linux 3.0.
Το Fabric μετεγκαθιστά τις προδιαγραφές βιβλιοθήκης όταν αλλάζετε το χρόνο εκτέλεσης ενός υπάρχοντος περιβάλλοντος, αλλά δεν μπορεί να εγγυηθεί ότι αυτές οι βιβλιοθήκες παραμένουν συμβατές. Η δημοσίευση αποτυγχάνει όταν η επίλυση εξαρτήσεων εντοπίσει μια διένεξη. Για επιλογές εγκατάστασης πακέτων και λειτουργίες δημοσίευσης, ανατρέξτε στο θέμα Διαχείριση βιβλιοθηκών σε περιβάλλοντα Fabric.
Πακέτα που αφαιρέθηκαν από το προεπιλεγμένο περιβάλλον
Τα ακόλουθα αποθέματα περιλαμβάνουν πακέτα που απευθύνονται στον χρήστη και τις χαμηλού επιπέδου ή μεταβατικές εξαρτήσεις τους. Αναζητήστε σε αυτές τις λίστες πακέτα που χρησιμοποιεί ο φόρτος εργασίας Runtime 1.3. Εάν ένα πακέτο είναι στη λίστα, προσθέστε μία έκδοση συμβατή με Python 3.13 ή R 4.5 μέσω της Διαχείρισης ΒΙΒΛΙΟΘΗΚΗΣ στο περιβάλλον Runtime 2.0.
Περιβάλλον Python: 348 πακέτα Conda
| Πακέτο | Πακέτο | Πακέτο | Πακέτο |
|---|---|---|---|
_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: Πακέτα 24 pip
| Πακέτο | Πακέτο | Πακέτο | Πακέτο |
|---|---|---|---|
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: 67 πακέτα Conda
| Πακέτο | Πακέτο | Πακέτο | Πακέτο |
|---|---|---|---|
_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 |
Σημείωμα
Εάν η προστασία εξερχόμενης πρόσβασης ή ένα διαχειριζόμενο εικονικό δίκτυο εμποδίζει την πρόσβαση σε δημόσια αποθετήρια, πραγματοποιήστε λήψη συμβατών αρχείων τροχού ή φιλοξενήστε έναν καθρέφτη πακέτου. Για οδηγίες, ανατρέξτε στο θέμα Διαχείριση βιβλιοθηκών με περιορισμένη πρόσβαση στο δίκτυο στο Fabric.
Αλλαγές στη ρύθμιση παραμέτρων του Spark
Το Runtime 2.0 προσθέτει και καταργεί τις ρυθμίσεις Spark και αλλάζει ορισμένες προεπιλεγμένες τιμές. Το Fabric χρησιμοποιεί επίσης διαφορετικές προεπιλογές από το Apache Spark για ορισμένες ρυθμίσεις.
Πριν από τη μετεγκατάσταση, εξετάστε τις ρυθμίσεις Spark που ρυθμίσατε για τους χώρους εργασίας, τα περιβάλλοντα, τα σημειωματάρια και τους ορισμούς εργασιών Spark. Καταργήστε τις ρυθμίσεις που δεν υποστηρίζονται πλέον και δοκιμάστε τους φόρτους εργασίας που βασίζονται σε αλλαγμένες προεπιλογές. Χρησιμοποιήστε τις προεπιλογές χρόνου εκτέλεσης, εκτός εάν η τεκμηρίωση σας καθοδηγεί να αλλάξετε μια ρύθμιση.
Αξιοσημείωτες αλλαγές προεπιλεγμένων τιμών
Ο παρακάτω πίνακας παραθέτει τις επιλεγμένες αλλαγές γραμμής βάσης. Δεν έχει οριστεί σημαίνει ότι η γραμμή βάσης δεν ορίζει ρητά μια τιμή. Δεν σημαίνει ότι η δυνατότητα είναι απενεργοποιημένη.
| Διαμόρφωση | Τιμή χρόνου εκτέλεσης 1.3 | Τιμή χρόνου εκτέλεσης 2.0 | Εξέταση μετεγκατάστασης |
|---|---|---|---|
spark.checkpoint.compress |
false |
true |
Τα αρχεία σημείων ελέγχου συμπιέζονται από προεπιλογή. Επικυρώστε τη διαλειτουργικότητα των σημείων ελέγχου και τη συμπεριφορά αποθήκευσης. |
spark.databricks.delta.optimizeWrite.enabled |
true |
Δεν έχει οριστεί | Το ακίνητο δεν καταργείται. Επικυρώστε την αποτελεσματική συμπεριφορά βελτιστοποιημένης εγγραφής με τις ρυθμίσεις πίνακα, περιόδου λειτουργίας και προφίλ πόρων. |
spark.databricks.delta.optimizeWrite.partitioned.enabled |
false |
true |
Επικυρώστε τα μεγέθη αρχείων εγγραφής και εξόδου για διαμερισμένους πίνακες Delta. |
spark.hadoop.parquet.block.size |
1073741824 (1 GiB) |
134217728 (128 MiB) |
Οι συγγραφείς παρκέ στοχεύουν σε μικρότερα τετράγωνα. Επικυρώστε τα μεγέθη αρχείων και την απόδοση ανάγνωσης κατάντη. |
spark.microsoft.delta.optimize.fast.enabled |
false |
true |
OPTIMIZE μπορεί να παραλείψει την εργασία εκτός εάν πληρούνται τα κριτήρια καταμέτρησης αρχείων ή εκτιμώμενου μεγέθους συμπίεσης. Επικυρώστε τα αποτελέσματα συντήρησης. |
spark.microsoft.delta.optimize.fileLevelTarget.enabled |
false |
true |
Τα αρχεία που προηγουμένως πληρούσαν τουλάχιστον το μισό μέγεθος στόχου συμπίεσης δεν συμπιέζονται ξανά. Επικύρωση διάταξης αρχείου μετά από OPTIMIZE. |
spark.microsoft.delta.targetFileSize.adaptive.enabled |
false |
true |
Το Delta υπολογίζει το μέγεθος του αρχείου προορισμού με βάση το μέγεθος του πίνακα. Επικυρώστε τα μεγέθη αρχείων που προκύπτουν και την απόδοση ανάγνωσης. |
spark.speculation.multiplier |
1.5 |
3 |
Μια εργασία πρέπει να εκτελείται τρεις φορές πιο αργά από τη διάμεσο για να την εξετάσει το Spark για κερδοσκοπική εκτέλεση. |
spark.speculation.quantile |
0.75 |
0.9 |
Το Spark περιμένει να ολοκληρωθούν 90% εργασιών προτού εξετάσει την κερδοσκοπική εκτέλεση. |
spark.sql.files.maxPartitionBytes |
134217728 (128 MiB) |
536870912 (512 MiB) |
Οι σαρώσεις αρχείων μπορούν να συσκευάσουν περισσότερα δεδομένα σε κάθε διαμέρισμα. Επικυρώστε τον παραλληλισμό και τη χρήση της μνήμης του εκτελεστή. |
spark.sql.maxSinglePartitionBytes |
Long.MaxValue |
128m |
Ένα μεμονωμένο διαμέρισμα περιορίζεται στα 128 MiB από προεπιλογή. Επικυρώστε ερωτήματα που παράγουν μεγάλα μεμονωμένα διαμερίσματα. |
spark.sql.orc.compression.codec |
snappy |
zstd |
Οι νέες εγγραφές ORC χρησιμοποιούν συμπίεση Zstandard από προεπιλογή. Επικυρώστε τη συμβατότητα και την απόδοση με μεταγενέστερους αναγνώστες. |
spark.sql.sources.v2.bucketing.enabled |
false |
true |
Το Spark ενεργοποιεί συνδέσμους με διαμερίσματα αποθήκευσης και άλλες συμπεριφορές κάδου προέλευσης δεδομένων V2 από προεπιλογή. Επικυρώστε σχέδια ερωτημάτων και αποτελέσματα. |
spark.sql.sources.v2.bucketing.pushPartValues.enabled |
false |
true |
Το Spark μπορεί να προωθήσει συμβατές τιμές διαμερισμάτων για τον κάδο προέλευσης δεδομένων V2. Επικύρωση σχεδίων ερωτημάτων για ομαδοποιημένους πίνακες. |
Το Runtime 2.0 χρησιμοποιεί ROCKSDB επίσης αντί για LEVELDB for spark.shuffle.service.db.backend και ορίζει spark.shuffle.service.removeShuffle σε true. Το Spark χρησιμοποιεί την εξωτερική υπηρεσία τυχαίας αναπαραγωγής για να διαγράψει τα περιττά μπλοκ τυχαίας αναπαραγωγής για εκχωρημένους εκτελεστές.
Η παράλληλη φόρτωση στιγμιότυπου Delta, η παράλληλη παράβλεψη δεδομένων και η φόρτωση στιγμιότυπου από την πλευρά του προγράμματος οδήγησης αλλάζουν επίσης από false σε true. Ελέγξτε τον λανθάνοντα χρόνο ερωτήματος και τη χρήση πόρων προγράμματος οδήγησης, ειδικά για ερωτήματα που έχουν πρόσβαση σε πολλούς πίνακες Delta.
Παρακάμψεις έναρξης περιόδου λειτουργίας και εγγενής εκτέλεση
Οι κυκλοφορίες δυνατοτήτων Fabric μπορούν να παρακάμψουν τις τιμές γραμμής βάσης κατά την έναρξη μιας περιόδου λειτουργίας.
| Διαμόρφωση | Τιμή γραμμής βάσης χρόνου εκτέλεσης 2.0 | Τιμή έναρξης περιόδου λειτουργίας χρόνου εκτέλεσης 2.0 σε δημόσιες περιοχές παραγωγής | Εξέταση μετεγκατάστασης |
|---|---|---|---|
spark.gluten.sql.columnar.costBasedFallback.enabled |
false |
true |
Η κυκλοφορία της παραγωγής που καταγράφηκε στις 16 Οκτωβρίου 2026 επιτρέπει την επιστροφή του Spark με βάση το κόστος. Ελέγξτε ξανά τα σχέδια ερωτημάτων και τις επιδόσεις, συμπεριλαμβανομένων των φόρτων εργασίας που δοκιμάστηκαν πριν από αυτήν την κυκλοφορία. |
spark.sql.parquet.native.writer.complexTypes.enabled |
false |
true |
Δοκιμάστε τις εγγενείς εγγραφές Parquet και τις μεταγενέστερες αναγνώσεις για πίνακες, χάρτες και δομές. |
Όταν χρησιμοποιείτε τον εγγενή μηχανισμό εκτέλεσης, συμπεριλάβετε τους ακόλουθους ελέγχους στις δοκιμές παλινδρόμησης:
- Επικυρώστε τη χρήση μνήμης με την προεπιλογή μεγέθους δέσμης στηλών να αυξάνεται από 4.096 σε 10.240.
- Συγκρίνετε τα σχέδια τυχαίας σειράς και τις επιδόσεις με το όριο τυχαίας σειράς στηλών βάσει ταξινόμησης που μειώνεται από 100.000 σε 4.000 διαμερίσματα.
- Συγκρίνετε τα αποτελέσματα και τις επιδόσεις κανονικών εκφράσεων. Η υποστήριξη regex Java εγγενούς μηχανής αλλάζει από απενεργοποιημένη σε ενεργοποιημένη και η ρύθμιση που επαναφέρει όλες τις εκφράσεις regex στο Spark αλλάζει από
trueσεfalse.
Οι προεπιλογές του Apache Spark 4.1 διατηρούνται διαφορετικά στο Fabric
Το Fabric Runtime 2.0 παρακάμπτει σκόπιμα τις ακόλουθες προεπιλογές του Apache Spark 4.1. Μην υποθέτετε ότι μια προεπιλογή upstream Spark 4.1 ισχύει αμετάβλητη στο Fabric.
| Διαμόρφωση | Προεπιλογή Apache Spark 4.1 | Τιμή 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 |
Συμπεριφορά Spark SQL και DataFrame
Το Spark 4.1 εισάγει αλλαγές συμπεριφοράς που μπορούν να αλλάξουν τα αποτελέσματα των ερωτημάτων ή να προκαλέσουν την αποτυχία ερωτημάτων που είχαν γίνει προηγουμένως αποδεκτά. Δώστε ιδιαίτερη προσοχή στη συμπεριφορά ANSI SQL, τις εκπομπές, τις λειτουργίες ημερομηνίας και χρονικής σήμανσης, τους τύπους δεδομένων, τις αντιστοιχίσεις JDBC και τις καταργημένες διαμορφώσεις SQL.
Εκτελέστε δοκιμές παλινδρόμησης που συγκρίνουν:
- Σχήματα εξόδου, συμπεριλαμβανομένου του τύπου, της ακρίβειας, της κλίμακας και της μηδενότητας.
- Πλήθος σειρών και συγκεντρωτικά αποτελέσματα.
- Συμπεριφορά μηδενικής, υπερχείλισης, διαίρεσης με το μηδέν και μη έγκυρης χρήσης.
- Αποτελέσματα ημερομηνίας, χρονικής σήμανσης, ζώνης ώρας και διαστήματος.
- Αντιστοιχίσεις τύπου πηγής και νεροχύτη JDBC.
- Σχέδια ερωτημάτων και επιδόσεις για κρίσιμους φόρτους εργασίας.
Μην χρησιμοποιείτε τις ρυθμίσεις συμβατότητας παλαιού τύπου ως στρατηγική μόνιμης μετεγκατάστασης. Εάν χρησιμοποιήσετε προσωρινά ένα για να απομονώσετε μια αποτυχία, ενημερώστε τον επηρεαζόμενο κώδικα και καταργήστε τη ρύθμιση πριν ολοκληρώσετε τη μετεγκατάσταση. Για το πλήρες σύνολο αλλαγών συμπεριφοράς, ανατρέξτε στον οδηγό μετεγκατάστασης Spark SQL.
Python και pandas API στο Spark
Το Runtime 2.0 μετακινείται από την Python 3.11 στην Python 3.13 και περιλαμβάνει τις αλλαγές PySpark που εισήχθησαν στο Spark 4.1. Το Spark 4.1 αυξάνει επίσης τις ελάχιστες υποστηριζόμενες εκδόσεις των pandas, NumPy και PyArrow και καταργεί τα API που είχαν καταργηθεί σε προηγούμενες εκδόσεις.
Τα κοινά pandas API στις ενημερώσεις Spark περιλαμβάνουν:
- Αντικαταστήστε
DataFrame.iteritemsκαιSeries.iteritemsμεitems. - Αντικαταστήστε
DataFrame.appendκαιSeries.appendμεps.concat. - Αντικαταστήστε τις παραμέτρους που αφαιρέθηκαν
inplaceσε κατηγορικές πράξεις με αναθέσεις. - Ελέγξτε τα αλλαγμένα ονόματα παραμέτρων και τις προεπιλογές, όπως
inclusiveκαιSeries.str.replace(regex=...). - Επικυρώστε τα ονόματα στηλών αποτελεσμάτων, τα ονόματα ευρετηρίου, τους τύπους και τη σειρά.
Για την πλήρη λίστα, ανατρέξτε στον οδηγό μετεγκατάστασης PySpark.
Εφαρμογές Java και Scala
Το Scala 2.13 δεν είναι δυαδικό συμβατό με το Scala 2.12. Η επαναχρησιμοποίηση ενός JAR Runtime 1.3 στο Runtime 2.0 μπορεί να προκαλέσει σφάλματα φόρτωσης κλάσεων ακόμα και όταν ο πηγαίος κώδικας δεν έχει αλλάξει. Δημιουργήστε ένα ξεχωριστό τεχνούργημα Runtime 2.0 και ενημερώστε όλες τις διασταυρούμενες εξαρτήσεις της Scala.
Το Spark 4.1 αλλάζει επίσης τις εσωτερικές αναφορές API servlet από javax σε jakarta. Εξετάστε τα προσαρμοσμένα προγράμματα ακρόασης, τις επεκτάσεις Spark και τις βιβλιοθήκες που αλληλεπιδρούν με τα εσωτερικά στοιχεία του Spark. Για άλλες αλλαγές σε επίπεδο κινητήρα, ανατρέξτε στον οδηγό μετεγκατάστασης του Spark Core.
Φόρτοι εργασίας ροής και συνδέσεις
Το καταργημένο EventHubConnector που περιλαμβάνεται στο Runtime 1.3 δεν είναι διαθέσιμο στο Runtime 2.0. Χρησιμοποιήστε τη σύνδεση Apache Spark Kafka με το τελικό σημείο συμβατό με Kafka για Azure Event Hubs. Για οδηγίες ρύθμισης, ανατρέξτε στο θέμα Χρήση του Apache Spark με Azure Event Hubs για Apache Kafka.
Για ισχύοντα σενάρια, μπορείτε επίσης να αξιολογήσετε τη ροή συμβάντων Fabric για την πρόσληψη δεδομένων ροής και την επεξεργασία τους σε ένα σημειωματάριο με δομημένη ροή Spark. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Υποβολή ερωτήματος στη ροή συμβάντων στο Microsoft Fabric από ένα σημειωματάριο με δομημένη ροή Spark.
Για κάθε φόρτο εργασίας δομημένης ροής:
- Ελέγξτε εάν το ερώτημα Runtime 2.0 μπορεί να επανεκκινηθεί από ένα αντίγραφο του υπάρχοντος σημείου ελέγχου.
- Επικυρώστε λειτουργίες κατάστασης, υδατογραφήματα χρόνου συμβάντος, εναύσματα, επιλογές προέλευσης και βύθισης και σχήματα εξόδου.
- Διατηρήστε τα δεδομένα προέλευσης και το αρχικό σημείο ελέγχου διαθέσιμα μέχρι να ολοκληρωθεί η επικύρωση.
- Εάν ένα σημείο ελέγχου δεν είναι συμβατό, προγραμματίστε μια ελεγχόμενη επανεκκίνηση με ένα νέο σημείο ελέγχου. Λάβετε υπόψη την επαναλαμβανόμενη ή παραλειφθείσα είσοδο και κάντε τον νεροχύτη ανίσχυρο πριν κάνετε επανεκκίνηση.
Ανατρέξτε στον οδηγό μετεγκατάστασης δομημένης ροής για αλλαγές συμβατότητας ανάντη.
Πίνακες Delta Lake
Το Delta Lake διατηρεί συμβατότητα με προηγούμενες εκδόσεις για υπάρχοντες πίνακες, επομένως το Runtime 2.0 μπορεί να λειτουργήσει με πίνακες που έχουν δημιουργηθεί από το Runtime 1.3. Ωστόσο, η ενεργοποίηση μιας νεότερης δυνατότητας πίνακα μπορεί να αυξήσει το πρωτόκολλο ανάγνωσης ή εγγραφής του πίνακα και να αποτρέψει τη χρήση του πίνακα από παλαιότερους μηχανισμούς ή άλλες εμπειρίες Fabric.
Κατά την αρχική μετεγκατάσταση χρόνου εκτέλεσης:
- Μην αναβαθμίζετε πρωτόκολλα πίνακα και μην ενεργοποιείτε τις δυνατότητες του Delta Lake 4.2.
- Επιθεωρήστε τις δυνατότητες και τις εκδόσεις πρωτοκόλλου των πινάκων που δημιουργήθηκαν πρόσφατα, καθώς και των υπαρχόντων πινάκων. Το Runtime 2.0 ορίζει
spark.databricks.delta.properties.defaults.enableDeletionVectorsσε ; επαληθεύστε τα μεταδεδομένα του πίνακα που προκύπτουν αντί ναtrueυποθέτετε ότι η αποφυγή της μη αυτόματης ενεργοποίησης χαρακτηριστικών διατηρεί τη συμβατότητα. - Δοκιμή ανάγνωσης, εγγραφής, συγχώνευσης, εξέλιξης σχήματος, λειτουργιών συντήρησης και ταυτόχρονης πρόσβασης.
- Προσδιορίστε κάθε μηχανισμό που διαβάζει ή γράφει κάθε πίνακα, συμπεριλαμβανομένου του τελικού σημείου ανάλυσης SQL, του Power BI, των διοχετεύσεων, των ροών δεδομένων, των ροών συμβάντων και των εξωτερικών μηχανισμών.
- Ενεργοποιήστε μια νέα δυνατότητα Delta μόνο αφού την υποστηρίξουν όλοι οι καταναλωτές.
Οι δυνατότητες ειδικά για το Delta Lake 4.2 είναι πειραματικές στο Fabric και περιορίζονται σε εμπειρίες Spark. Για τον πίνακα υποστήριξης και τις προεπιλεγμένες εκδόσεις πρωτοκόλλου, ανατρέξτε στο θέμα Διαλειτουργικότητα μορφής πίνακα Delta Lake.
Μετεγκατάσταση των φόρτων εργασίας σας
Χρησιμοποιήστε μια σταδιακή μετεγκατάσταση αντί να αλλάξετε αμέσως το χρόνο εκτέλεσης για έναν χώρο εργασίας παραγωγής.
1. Καταγράψτε τους φόρτους εργασίας Runtime 1.3
Καταγράψτε τις ακόλουθες πληροφορίες:
- Σημειωματάρια, ορισμοί εργασιών Spark, διοχετεύσεις, χρονοδιαγράμματα και εξαρτώμενα στοιχεία.
- Αναθέσεις περιβάλλοντος σε επίπεδο χώρου εργασίας και σε επίπεδο στοιχείου.
- Ρυθμίσεις παραμέτρων Spark, συμπεριλαμβανομένων τυχόν ρυθμίσεων συμβατότητας παλαιού τύπου.
- Δημόσιες, ιδιωτικές και προσαρμοσμένες βιβλιοθήκες και οι επιλυμένες εκδόσεις τους.
- Προσαρμοσμένα αρχεία JAR, τροχοί Python, πακέτα R, εγγενείς βιβλιοθήκες και λογική προετοιμασίας.
- Προελεύσεις δεδομένων, προορισμοί, μυστικοί κωδικοί, συνδέσεις και απαιτήσεις δικτύου.
- Delta και όλους τους καταναλωτές αυτών των πινάκων που δεν είναι Spark.
- Σημεία ελέγχου ροής, σχήματα, μετατοπίσεις και απαιτήσεις ανάκτησης.
- Αναμενόμενα σχήματα εξόδου, πλήθος γραμμών, έλεγχοι ποιότητας δεδομένων και γραμμές βάσης απόδοσης.
Δώστε προτεραιότητα σε φόρτους εργασίας που χρησιμοποιούν προσαρμοσμένες βιβλιοθήκες, εγγενή κώδικα, Scala, κατάσταση ροής ή προηγμένες δυνατότητες Delta.
2. Δημιουργήστε ένα περιβάλλον δοκιμής Runtime 2.0
Δημιουργήστε ένα ξεχωριστό στοιχείο περιβάλλοντος και επιλέξτε 2.0 (Spark 4.1, Delta 4.2) ως χρόνο εκτέλεσης. Προσθέστε τις απαιτούμενες βιβλιοθήκες, αποθηκεύστε το περιβάλλον και δημοσιεύστε το. Επισυνάψτε το περιβάλλον σε αντίγραφα αντιπροσωπευτικών σημειωματάριων και ορισμών εργασιών Spark σε έναν χώρο εργασίας ανάπτυξης ή δοκιμής.
Εάν ο χώρος εργασίας παραγωγής σας εξακολουθεί να χρησιμοποιεί το Runtime 1.3, μην αλλάξετε το χρόνο εκτέλεσης μέχρι να ολοκληρωθεί η δοκιμή. Διατηρήστε την υπάρχουσα διαμόρφωσή του διαθέσιμη για επαναφορά κατά την επικύρωση.
Για να επικυρώσετε τις επερχόμενες ενημερώσεις χρόνου εκτέλεσης 2.0 προτού φτάσουν στο προεπιλεγμένο κανάλι, χρησιμοποιήστε το κανάλι κυκλοφορίας πρώιμης πρόσβασης στο δοκιμαστικό περιβάλλον σας. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Κανάλια κυκλοφορίας χρόνου εκτέλεσης Fabric.
3. Ενημερώστε τις βιβλιοθήκες και τον κώδικα
Εφαρμόστε τις αλλαγές που προσδιορίστηκαν στον έλεγχο συμβατότητας:
- Αντικαταστήστε τα ενσωματωμένα πακέτα που λείπουν με ρητές εξαρτήσεις περιβάλλοντος.
- Αναβαθμίστε ή αντικαταστήστε πακέτα που δεν υποστηρίζουν Python 3.13, Java 21, Scala 2.13 ή Azure Linux 3.0.
- Δημιουργήστε ξανά προσαρμοσμένα αρχεία JAR και εγγενή δυαδικά αρχεία.
- Η ενημέρωση αφαίρεσε το PySpark και το pandas API στις κλήσεις Spark.
- Αντικαταστήστε
EventHubConnectorμε το βύσμα Kafka. - Καταργήστε τις ρυθμίσεις Spark για ρυθμίσεις παραμέτρων που δεν είναι διαθέσιμες στο Runtime 2.0 και εξετάστε τις ρητές παρακάμψεις των ρυθμίσεων παραμέτρων των οποίων οι προεπιλογές άλλαξαν.
- Επιλύστε τις διαφορές συμπεριφοράς του Spark SQL στον κώδικα αντί να βασίζεστε μόνιμα σε ρυθμίσεις παλαιού τύπου.
- Διατηρήστε τις υπάρχουσες δυνατότητες και τα πρωτόκολλα του πίνακα Delta αμετάβλητα κατά τη διάρκεια αυτής της φάσης.
4. Εκτελέστε δοκιμές συμβατότητας και παλινδρόμησης
Εκτελέστε τις ίδιες αντιπροσωπευτικές εισόδους στο Runtime 1.3 και στο Runtime 2.0. Συγκρίνω:
- Κατάσταση ολοκλήρωσης, αρχεία καταγραφής, προειδοποιήσεις και επαναλήψεις.
- Σχήματα και τύποι δεδομένων.
- Αποτελέσματα σε επίπεδο γραμμών και συγκεντρωτικά αποτελέσματα.
- Ιστορικό και πρωτόκολλο πίνακα Delta.
- Πρόοδος ροής, κατάσταση, καθυστέρηση και διπλότυπος χειρισμός.
- Χρόνος εκτέλεσης, χρήση πόρων και κόστος.
- Τα κατάντη έχουν ως αποτέλεσμα το τελικό σημείο ανάλυσης SQL, το Power BI, τις διοχετεύσεις και άλλους καταναλωτές.
Συμπεριλάβετε δοκιμές αποτυχίας και αποκατάστασης, όχι μόνο επιτυχημένες εκτελέσεις. Επανεκκίνηση δοκιμαστικής συνεδρίας, επαναλήψεις εργασιών, ανάκτηση σημείων ελέγχου και ταυτόχρονη πρόσβαση σε τραπέζι.
5. Κυκλοφορήστε το Runtime 2.0
Μετακίνηση φόρτου εργασίας σε ελεγχόμενες παρτίδες:
- Δημοσιεύστε το επικυρωμένο περιβάλλον Runtime 2.0.
- Επισυνάψτε το σε ένα μικρό σύνολο σημειωματάριων παραγωγής ή ορισμών εργασιών Spark.
- Εκτελέστε την παρτίδα και παρακολουθήστε τις εξόδους και τους μεταγενέστερους καταναλωτές.
- Συνεχίστε με τους υπόλοιπους φόρτους εργασίας μετά την περίοδο παρατήρησης.
- Ορίστε το Runtime 2.0 ως προεπιλογή χώρου εργασίας μόνο μετά την ολοκλήρωση της μετεγκατάστασης σε επίπεδο στοιχείου.
Η αλλαγή του χρόνου εκτέλεσης του χώρου εργασίας επηρεάζει τις νέες περιόδους λειτουργίας Spark. Οι υπάρχουσες περίοδοι λειτουργίας συνεχίζουν να χρησιμοποιούν τον τρέχοντα χρόνο εκτέλεσης μέχρι να σταματήσουν.
6. Διατηρήστε μια διαδρομή επαναφοράς
Διατηρήστε το περιβάλλον Runtime 1.3, τα τεχνουργήματα, τις προδιαγραφές βιβλιοθήκης και τα σημεία ελέγχου ροής μέχρι να λήξει η περίοδος παρατήρησης Runtime 2.0. Για επαναφορά, επανασυνδέστε το περιβάλλον Runtime 1.3 ή επαναφέρετε τον προηγούμενο χρόνο εκτέλεσης του χώρου εργασίας και ξεκινήστε μια νέα περίοδο λειτουργίας Spark.
Σημαντικό
Μια αναβάθμιση πρωτοκόλλου Delta δεν είναι γενικά αναστρέψιμη. Μην ενεργοποιείτε δυνατότητες πίνακα που αυξάνουν το πρωτόκολλο μέχρι να ολοκληρώσετε την επικύρωση του χρόνου εκτέλεσης 2.0 και να επιβεβαιώσετε τη συμβατότητα με κάθε καταναλωτή πίνακα.
Λίστα ελέγχου μετεγκατάστασης
Πριν ολοκληρώσετε τη μετεγκατάσταση, επιβεβαιώστε ότι:
- [ ] Κάθε απαιτούμενο πακέτο Python και R είναι ρητά διαθέσιμο και συμβατό με Python 3.13 ή R 4.5.
- [ ] Τα προσαρμοσμένα αρχεία JAR στοχεύουν σε Java 21, Scala 2.13 και Spark 4.1.
- [ ] Οι εγγενείς εξαρτήσεις λειτουργούν στο Azure Linux 3.0.
- [ ] Οι ρυθμίσεις ορισμού εργασίας Workspace, environment, notebook και Spark δεν χρησιμοποιούν καταργημένες ρυθμίσεις παραμέτρων Spark.
- [ ] Οι φόρτοι εργασίας ελέγχονται σε σχέση με τις αλλαγμένες προεπιλογές ρύθμισης παραμέτρων Runtime 2.0 Spark.
- [ ] Οι δοκιμές παλινδρόμησης Spark SQL και PySpark περνούν.
- [ ] Οι φόρτοι εργασίας των Κέντρων συμβάντων χρησιμοποιούν τη σύνδεση Kafka.
- [ ] Οι φόρτοι εργασίας δομημένης ροής επανεκκινούνται και ανακτώνται όπως έχει σχεδιαστεί.
- [ ] Τα πρωτόκολλα και οι δυνατότητες του πίνακα Delta παραμένουν συμβατά με όλους τους καταναλωτές.
- [ ] Η ποιότητα των δεδομένων, η απόδοση και τα αποτελέσματα κόστους πληρούν τα κριτήρια αποδοχής σας.
- [ ] Οι διαδικασίες διάθεσης, παρακολούθησης και επαναφοράς της παραγωγής τεκμηριώνονται και δοκιμάζονται.