Migrasi dari Fabric Runtime 1.3 ke Runtime 2.0

Fabric Runtime 2.0 adalah runtime terbaru yang tersedia secara umum (GA) dan runtime default untuk beban kerja Apache Spark di Microsoft Fabric. Ini memperbarui sistem operasi, Java, Scala, Python, R, Apache Spark, dan Delta Lake. Karena beberapa pembaruan ini melewati batas versi utama, validasi notebook, definisi pekerjaan Spark, pustaka, dan pipeline data Anda sebelum memindahkan beban produksi dari Runtime 1.3.

Panduan ini menjelaskan perubahan yang dapat memengaruhi migrasi dan menyediakan proses bertahap untuk memindahkan beban kerja Anda ke Runtime 2.0.

Apa yang berubah di Runtime 2.0

Tabel berikut membandingkan komponen utama dalam Runtime 1.3 dan Runtime 2.0.

Komponen Runtime 1.3 Runtime 2.0 Pertimbangan migrasi
Tahap rilis Pengumuman berakhirnya dukungan (EOSA) GA Migrasikan beban kerja produksi ke runtime GA yang didukung.
Apache Spark 3.5.5 4.1.1 Tinjau perubahan perilaku Spark 4.1 dan API yang dihapus.
Danau Delta 3.2 4.2 Validasi fitur tabel dan kompatibilitas protokol di setiap beban kerja Fabric yang menggunakan tabel Anda.
Java 11 21 Bangun ulang dan uji pustaka Java serta ketergantungan Java Native Interface (JNI).
Scala 2.12.17 2.13.16 Kompilasi ulang file JAR Scala untuk Scala 2.13. Artefak Scala 2.12 dan 2.13 tidak kompatibel secara biner.
Python 3.11 3.13 Pastikan setiap paket Python menyediakan rilis yang kompatibel dengan Python 3.13 dan wheel Linux.
R 4.4.1 4.5.2 Instal ulang dan uji paket R kustom. SparkR deprecated di Spark 4.1.
Sistem operasi Azure Linux 2.0 (Mariner 2.0) Azure Linux 3.0 (Mariner 3.0) Bangun ulang pustaka native dan biner kustom untuk Azure Linux 3.0.

Runtime 2.0 juga menyediakan kemampuan baru Apache Spark 4.1, termasuk tipe data VARIANT, fungsi yang didefinisikan pengguna SQL, variabel sesi, sintaks pipa, kolasi string, API Python Data Source, fungsi tabel yang didefinisikan pengguna Python, profil PySpark terpadu, dan API manajemen status serta debugging Structured Streaming yang baru. Untuk gambaran umum, lihat Runtime 2.0 di Fabric.

Tinjau perubahan kompatibilitas

Tinjau area berikut sebelum Anda mengubah workspace atau lingkungan ke Runtime 2.0.

Pustaka bawaan dan kustom

Runtime 2.0 menghilangkan beberapa paket Python dan R yang sudah terpasang sebelumnya yang tersedia di Runtime 1.3. Mengurangi set paket default menjaga runtime tetap minim dan mengurangi ruang lingkup risiko insiden keamanan. Paket yang tersedia tanpa konfigurasi di Runtime 1.3 mungkin perlu ditambahkan secara eksplisit ke lingkungan Runtime 2.0 Anda.

Gunakan Library Manager untuk menambahkan hanya paket yang diperlukan oleh beban kerja Anda, lalu simpan dan publikasikan lingkungannya. Library Manager menentukan dependensi yang diperlukan paket, jadi jangan tambahkan setiap dependensi dalam inventory berikut secara individual. Jangan menganggap bahwa sebuah pustaka tersedia atau versinya tidak berubah:

  • Bandingkan inventaris paket Runtime 1.3 dan Runtime 2.0 di repositori rilis runtime Fabric.
  • Tambahkan PyPI, Conda, Maven, R, atau pustaka kustom yang hilang ke lingkungan dan publikasikan.
  • Sematkan versi untuk beban kerja produksi agar resolusi ketergantungan dapat diulang.
  • Pastikan paket Python mendukung Python 3.13. Paket dengan ekstensi native harus menyediakan wheel Linux yang kompatibel atau berhasil dibangun di Azure Linux 3.0.
  • Ganti dependensi Scala 2.12 dengan artefak Scala 2.13. Nama artefak biasanya mencakup versi biner Scala, seperti _2.12 atau _2.13.
  • Kompilasi ulang file JAR kustom untuk kompatibilitas dengan Java 21, Scala 2.13, dan Spark 4.1. Uji dependensi transitif untuk mendeteksi konflik dengan pustaka yang disediakan oleh runtime.
  • Bangun ulang pustaka native kustom untuk Azure Linux 3.0.

