Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Fabric Runtime 2.0, Microsoft Fabric'teki Apache Spark iş yükleri için en yeni genel erişilebilir (GA) ve varsayılan çalışma zamanıdır. İşletim sistemini, Java, Scala, Python, R, Apache Spark ve Delta Lake'i güncelliyor. Bu güncellemelerin birçoğu ana sürüm sınırlarını aştığı için, üretim iş yüklerini Runtime 1.3'ten taşımadan önce notebooklarınızı, Spark iş tanımlarınızı, kütüphanelerinizi ve veri boru hatlarınızı doğrulayın.
Bu rehber, bir göçü etkileyebilecek değişiklikleri tanımlar ve iş yüklerinizi Runtime 2.0'a taşımak için aşamalı bir süreç sunar.
Runtime 2.0'da neler değişti?
Aşağıdaki tablo, Runtime 1.3 ve Runtime 2.0'daki ana bileşenleri karşılaştırmaktadır.
| Bileşen | Çalışma Zamanı 1.3 | Çalışma Zamanı 2.0 | Göç değerlendirmesi |
|---|---|---|---|
| Yayın aşaması | Desteğin sona erdiği açıklandı (EOSA) | GA | Üretim iş yüklerini desteklenen GA çalışma zamanına taşıyın. |
| Apache Spark | 3.5.5 | 4.1.1 | Spark 4.1 davranış değişikliklerini ve kaldırılan API'leri gözden geçirin. |
| Delta Gölü | 3.2 | 4.2 | Tablolarınızı kullanan her Fabric iş yükünde tablo özelliklerini ve protokol uyumluluğunu doğrulayın. |
| Java | 11 | 21 | Java kütüphanelerini ve Java Native Interface (JNI) bağımlılıklarını yeniden oluşturup test edin. |
| Scala | 2.12.17 | 2.13.16 | Scala JAR dosyalarını Scala 2.13 için yeniden derleyin. Scala 2.12 ve 2.13 artefaktları ikili uyumlu değil. |
| Python | 3.11 | 3.13 | Her Python paketinin Python 3.13 uyumlu bir sürüm ve Linux wheel sağladığını doğrulayın. |
| R | 4.4.1 | 4.5.2 | Özel R paketlerini yeniden kurup test edin. SparkR, Spark 4.1'de kullanımdan kaldırılmıştır. |
| İşletim Sistemi | Azure Linux 2.0 (Mariner 2.0) | Azure Linux 3.0 (Mariner 3.0) | Azure Linux 3.0 için yerel kütüphaneleri ve özel ikili dosyaları yeniden oluşturun. |
Runtime 2.0 ayrıca VARIANT veri türü, SQL kullanıcı tanımlı fonksiyonlar, oturum değişkenleri, boru sözdizimi, dize harmanlama, Python Veri Kaynağı API'si, Python kullanıcı tanımlı tablo fonksiyonları, birleşik PySpark profilleme ve yeni Yapılandırılmış Akış durum yönetimi ve hata ayıklama API'leri dahil olmak üzere yeni Apache Spark 4.1 yetenekleri sunar. Genel bir bakış için, Fabric'teki Runtime 2.0'a bakınız.
Uyumluluk değişikliklerini inceleyin
Çalışma alanı veya ortamı Runtime 2.0'a çevirmeden önce aşağıdaki alanları gözden geçirin.
Yerleşik ve özel kütüphaneler
Runtime 2.0, Runtime 1.3'te mevcut olan birkaç önceden yüklenmiş Python ve R paketini kaldırır. Varsayılan paket setinin azaltılması, çalışma zamanını ince tutar ve potansiyel güvenlik olayları için yüzey alanını azaltır. Runtime 1.3'te yapılandırma gerektirmeden kullanılabilen bir paketi Runtime 2.0 ortamınıza açıkça eklemeniz gerekebilir.
Library Manager ile sadece iş yükünüzün gerektirdiği paketleri ekleyin, ardından ortamı kaydedip yayınlayın. Library Manager paketin gerekli bağımlılıklarını çözümler, bu yüzden aşağıdaki envanterlerdeki tüm bağımlılıkları tek tek eklemeyin. Bir kütüphanenin mevcut olduğunu veya versiyonunun değişmediğini varsaymayın:
- Fabric runtime releases repository’sinde Runtime 1.3 ve Runtime 2.0 paket envanterlerini karşılaştırın.
- Eksik olan PyPI, Conda, Maven, R veya özel kütüphaneleri bir ortama ekleyin ve yayınlayın.
- Üretim iş yükleri için sürümleri sabitleyerek bağımlılık çözümünü yinelenebilir hale getirin.
- Python paketlerinin Python 3.13'ü desteklediğini doğrulayın. Yerel uzantılara sahip paketler, uyumlu bir Linux wheel’i sağlamalı veya Azure Linux 3.0 üzerinde başarıyla derlenmelidir.
- Scala 2.12 bağımlılıklarını Scala 2.13 artefaktlarıyla değiştirin. Artifact isimleri genellikle Scala ikili sürümünü içerir, örneğin
_2.12veya_2.13. - Java 21, Scala 2.13 ve Spark 4.1 ile özel JAR dosyalarını yeniden derleyin. Çalışma zamanı sağlanan kütüphanelerle çakışmalar için geçişli bağımlılıkları test edin.
- Azure Linux 3.0 için özel yerel kütüphaneleri yeniden oluştur.
Fabric, mevcut bir ortamın çalışma zamanını değiştirdiğinizde kütüphane özelliklerini taşıyor, ancak bu kütüphanelerin uyumlu kalmasını garanti edemez. Bağımlılık çözümü bir çakışma bulduğunda yayımlama başarısız olur. Paket kurulum seçenekleri ve yayınlama modları için bkz. Fabric ortamlarında kütüphaneleri yönet.
Varsayılan ortamdan çıkarılan paketler
Aşağıdaki envanterler arasında kullanıcıya yönelik paketler ve bunların düşük seviyeli veya geçişli bağımlılıkları yer alır. Runtime 1.3 iş yükünüzün kullandığı paketleri bu listelerde arayın. Eğer bir paket listeleniyorsa, Runtime 2.0 ortamınızda Library Manager üzerinden Python 3.13 uyumlu veya R 4.5 uyumlu bir sürüm ekleyin.
Python ortamı: 348 Conda paketleri
| 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 ortamı: 24 pip paket
| 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 ortamı: 67 Conda paketi
| 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
Eğer dış erişim koruması veya yönetilen sanal ağ kamu depolarına erişimi engelliyorsa, uyumlu wheel dosyalarını indirin veya bir paket aynası barındırın. Talimatlar için, Fabric'te sınırlı ağ erişimi olan kütüphaneleri yönet bölümüne bakınız.
Spark yapılandırma değişiklikleri
Runtime 2.0, Spark ayarlarında ekleme ve kaldırma yapıyor, bazı varsayılan değerleri değiştiriyor. Fabric bazı ayarlar için Apache Spark'tan farklı varsayılan ayarlar kullanıyor.
Geçiş yapmadan önce, çalışma alanları, ortamlar, not defterleri ve Spark iş tanımları için yapılandırdığınız Spark ayarlarını gözden geçirin. Artık desteklenmeyen ayarları kaldırın ve değişen varsayılan ayarlara dayanan iş yüklerini test edin. Dokümantasyon bir ayarı değiştirmenizi belirtmedikçe çalışma zamanı varsayılan ayarlarını kullanın.
Dikkate değer varsayılan değer değişiklikleri
Aşağıdaki tablo seçilmiş temel değişiklikleri listelemektedir. Not set, baseline'ın açıkça bir değer belirlemediği anlamına gelir; bu, özelliğin devre dışı bırakıldığı anlamına gelmez.
| Configuration | Runtime 1.3 değeri | Runtime 2.0 değeri | Göç değerlendirmesi |
|---|---|---|---|
spark.checkpoint.compress |
false |
true |
Kontrol noktası dosyaları varsayılan olarak sıkıştırılır. Kontrol noktası birlikte çalışabilirliğini ve depolama davranışını doğrulayın. |
spark.databricks.delta.optimizeWrite.enabled |
true |
Ayarlanmadı | Özellik kaldırılmadı. Tablo, oturum ve kaynak profili ayarlarınızla etkili optimize edilmiş yazma davranışını doğrulayın. |
spark.databricks.delta.optimizeWrite.partitioned.enabled |
false |
true |
Bölümlenmiş Delta tabloları için yazma verimliliğini ve çıktı dosya boyutlarını doğrulayın. |
spark.hadoop.parquet.block.size |
1073741824 (1 GiB) |
134217728 (128 MiB) |
Parquet yazıcıları daha küçük blokları hedefliyor. Dosya boyutlarını ve aşağı akış okuma performansını doğrulayın. |
spark.microsoft.delta.optimize.fast.enabled |
false |
true |
OPTIMIZE dosya sayısı veya tahmini birleştirme boyutu kriterleri karşılanmadıkça işi atlayabilir. Bakım sonuçlarını doğrulayın. |
spark.microsoft.delta.optimize.fileLevelTarget.enabled |
false |
true |
Daha önce sıkıştırma hedefinin en az yarısını karşılayan dosyalar tekrar sıkıştırılmıyor. Dosya düzenini OPTIMIZE sonrasında doğrulayın. |
spark.microsoft.delta.targetFileSize.adaptive.enabled |
false |
true |
Delta, hedef dosya boyutunu tablo boyutuna göre hesaplar. Ortaya çıkan dosya boyutlarını ve okuma performansını doğrulayın. |
spark.speculation.multiplier |
1.5 |
3 |
Bir görev, Spark'ın spekülatif yürütme için değerlendirmesi için medyandan üç kat daha yavaş ilerlemelidir. |
spark.speculation.quantile |
0.75 |
0.9 |
Spark, spekülatif yürütmeyi değerlendirmeden önce görevlerin %90’ının tamamlanmasını bekler. |
spark.sql.files.maxPartitionBytes |
134217728 (128 MiB) |
536870912 (512 MiB) |
Dosya taramaları her bölüme daha fazla veri yerleştirebilir. Paralellik ve yürütücü bellek kullanımını doğrulayın. |
spark.sql.maxSinglePartitionBytes |
Long.MaxValue |
128m |
Tek bir bölüm varsayılan olarak 128 MiB ile sınırlıdır. Büyük tek bir bölümleme üreten sorguları doğrulayın. |
spark.sql.orc.compression.codec |
snappy |
zstd |
Yeni ORC yazma işlemleri varsayılan olarak Zstandard sıkıştırmasını kullanır. Aşağı akış okuyucularıyla uyumluluk ve performansı doğrulayın. |
spark.sql.sources.v2.bucketing.enabled |
false |
true |
Spark, varsayılan olarak depolama bölümlü birleştirmeleri ve diğer Veri Kaynağı V2 bucket’lama davranışlarını mümkün kılar. Sorgu planlarını ve sonuçlarını doğrulayın. |
spark.sql.sources.v2.bucketing.pushPartValues.enabled |
false |
true |
Spark, Data Source V2 bucketleme için uyumlu bölüm değerlerini gönderebilir. Bucketed tablolar için sorgu planlarını doğrulayın. |
Runtime 2.0 da LEVELDB için ROCKSDB yerine spark.shuffle.service.db.backend kullanır ve spark.shuffle.service.removeShuffle değerini true olarak ayarlar. Spark, serbest bırakılan executor'lar için gereksiz shuffle bloklarını silmek amacıyla harici karıştırma servisini kullanır.
Delta paralel anlık görüntü yükleme, paralel veri atlama ve sürücü tarafı anlık görüntü yükleme de false'dan true'e değişir. Sorgu gecikmesi ve sürücü kaynak kullanımını test edin, özellikle birden fazla Delta tablosuna erişen sorgular için.
Oturum başlatma geçersiz kılmaları ve yerel yürütme
Fabric özellik dağıtımları, bir oturum başladığında temel değerleri geçersiz kılabilir.
| Configuration | Runtime 2.0 temel değeri | Genel üretim bölgelerinde Runtime 2.0 oturum başlangıç değeri | Göç değerlendirmesi |
|---|---|---|---|
spark.gluten.sql.columnar.costBasedFallback.enabled |
false |
true |
16 Ekim 2026'da kaydedilen üretim dağıtımı, Spark'a maliyet bazlı geri dönüş imkanı sağlıyor. Sorgu planlarını ve performansını, bu dağıtımdan önce test edilen iş yükleri dahil olmak üzere yeniden kontrol edin. |
spark.sql.parquet.native.writer.complexTypes.enabled |
false |
true |
Diziler, haritalar ve yapılar için yerel Parquet yazılarını ve sonraki okumalarını test edin. |
Yerel yürütme motorunu kullandığınızda, regresyon testlerinize aşağıdaki kontrolleri ekleyin:
- Sütunlu toplu iş boyutu varsayılanı 4.096'dan 10.240'a yükselirken bellek kullanımını doğrulayın.
- Sıralama tabanlı sütunlu karıştırma eşiğinin 100.000'den 4.000 bölüme düşmesiyle shuffle planlarını ve performansı karşılaştırın.
- Düzenli ifade sonuçlarını ve performansı karşılaştırın. Yerel motorlu Java regex desteği devre dışından etkin duruma değişir ve tüm regex ifadelerini Spark'a geri döndüren ayar ise
true'denfalse'ye değişir.
Apache Spark 4.1 varsayılan ayarları Fabric'te farklı şekilde korunuyor
Fabric Runtime 2.0, aşağıdaki Apache Spark 4.1 varsayılan ayarlarını kasıtlı olarak geçersiz kılar. Yukarı akış Spark 4.1 varsayılanının Fabric'te değişmeden uygulandığını varsaymayın.
| Configuration | Apache Spark 4.1 default | Fabric Runtime 2.0 değeri |
|---|---|---|
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 ve DataFrame davranışı
Spark 4.1, sorgu sonuçlarını değiştirebilen veya daha önce kabul edilen sorguların başarısız olmasına neden olabilecek davranış değişiklikleri getirir. ANSI SQL davranışlarına, dönüştürmelere, tarih ve zaman damgası işlemlerine, veri türlerine, JDBC eşlemelerine ve kullanımdan kaldırılmış SQL yapılandırmalarına özellikle dikkat edin.
Şunları karşılaştıran regresyon testlerini çalıştırın:
- Tür, hassasiyet, ölçek ve null olabilirlik dahil olmak üzere çıktı şemaları.
- Satır sayıları ve toplu sonuçlar.
- Null, taşma, sıfıra bölme ve geçersiz dönüştürme davranışı.
- Tarih, zaman damgası, saat dilimi ve aralık sonuçları.
- JDBC kaynak ve hedef tip eşlemeleri.
- Kritik iş yükleri için sorgu planları ve performans.
Kalıcı göç stratejisi olarak eski uyumluluk ayarlarını kullanmayın. Bir arızayı izole etmek için bunlardan birini geçici olarak kullanırsanız, etkilenen kodu güncelleyin ve geçişi tamamlamadan önce ayarı kaldırın. Tüm davranış değişiklikleri için Spark SQL göç rehberine bakınız.
Spark üzerinde Python ve pandas API'si
Runtime 2.0, Python 3.11'den Python 3.13'e geçer ve Spark 4.1'de getirilen PySpark değişikliklerini içerir. Spark 4.1 ayrıca pandas, NumPy ve PyArrow'un minimum desteklenen sürümlerini yükseltiyor ve önceki sürümlerde kullanımdan kaldırılan API'leri kaldırıyor.
Spark üzerindeki yaygın pandas API güncellemeleri şunlardır:
-
Series.iteritemsveitemsöğeleriniDataFrame.iteritemsile değiştirin. -
Series.appendveps.concatöğeleriniDataFrame.appendile değiştirin. - Kategorik işlemlerde kaldırılan
inplaceparametreleri atamalarla değiştirin. - Değişen parametre isimlerini ve varsayılan ayarları inceleyin, örneğin
inclusiveveSeries.str.replace(regex=...). - Sonuç sütun adlarını, indeks adlarını, dtype'ları ve sıralamayı doğrulayın.
Tam liste için PySpark göç rehberine bakınız.
Java ve Scala uygulamaları
Scala 2.13, Scala 2.12 ile ikili uyumlu değil. Runtime 2.0'da bir Runtime 1.3 JAR'ın tekrar kullanılması, kaynak kodu değişmemiş olsa bile sınıf yükleme hatalarına yol açabilir. Ayrı bir Runtime 2.0 artefaktı oluştur ve Scala için çapraz derlenen tüm bağımlılıkları güncelle.
Spark 4.1 ayrıca dahili servlet API referanslarını javax'den jakarta'e değiştirir. Özel dinleyicileri, Spark eklentilerini ve Spark'ın iç yapısıyla etkileşime giren kütüphaneleri inceleyin. Diğer motor seviyesi değişiklikleri için Spark Core göç rehberine bakınız.
Akış iş yükleri ve bağlayıcılar
Runtime 1.3'te yer alan kullanımdan kaldırılmış EventHubConnector, Runtime 2.0'da mevcut değildir. Azure Event Hubs için Kafka uyumlu endpoint ile Apache Spark Kafka connector'ı kullanın. Kurulum yönergeleri için bkz. Use Apache Spark with Azure Event Hubs for Apache Kafka.
Uygulanabilir senaryolar için, Fabric eventstream'i değerlendirerek akış verisini alabilir ve Spark Structured Streaming ile bir notebook'ta işleyebilirsiniz. Daha fazla bilgi için, Spark Structured Streaming ile bir notebook'tan Microsoft Fabric'te eventstream sorgulama konusuna bakın.
Her Yapılandırılmış Akış iş yükü için:
- Runtime 2.0 sorgusunun mevcut kontrol noktasının bir kopyasından yeniden başlatıp başlatamayacağını test edin.
- Durumlu işlemleri, olay zamanı filigranlarını, tetikleyicileri, kaynak ve havuz seçeneklerini ve çıkış şemalarını doğrulayın.
- Doğrulama tamamlanana kadar kaynak veriyi ve orijinal kontrol noktasını erişilebilir tutun.
- Bir kontrol noktası uyumsuzsa, yeni bir kontrol noktasıyla kontrollü bir yeniden başlatma planlayın. Tekrar oynatılan veya atlanan girdileri hesaba katın ve yeniden başlatmadan önce sink'i idempotent hâle getirin.
Upstream uyumluluk değişiklikleri için Structured Streaming geçiş rehberini inceleyin.
Delta Lake tabloları
Delta Lake, mevcut tablolar için geriye dönük uyumluluğu korur, böylece Runtime 2.0, Runtime 1.3 tarafından oluşturulan tablolarla çalışabilir. Ancak, daha yeni bir tablo özelliğinin etkinleştirilmesi, tablonun okuyucu veya yazıcı protokolünü yükseltebilir ve eski motorların veya diğer Fabric deneyimlerinin tabloyu kullanmasını engelleyebilir.
İlk çalışma zamanı geçişi sırasında:
- Tablo protokollerini yükseltmeyin veya Delta Lake 4.2 özelliklerini etkinleştirmeyin.
- Yeni oluşturulan tabloların ve mevcut tabloların özelliklerini ve protokol sürümlerini inceleyin. Çalışma zamanı 2.0,
spark.databricks.delta.properties.defaults.enableDeletionVectorsdeğerinitrueolarak ayarlar; manuel özellik etkinleştirmesinden kaçınmanın uyumluluğu koruduğunu varsaymak yerine elde edilen tablo meta verilerini doğrulayın. - Okuma, yazma, birleştirme, şema evrimi, bakım işlemleri ve eşzamanlı erişimi test etme.
- SQL analitik uç noktası, Power BI, boru hatları, veri akışları, olay akışları ve harici motorlar dahil olmak üzere her tabloyu okuyan veya yazan her motoru belirleyin.
- Yeni bir Delta özelliğini ancak tüm tüketiciler destekledikten sonra etkinleştirin.
Delta Lake 4.2'ye özgü özellikler Fabric'te deneyseldir ve sadece Spark deneyimleriyle sınırlıdır. Destek matrisi ve varsayılan protokol sürümleri için Delta Lake tablo formatı birlikte çalışabilirliğine bakınız.
İş yüklerinizi taşıyın
Üretim çalışma alanı için çalışma zamanını hemen değiştirmek yerine aşamalı bir göç kullanın.
1. Runtime 1.3 iş yüklerinizin envanterini çıkarın
Aşağıdaki bilgileri kaydedin:
- Not defterleri, Spark iş tanımları, işlem hatları, zamanlamalar ve bağımlı öğeler.
- İş alanı düzeyinde ve öğe düzeyinde ortam atamaları.
- Spark yapılandırmaları, eski uyumluluk ayarları dahil.
- Kamu, özel ve kullanıcı tanımlı kütüphaneler ve çözümlenen sürümleri.
- Özel JAR dosyaları, Python wheel paketleri, R paketleri, yerel kütüphaneler ve başlatma mantığı.
- Veri kaynakları, hedefler, gizli bilgiler, bağlantılar ve ağ gereksinimleri.
- Delta tabloları ve bu tabloların Spark dışındaki tüm kullanıcıları.
- Akış kontrol noktaları, şemalar, ofsetler ve kurtarma gereksinimleri.
- Beklenen çıktı şemaları, satır sayıları, veri kalitesi kontrolleri ve performans temel değerleri.
Özel kütüphaneler, yerel kod, Scala, akış durumu veya gelişmiş Delta özellikleri kullanan iş yüklerini önceliklendirin.
2. Bir Runtime 2.0 test ortamı oluşturun
Ayrı bir ortam öğesi oluşturun ve 2.0'ı (Spark 4.1, Delta 4.2) çalışma zamanı olarak seçin. Gerekli kütüphaneleri ekleyin, ortamı kaydedin ve yayınlayın. Ortamı, geliştirme veya test çalışma alanında örnek not defterlerinin kopyalarına ve Spark iş tanımlarına ekleyin.
Üretim çalışma alanınız hâlâ Runtime 1.3 kullanıyorsa, test tamamlanana kadar çalışma zamanını değiştirmeyin. Doğrulama sırasında geri alma için mevcut yapılandırmasını kullanılabilir durumda tutun.
Yaklaşan Runtime 2.0 güncellemelerini varsayılan kanala ulaşmadan doğrulamak için test ortamınızdaki erken erişim sürüm kanalını kullanın. Daha fazla bilgi için Fabric çalışma zamanı sürüm kanallarına bakınız.
3. Kütüphaneleri ve kodları güncelle
Uyumluluk incelemesinde belirtilen değişiklikleri uygulayın:
- Eksik yerleşik paketleri açık ortam bağımlılıklarıyla değiştirin.
- Python 3.13, Java 21, Scala 2.13 veya Azure Linux 3.0'ı desteklemeyen paketleri yükseltin veya değiştirin.
- Özel JAR dosyalarını ve yerel ikili dosyaları yeniden oluştur.
- Güncelleme, Spark çağrılarında PySpark ve pandas API'sini kaldırdı.
-
EventHubConnectoröğesini Kafka konnektörüyle değiştirin. - Runtime 2.0'da mevcut olmayan yapılandırmalar için Spark ayarlarını kaldırın ve varsayılanları değişen yapılandırmaların açık geçersiz kılmalarını gözden geçirin.
- Koddaki Spark SQL davranış farklılıklarını kalıcı olarak eski ayarlara bağlı olmak yerine çöz.
- Bu aşamada mevcut Delta tablo özellikleri ve protokollerini değiştirmeden tutun.
4. Uyumluluk ve regresyon testleri yapın
Aynı temsilci girişleri Runtime 1.3 ve Runtime 2.0'da çalıştırın. Karşılaştırmak:
- Tamamlanma durumu, kayıtlar, uyarılar ve yeniden denemeler.
- Şemalar ve veri türleri.
- Satır düzeyinde ve toplu sonuçlar.
- Delta tablosu geçmişi ve protokolü.
- Akış ilerlemesi, durum, gecikme ve yinelenenlerin işlenmesi.
- Yürütme süresi, kaynak kullanımı ve maliyet.
- SQL analitik uç noktasındaki, Power BI’daki, işlem hatlarındaki ve diğer tüketicilerdeki alt akış sonuçları.
Başarısızlık ve iyileşme testlerini de ekleyin, sadece başarılı çalıştırmaları değil. Test oturumu yeniden başlatmaları, iş tekrarları, kontrol noktası kurtarma ve eşzamanlı tablo erişimi.
5. Runtime 2.0'ı piyasaya sürmek
İş yüklerini kontrollü gruplar halinde taşıyın:
- Doğrulanmış Runtime 2.0 ortamını yayınlayın.
- Bunu küçük bir üretim not defteri kümesine veya Spark iş tanımlarına ekle.
- Batch işlemini çalıştırın ve çıktıları ile sonraki tüketicileri izleyin.
- Gözlem süresinden sonra kalan iş yükleriyle devam edin.
- Runtime 2.0'ı yalnızca öğe seviyesi geçiş tamamlandıktan sonra çalışma alanı varsayılan olarak ayarlayın.
Çalışma alanı çalışma zamanını değiştirmek yeni Spark oturumlarını etkiler. Mevcut oturumlar durana kadar mevcut çalışma zamanlarını kullanmaya devam eder.
6. Bir geri alma yolu bulundurun
Runtime 1.3 ortamını, artefaktları, kütüphane spesifikasyonlarını ve akış kontrol noktalarını Runtime 2.0 gözlem süresi sona erene kadar koruyun. Geri almak için Runtime 1.3 ortamını yeniden bağlayın veya önceki çalışma alanı çalışma zamanını geri getirin ve yeni bir Spark oturumu başlatın.
Önemli
Delta protokolü yükseltmesi genellikle geri alınabilir değildir. Runtime 2.0 doğrulamasını tamamlayıp tüm tablo tüketicileriyle uyumluluğu doğrulayana kadar protokolü yükselten tablo özelliklerini etkinleştirmeyin.
Geçiş denetim listesi
Göçü tamamlamadan önce şunu doğrulayın:
- [ ] Gerekli tüm Python ve R paketleri açıkça erişilebilir ve Python 3.13 veya R 4.5 ile uyumludur.
- [ ] Özel JAR dosyaları Java 21, Scala 2.13 ve Spark 4.1'i hedefliyor.
- [ ] Yerel bağımlılıklar Azure Linux 3.0'da çalışır.
- [ ] Çalışma alanı, ortam, notebook ve Spark iş tanımı ayarları kaldırılan Spark yapılandırmalarını kullanmaz.
- [ ] İş yükleri, değiştirilmiş Runtime 2.0 Spark yapılandırma varsayılan ayarlarına göre test edilir.
- [ ] Spark SQL ve PySpark regresyon testleri geçti.
- [ ] Event Hubs iş yükleri Kafka konnektörünü kullanır.
- [ ] Yapılandırılmış Akış iş yükleri tasarlandığı gibi yeniden başlatılır ve geri kazanılır.
- [ ] Delta tablo protokolleri ve özellikleri tüm tüketicilerle uyumlu olmaya devam ediyor.
- [ ] Veri kalitesi, performans ve maliyet sonuçları kabul kriterlerinizi karşılar.
- [ ] Canlıya alma, izleme ve geri alma prosedürleri belgelenir ve test edilir.