Fabric Runtime 1.3'ten Runtime 2.0'a geçiş yapın

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.12 veya _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'den false'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.iteritems ve items öğelerini DataFrame.iteritems ile değiştirin.
  • Series.append ve ps.concat öğelerini DataFrame.append ile değiştirin.
  • Kategorik işlemlerde kaldırılan inplace parametreleri atamalarla değiştirin.
  • Değişen parametre isimlerini ve varsayılan ayarları inceleyin, örneğin inclusive ve Series.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.enableDeletionVectors değerini true olarak 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:

  1. Eksik yerleşik paketleri açık ortam bağımlılıklarıyla değiştirin.
  2. Python 3.13, Java 21, Scala 2.13 veya Azure Linux 3.0'ı desteklemeyen paketleri yükseltin veya değiştirin.
  3. Özel JAR dosyalarını ve yerel ikili dosyaları yeniden oluştur.
  4. Güncelleme, Spark çağrılarında PySpark ve pandas API'sini kaldırdı.
  5. EventHubConnector öğesini Kafka konnektörüyle değiştirin.
  6. 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.
  7. Koddaki Spark SQL davranış farklılıklarını kalıcı olarak eski ayarlara bağlı olmak yerine çöz.
  8. 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:

  1. Doğrulanmış Runtime 2.0 ortamını yayınlayın.
  2. Bunu küçük bir üretim not defteri kümesine veya Spark iş tanımlarına ekle.
  3. Batch işlemini çalıştırın ve çıktıları ile sonraki tüketicileri izleyin.
  4. Gözlem süresinden sonra kalan iş yükleriyle devam edin.
  5. 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.