Fabric memigrasikan spesifikasi pustaka ketika Anda mengubah runtime lingkungan yang sudah ada, tetapi tidak dapat menjamin bahwa pustaka tersebut tetap kompatibel. Publikasi gagal ketika resolusi ketergantungan menemukan konflik. Untuk opsi instalasi paket dan mode publikasi, lihat Kelola pustaka di lingkungan Fabric.

Paket yang dihapus dari lingkungan default

Inventaris berikut mencakup paket yang ditujukan untuk pengguna dan ketergantungan tingkat rendah atau transitifnya. Cari daftar ini untuk paket yang digunakan oleh beban kerja Runtime 1.3 Anda. Jika sebuah paket terdaftar, tambahkan versi yang kompatibel dengan Python 3.13 atau R 4.5 melalui Library Manager di lingkungan Runtime 2.0 Anda.

Lingkungan Python: paket 348 Conda
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
Lingkungan Python: paket 24 pip
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
Lingkungan R: 67 paket Conda
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

Jika perlindungan akses keluar atau jaringan virtual yang dikelola menghambat akses ke repositori publik, unduh file wheel yang kompatibel atau host mirror paket. Untuk petunjuk, lihat Kelola pustaka dengan akses jaringan terbatas di Fabric.

Perubahan konfigurasi Spark

Runtime 2.0 menambahkan dan menghapus pengaturan Spark serta mengubah beberapa nilai default. Fabric juga menggunakan pengaturan default berbeda dari Apache Spark untuk beberapa pengaturan.

Sebelum Anda bermigrasi, tinjau pengaturan Spark yang Anda konfigurasikan untuk workspace, lingkungan, notebook, dan definisi pekerjaan Spark Anda. Hapus pengaturan yang sudah tidak didukung, dan uji beban kerja yang bergantung pada default yang berubah. Gunakan default runtime kecuali dokumentasi mengarahkan Anda untuk mengubah pengaturan.

Perubahan nilai default yang menonjol

Tabel berikut mencantumkan perubahan baseline yang dipilih. Tidak diatur berarti baseline tidak secara eksplisit menetapkan nilai; tidak berarti fitur tersebut dinonaktifkan.

Configuration Nilai runtime 1.3 Nilai runtime 2.0 Pertimbangan migrasi
spark.checkpoint.compress false true File checkpoint dikompresi secara bawaan. Validasi interoperabilitas checkpoint dan perilaku penyimpanan.
spark.databricks.delta.optimizeWrite.enabled true Belum diatur Properti tersebut tidak dihapus. Validasi perilaku penulisan teroptimasi yang efektif dengan pengaturan tabel, sesi, dan profil sumber daya Anda.
spark.databricks.delta.optimizeWrite.partitioned.enabled false true Validasi throughput tulis dan ukuran file output untuk tabel Delta yang dipartisi.
spark.hadoop.parquet.block.size 1073741824 (1 GiB) 134217728 (128 MiB) Writer Parquet menargetkan blok-blok yang lebih kecil. Validasi ukuran file dan kinerja pembacaan downstream.
spark.microsoft.delta.optimize.fast.enabled false true OPTIMIZE dapat melewati pekerjaan kecuali kriteria jumlah file atau perkiraan ukuran pemadatan terpenuhi. Validasikan hasil pemeliharaan.
spark.microsoft.delta.optimize.fileLevelTarget.enabled false true File yang sebelumnya mencapai setidaknya setengah dari target pemadatannya tidak akan dikompakkan lagi. Validasi tata letak file setelah OPTIMIZE.
spark.microsoft.delta.targetFileSize.adaptive.enabled false true Delta menghitung ukuran file target berdasarkan ukuran tabel. Validasi ukuran file hasil dan performa baca.
spark.speculation.multiplier 1.5 3 Sebuah tugas harus berjalan tiga kali lebih lambat dari median sebelum Spark mempertimbangkannya untuk eksekusi spekulatif.
spark.speculation.quantile 0.75 0.9 Spark menunggu 90% tugas selesai sebelum mempertimbangkan eksekusi spekulatif.
spark.sql.files.maxPartitionBytes 134217728 (128 MiB) 536870912 (512 MiB) Pemindaian file dapat mengemas lebih banyak data ke dalam setiap partisi. Validasi penggunaan paralelisme dan memori eksekutor.
spark.sql.maxSinglePartitionBytes Long.MaxValue 128m Satu partisi dibatasi secara default hingga 128 MiB. Validasikan kueri yang menghasilkan partisi tunggal besar.
spark.sql.orc.compression.codec snappy zstd Penulisan ORC baru menggunakan kompresi Zstandard secara default. Verifikasi kompatibilitas dan kinerja dengan pembaca hilir.
spark.sql.sources.v2.bucketing.enabled false true Spark secara default mengaktifkan join yang dipartisi berdasarkan penyimpanan dan perilaku bucketing Data Source V2 lainnya. Validasi rencana kueri dan hasil kueri.
spark.sql.sources.v2.bucketing.pushPartValues.enabled false true Spark dapat mendorong nilai partisi yang kompatibel untuk Data Source V2 bucketing. Validasikan rencana kueri untuk tabel ber-bucket.

Runtime 2.0 juga menggunakan ROCKSDB pengganti LEVELDB untuk spark.shuffle.service.db.backend dan mengatur spark.shuffle.service.removeShuffle ke true. Spark menggunakan layanan shuffle eksternal untuk menghapus blok shuffle yang tidak diperlukan untuk eksekutor yang alokasinya telah dilepas.

Pemuatan snapshot paralel delta, data skipping paralel, dan pemuatan snapshot di sisi driver juga berubah dari false ke true. Uji latensi kueri dan penggunaan sumber daya driver, terutama untuk kueri yang mengakses beberapa tabel Delta.

Override mulai sesi dan eksekusi native

Peluncuran fitur Fabric dapat menimpa nilai dasar saat sesi dimulai.

Configuration Nilai dasar Runtime 2.0 Nilai mulai sesi runtime 2.0 di wilayah produksi publik Pertimbangan migrasi
spark.gluten.sql.columnar.costBasedFallback.enabled false true Peluncuran produksi yang tercatat pada 16 Oktober 2026 memungkinkan mekanisme fallback berbasis biaya ke Spark. Periksa ulang rencana dan kinerja query, termasuk beban kerja yang telah diuji sebelum penerapan tersebut.
spark.sql.parquet.native.writer.complexTypes.enabled false true Uji penulisan native Parquet dan bacaan downstream untuk array, peta, dan struct.

Saat Anda menggunakan mesin eksekusi native, sertakan pemeriksaan berikut dalam tes regresi Anda:

  • Validasi penggunaan memori dengan peningkatan ukuran batch kolom default dari 4.096 menjadi 10.240.
  • Bandingkan rencana shuffle dan kinerja dengan ambang columnar shuffle berbasis sort yang menurun dari 100.000 menjadi 4.000 partisi.
  • Bandingkan hasil dan kinerja ekspresi reguler. Dukungan regex Java native-engine berubah dari dinonaktifkan menjadi diaktifkan, dan pengaturan yang mengembalikan semua ekspresi regex ke Spark berubah dari true ke false.

Default Apache Spark 4.1 dipertahankan secara berbeda di Fabric

Fabric Runtime 2.0 secara sengaja menggantikan default Apache Spark 4.1 berikut. Jangan berasumsi bahwa default Spark 4.1 upstream berlaku tidak berubah di Fabric.

Configuration Default Apache Spark 4.1 Nilai 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

Perilaku Spark SQL dan DataFrame

Spark 4.1 memperkenalkan perubahan perilaku yang dapat mengubah hasil kueri atau menyebabkan kueri yang sebelumnya diterima gagal. Berikan perhatian khusus pada perilaku SQL ANSI, cast, operasi tanggal dan timestamp, tipe data, pemetaan JDBC, dan konfigurasi SQL yang sudah tidak digunakan.

Jalankan tes regresi yang membandingkan:

  • Skema output, termasuk tipe, presisi, skala, dan nullabilitas.
  • Jumlah baris dan hasil agregat.
  • Perilaku null, overflow, division-by-zero, dan invalid-cast.
  • Hasil tanggal, timestamp, zona waktu, dan interval.
  • Pemetaan tipe sumber dan sink JDBC.
  • Rencana kueri dan kinerja untuk beban kerja kritis.

Jangan gunakan pengaturan kompatibilitas lama sebagai strategi migrasi permanen. Jika Anda sementara menggunakannya untuk mengisolasi kegagalan, perbarui kode yang terdampak dan hapus pengaturannya sebelum menyelesaikan migrasi. Untuk seluruh perubahan perilaku, lihat panduan migrasi Spark SQL.

API Python dan pandas di Spark

Runtime 2.0 berpindah dari Python 3.11 ke Python 3.13 dan mencakup perubahan PySpark yang diperkenalkan di Spark 4.1. Spark 4.1 juga menaikkan versi minimum yang didukung dari pandas, NumPy, dan PyArrow serta menghapus API yang sudah tidak digunakan pada rilis sebelumnya.

Pembaruan API pandas yang umum di Spark meliputi:

  • Ganti DataFrame.iteritems dan Series.iteritems dengan items.
  • Ganti DataFrame.append dan Series.append dengan ps.concat.
  • Ganti parameter yang dihapus inplace pada operasi kategorikal dengan penugasan.
  • Tinjau nama parameter yang telah diubah dan default, seperti inclusive dan Series.str.replace(regex=...).
  • Validasi nama kolom hasil, nama indeks, dtype, dan urutan.

Untuk daftar lengkapnya, lihat panduan migrasi PySpark.

Aplikasi Java dan Scala

Scala 2.13 tidak kompatibel secara biner dengan Scala 2.12. Menggunakan ulang JAR Runtime 1.3 di Runtime 2.0 dapat menyebabkan kesalahan pemuatan kelas meskipun kode sumber tidak berubah. Bangun artefak Runtime 2.0 terpisah dan perbarui semua dependensi cross-built Scala.

Spark 4.1 juga mengubah referensi API servlet internalnya dari javax menjadi jakarta. Tinjau listener kustom, ekstensi Spark, dan pustaka yang berinteraksi dengan internal Spark. Untuk perubahan tingkat mesin lainnya, lihat panduan migrasi Spark Core.

Beban kerja dan konektor streaming

Fitur deprecated EventHubConnector yang termasuk dalam Runtime 1.3 tidak tersedia di Runtime 2.0. Gunakan konektor Apache Spark Kafka dengan endpoint yang kompatibel dengan Kafka untuk Azure Event Hubs. Untuk panduan pengaturan, lihat Use Apache Spark with Azure Event Hubs for Apache Kafka.

Untuk skenario yang relevan, Anda juga dapat mengevaluasi Fabric eventstream untuk mengimpor data streaming dan memprosesnya dalam notebook dengan Spark Structured Streaming. Untuk informasi lebih lanjut, lihat Query eventstream di Microsoft Fabric dari notebook dengan Spark Structured Streaming.

Untuk setiap beban kerja Structured Streaming:

  • Uji apakah kueri Runtime 2.0 dapat di-restart dari salinan checkpoint yang ada.
  • Validasi operasi stateful, watermark waktu peristiwa, trigger, opsi sumber dan sink, serta skema output.
  • Simpan data sumber dan checkpoint asli hingga validasi selesai.
  • Jika checkpoint tidak kompatibel, rencanakan restart terkontrol dengan checkpoint baru. Perhitungkan input yang diputar ulang atau dilewati, dan buat sink menjadi idempoten sebelum Anda memulai ulang.

Tinjau panduan migrasi Structured Streaming untuk perubahan kompatibilitas hulu.

Tabel Delta Lake

Delta Lake menjaga kompatibilitas mundur untuk tabel yang sudah ada, sehingga Runtime 2.0 dapat bekerja dengan tabel yang dibuat oleh Runtime 1.3. Namun, mengaktifkan fitur tabel yang lebih baru dapat meningkatkan protokol pembaca atau penulis untuk tabel tersebut dan mencegah engine lama atau pengalaman Fabric lain menggunakan tabel tersebut.

Selama migrasi runtime awal:

  • Jangan upgrade protokol tabel atau aktifkan fitur Delta Lake 4.2.
  • Periksa fitur dan versi protokol dari tabel yang baru dibuat serta tabel yang sudah ada. Runtime 2.0 mengatur spark.databricks.delta.properties.defaults.enableDeletionVectors ke true; verifikasi metadata tabel yang dihasilkan daripada mengasumsikan bahwa menghindari pengaktifan fitur secara manual menjaga kompatibilitas.
  • Menguji pembacaan, penulisan, penggabungan, evolusi skema, operasi pemeliharaan, dan akses bersamaan.
  • Identifikasi setiap mesin yang membaca atau menulis setiap tabel, termasuk endpoint analitik SQL, Power BI, pipeline, dataflow, eventstream, dan mesin eksternal.
  • Aktifkan fitur Delta baru hanya setelah semua konsumen mendukungnya.

Fitur khusus Delta Lake 4.2 bersifat eksperimental di Fabric dan terbatas pada pengalaman Spark. Untuk matriks dukungan dan versi protokol default, lihat interoperabilitas format tabel Delta Lake.

Migrasikan beban kerja Anda

Gunakan migrasi bertahap daripada segera mengubah runtime untuk workspace produksi.

1. Inventarisasi beban kerja Runtime 1.3 Anda

Catat informasi berikut:

  • Notebook, definisi pekerjaan Spark, pipeline, jadwal, dan item dependen.
  • Penempatan lingkungan tingkat workspace dan tingkat item.
  • Konfigurasi Spark, termasuk pengaturan kompatibilitas lama.
  • Pustaka publik, privat, dan khusus beserta versi hasil resolusi.
  • File JAR kustom, wheel Python, paket R, pustaka native, dan logika inisialisasi.
  • Sumber data, tujuan, secret, koneksi, dan kebutuhan jaringan.
  • Tabel Delta dan semua konsumen non-Spark dari tabel tersebut.
  • Checkpoint streaming, skema, offset, dan persyaratan pemulihan.
  • Skema output yang diharapkan, jumlah baris, pemeriksaan kualitas data, dan baseline kinerja.

Prioritaskan beban kerja yang menggunakan pustaka kustom, kode asli, Scala, state streaming, atau fitur Delta lanjutan.

2. Buat lingkungan pengujian Runtime 2.0

Buat item lingkungan terpisah dan pilih 2.0 (Spark 4.1, Delta 4.2) sebagai runtime-nya. Tambahkan pustaka yang diperlukan, simpan environment, dan publikasikan. Lampirkan environment ke salinan notebook representatif dan definisi pekerjaan Spark di workspace pengembangan atau pengujian.

Jika workspace produksi Anda masih menggunakan Runtime 1.3, jangan ubah runtime-nya sampai pengujian selesai. Pertahankan konfigurasi yang ada agar tersedia untuk rollback selama validasi.

Untuk memvalidasi pembaruan Runtime 2.0 yang akan datang sebelum mencapai saluran default, gunakan saluran rilis early access di lingkungan pengujian Anda. Untuk informasi lebih lanjut, lihat saluran rilis runtime Fabric.

3. Perbarui pustaka dan kode

Terapkan perubahan yang diidentifikasi dalam tinjauan kompatibilitas:

  1. Ganti paket bawaan yang tidak ada dengan dependensi lingkungan yang eksplisit.
  2. Tingkatkan atau ganti paket yang tidak mendukung Python 3.13, Java 21, Scala 2.13, atau Azure Linux 3.0.
  3. Bangun ulang file JAR kustom dan biner native.
  4. Pembaruan: menghapus panggilan ke API PySpark dan pandas pada Spark.
  5. Ganti EventHubConnector dengan konektor Kafka.
  6. Hapus pengaturan Spark untuk konfigurasi yang tidak tersedia di Runtime 2.0, dan tinjau override eksplisit dari konfigurasi yang default-nya berubah.
  7. Selesaikan perbedaan perilaku Spark SQL dalam kode daripada bergantung secara permanen pada pengaturan lama.
  8. Jaga fitur dan protokol tabel Delta yang ada tetap tidak berubah selama fase ini.

4. Jalankan tes kompatibilitas dan regresi

Jalankan input representatif yang sama pada Runtime 1.3 dan Runtime 2.0. Membandingkan:

  • Status penyelesaian, log, peringatan, dan percobaan ulang.
  • Skema dan tipe data.
  • Hasil tingkat baris dan agregat.
  • Riwayat dan protokol tabel Delta.
  • Kemajuan streaming, status, latensi, dan penanganan duplikat.
  • Waktu eksekusi, penggunaan sumber daya, dan biaya.
  • Hasil hilir tersedia di endpoint analitik SQL, Power BI, pipeline, dan konsumen lainnya.

Sertakan uji kegagalan dan pemulihan, bukan hanya pengujian yang berhasil. Sesi uji dimulai ulang, percobaan ulang pekerjaan, pemulihan checkpoint, dan akses tabel secara bersamaan.

5. Luncurkan Runtime 2.0

Pindahkan beban kerja dalam batch terkontrol:

  1. Publikasikan lingkungan Runtime 2.0 yang telah divalidasi.
  2. Lampirkan itu ke set kecil notebook produksi atau definisi job Spark.
  3. Jalankan batch dan pantau output serta konsumen downstream.
  4. Lanjutkan dengan sisa beban kerja setelah periode observasi.
  5. Atur Runtime 2.0 sebagai default workspace hanya setelah migrasi tingkat item selesai.

Mengubah runtime workspace memengaruhi sesi Spark baru. Sesi yang ada akan terus menggunakan runtime masing-masing saat ini sampai berhenti.

6. Siapkan jalur rollback

Pertahankan lingkungan Runtime 1.3, artefak, spesifikasi pustaka, dan checkpoint streaming hingga periode observasi Runtime 2.0 berakhir. Untuk melakukan rollback, pasang kembali lingkungan Runtime 1.3 atau pulihkan runtime workspace sebelumnya dan mulai sesi Spark baru.

Important

Upgrade protokol Delta umumnya tidak dapat dibalik. Jangan aktifkan fitur tabel yang menaikkan protokol sampai Anda menyelesaikan validasi Runtime 2.0 dan mengonfirmasi kompatibilitas dengan setiap pengguna tabel.

Daftar periksa migrasi

Sebelum Anda menyelesaikan migrasi, pastikan bahwa:

  • [ ] Setiap paket Python dan R yang diperlukan secara eksplisit tersedia dan kompatibel dengan Python 3.13 atau R 4.5.
  • [ ] File JAR kustom menargetkan Java 21, Scala 2.13, dan Spark 4.1.
  • [ ] Dependensi native bekerja di Azure Linux 3.0.
  • [ ] Pengaturan definisi pekerjaan workspace, lingkungan, notebook, dan Spark tidak menggunakan konfigurasi Spark yang telah dihapus.
  • [ ] Beban kerja diuji terhadap konfigurasi default Runtime 2.0 Spark yang telah diubah.
  • [ ] Tes regresi Spark SQL dan PySpark lulus.
  • [ ] Beban kerja Event Hubs menggunakan konektor Kafka.
  • [ ] Beban kerja Structured Streaming dimulai ulang dan dipulihkan sesuai desain.
  • [ ] Protokol dan fitur tabel Delta tetap kompatibel dengan semua konsumen.
  • [ ] Hasil kualitas data, kinerja, dan biaya memenuhi kriteria penerimaan Anda.
  • [ ] Prosedur peluncuran produksi, pemantauan, dan rollback didokumentasikan dan diuji.