Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini adalah Fase 2 dari 4 dalam seri praktik terbaik migrasi Azure Synapse Spark ke Microsoft Fabric.
Gunakan artikel ini untuk memigrasikan beban kerja Spark Anda dari Azure Synapse ke Fabric. Artikel ini membahas menjalankan Migration Assistant, pemfaktoran ulang pola kode yang tidak dapat dikonversi secara otomatis, dan memigrasikan konfigurasi, lingkungan, dan pustaka kumpulan Spark.
Dalam artikel ini, Anda akan mempelajari cara:
- Pahami alur kerja migrasi untuk ruang kerja Synapse standar (non-Git) dan git-enabled.
- Gunakan Migration Assistant Spark untuk memigrasikan notebook, definisi pekerjaan Spark, dan kumpulan.
- Refaktor pola kode khusus Synapse untuk kompatibilitas Fabric.
- Migrasikan pengaturan kumpulan Spark, lingkungan, dan pustaka.
- Identifikasi dan atasi kesenjangan kompatibilitas pustaka antara Synapse dan Fabric.
Bermigrasi dengan Migration Assistant
Spark Migration Assistant mengotomatiskan migrasi notebook, definisi pekerjaan Spark, kumpulan, dan metadata database lake dari Synapse ke Fabric. Asisten menyalin dan mengubah item Anda, tetapi tidak menyelesaikan migrasi—Anda masih perlu merefaktor kode, mendamaikan celah konfigurasi, dan memvalidasi hasilnya.
Untuk petunjuk langkah demi langkah tentang menjalankan asisten, lihat Spark Synapse ke Fabric Spark Asisten Migrasi (Pratampil).
Asisten memigrasikan item berikut:
- Spark pool dimigrasikan ke Fabric Pools dan item lingkungan yang sesuai.
- Notebook dan lingkungan terkaitnya dimigrasikan.
- Definisi tugas Spark dipindahkan bersamaan dengan lingkungan terkait.
- Database Lake dipetakan ke skema Fabric; tabel Delta terkelola dimigrasikan melalui pintasan katalog OneLake.
Penting
Konfigurasi Spark, pustaka kustom, dan pengaturan pelaksana kustom tidak dimigrasikan oleh asisten. Anda harus mengonfigurasi ini secara manual di item lingkungan di Fabric. Ruang kerja Synapse di bawah VNet tidak dapat dimigrasikan dengan asisten.
Migrasi ruang kerja standar (non-Git)
Untuk ruang kerja tempat notebook dan SJD disimpan langsung di Synapse (bukan di repositori Git):
Jalankan Spark Migration Assistant dari ruang kerja Fabric Anda (Migrate>item rekayasa data). Pilih ruang kerja Synapse sumber dan migrasikan semua item Spark.
Validasi dependensi: pastikan versi Spark yang sama digunakan. Jika buku catatan merujuk ke buku catatan lain melalui
mssparkutils.notebook.run(), pastikan bahwa buku catatan tersebut juga sudah dimigrasikan. Migration Assistant mempertahankan struktur folder (Fabric mendukung hingga 10 tingkat bersarang).Kode refaktor: ganti
mssparkutilsdengannotebookutils, ganti referensi layanan tertaut dengan Koneksi Fabric, dan perbarui jalur file. Lihat bagian Refactoring kode Spark untuk detailnya.
Migrasi ruang kerja berkemampuan Git
Untuk ruang kerja tempat notebook dan SJD disimpan dalam repositori Azure DevOps atau GitHub, perhatikan bahwa Synapse dan Fabric menggunakan format serialisasi Git yang berbeda. Synapse menyimpan notebook sebagai JSON; Fabric menggunakan format sumber .py/.scala atau .ipynb. Anda tidak dapat menghubungkan ruang kerja Fabric ke cabang Git Synapse yang sama langsung.
Memigrasikan item. Gunakan Migration Assistant Spark untuk memigrasikan notebook dan SJD dari ruang kerja Synapse ke ruang kerja Fabric. Ini mengonversi item ke format yang kompatibel dengan Fabric.
Melakukan refaktor pada kode. Terapkan pemfaktoran ulang kode yang sama dengan skenario standar — ganti
mssparkutils, perbarui jalur file, ganti layanan tertaut. Lihat bagian Refactoring kode Spark untuk detailnya.Sambungkan ruang kerja Fabric ke Git. Sambungkan ruang kerja Fabric Anda ke cabang atau folder baru di repositori Anda (Pengatuan Ruang Kerja>Kontrol Sumber> IntegrasiGit). Gunakan cabang atau folder terpisah dari konten Synapse Anda untuk menghindari konflik. Terapkan konten ruang kerja Fabric untuk mengisi cabang baru.
Siapkan alur penyebaran (opsional). Konfigurasikan alur penyebaran Fabric (Dev → Test → Prod) untuk CI/CD yang berkelanjutan. Fabric mendukung pengikatan otomatis untuk lakehouse default dan lingkungan terlampir saat menyebarkan di seluruh tahap.
Tip
Jaga agar cabang Synapse Git Anda tetap utuh sebagai referensi historis. Buat cabang atau folder baru untuk konten Fabric. Fabric menyimpan notebook sebagai berkas sumber (.py untuk PySpark) daripada JSON, yang menyediakan diff Git yang lebih bersih untuk pemeriksaan kode.
Refaktor kode Spark
Setelah memigrasikan notebook dan definisi pekerjaan Spark, Anda perlu memperbaiki pola kode yang tidak dapat dikonversi Migration Assistant secara otomatis. Bagian ini memandu Anda mengganti API khusus Synapse, memperbarui jalur file, dan mengubah pola kredensial untuk bekerja dengan Fabric.
Audit pra-refaktor
Sebelum mengatasi pola pemfaktoran ulang individual, jalankan pencarian di seluruh basis kode di semua notebook untuk mengidentifikasi kode khusus Synapse yang memerlukan perubahan.
| Pola Pencarian | Category | Tindakan Diperlukan |
|---|---|---|
spark.synapse.linkedService |
Layanan Tertaut | Menghapus; ganti dengan autentikasi titik akhir langsung atau rahasia Key Vault |
getSecretWithLS |
Credentials | Ganti dengan getSecret(vaultUrl, secretName) |
TokenLibrary |
Token/Otentikasi | Hapus; gunakan konfigurasi OAuth langsung atau notebookutils |
synapsesql |
Konektor SQL | Ganti spark.read.synapsesql() dengan bacaan format Delta |
mssparkutils |
Utilitas Spark | Ganti dengan notebookutils (sebagian besar API identik) |
spark.catalog.listDatabases |
API Katalog | Ganti dengan spark.sql("SHOW DATABASES") |
spark.catalog.currentDatabase |
API Katalog | Ganti dengan spark.sql("SELECT CURRENT_DATABASE()") |
spark.catalog.getDatabase |
API Katalog | Ganti dengan spark.sql("DESCRIBE DATABASE ...") |
spark.catalog.listFunctions |
API Katalog | Tidak didukung di Fabric — hapus |
spark.catalog.registerFunction |
API Katalog | Tidak didukung — gunakan spark.udf.register() sebagai gantinya |
spark.catalog.functionExists |
API Katalog | Tidak didukung di Fabric — hapus |
LinkedServiceBasedTokenProvider |
Penyedia Autentikasi | Ganti dengan ClientCredsTokenProvider |
getPropertiesAsMap |
Layanan Tertaut | Menghapus; mengonfigurasi akun penyimpanan secara langsung |
spark.storage.synapse |
Layanan Tertaut | Hapus — tidak didukung di Fabric |
/user/trusted-service-user/ |
Jalur File | Ganti dengan jalur OneLake atau jalur pintasan |
cosmos.oltp |
Azure Cosmos DB | Pembaruan untuk menggunakan Key Vault untuk data sensitif alih-alih layanan yang ditautkan |
kusto.spark.synapse |
Kusto/ADX | Ganti autentikasi layanan tertaut dengan accessToken melalui getToken() |
Tip
Jalankan pencarian ini di seluruh repositori notebook Anda sebelum migrasi. Notebook-notebook tanpa kecocokan aman untuk dimigrasikan apa adanya. Notebook yang memenuhi kriteria harus diprioritaskan untuk refactoring kode menggunakan panduan terperinci di bagian berikut.
Penggunaan jalur file
Perbarui notebook Synapse yang menggunakan jalur relatif atau jalur penyimpanan yang dikelola oleh Synapse agar menggunakan jalur langsung abfss:// atau jalur OneLake di Fabric.
| Sebelum (Synapse) | Setelah (Fabric) |
|---|---|
"abfss://...@<synapse_storage>.dfs.core.windows.net/user/trusted-service-user/deltalake" |
"abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<lakehouse_id>/Tables/deltalake" |
spark.read.synapsesql("<pool>.<schema>.<table>") |
spark.read.format("delta").load("abfss://.../<lakehouse>/Tables/<table>") |
Tip
Ganti semua jalur penyimpanan yang dikelola Synapse dengan jalur OneLake (abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<item_id>/...). Untuk data ADLS Gen2, buat pintasan OneLake dan referensikan jalur pintasan sebagai gantinya.
Katalog API Spark
Fabric tidak mendukung beberapa metode spark.catalog. Ganti mereka dengan setara Spark SQL.
| Sebelum (Synapse) | Setelah (Fabric) |
|---|---|
spark.catalog.listDatabases() |
spark.sql("SHOW DATABASES").show() |
spark.catalog.currentDatabase() |
spark.sql("SELECT CURRENT_DATABASE()").first()["current_database()"] |
spark.catalog.getDatabase(db_name) |
spark.sql(f"DESCRIBE DATABASE {db_name}").show() |
spark.catalog.listFunctions() |
Tidak didukung dalam Fabric — hapus atau lewati |
spark.catalog.registerFunction(name, fn) |
Tidak didukung di Fabric — gunakan spark.udf.register() sebagai gantinya |
spark.catalog.functionExists(name) |
Tidak didukung dalam Fabric — hapus atau lewati |
Note
metode tabel spark.catalog seperti createTable(), tableExists(), dan listTables() bekerja secara normal di Fabric. Hanya metode katalog tingkat database dan tingkat fungsi yang memerlukan pemfaktoran ulang.
MSSparkUtils dan NotebookUtils
Ganti panggilan mssparkutils dengan setara Fabric notebookutils. Perubahan terkait kredensial yang paling umum adalah:
| Sebelum (Synapse) | Setelah (Fabric) |
|---|---|
mssparkutils.credentials.getSecretWithLS("sampleLS", secretKey) |
notebookutils.credentials.getSecret("https://<vault>.vault.azure.net/", secretKey) |
TokenLibrary.getSecret("foo", "bar") |
notebookutils.credentials.getSecret("https://foo.vault.azure.net/", "bar") |
Dalam Fabric, penarikan data rahasia berbasis layanan tertaut (getSecretWithLS) tidak didukung. Sebagai gantinya, referensikan URL Key Vault secara langsung dengan menggunakan notebookutils.credentials.getSecret(vaultUrl, secretName). Pola yang sama berlaku untuk TokenLibrary.getSecret() panggilan.
Note
Sebagian besar metode /> notebook.run() referensi jalur.
konektor Azure Data Explorer (Kusto)
Notebook Synapse yang tersambung ke Azure Data Explorer (Kusto) melalui layanan tertaut harus direfaktor untuk menggunakan autentikasi langsung pada titik akhir.
| Sebelum (Synapse) | Setelah (Fabric) |
|---|---|
.option("spark.synapse.linkedService", "AzureDataExplorer1") |
Menghapus referensi layanan tertaut |
| Membaca dengan opsi layanan tertaut yang diatur | .option("accessToken", notebookutils.credentials.getToken("https://<cluster>.kusto.windows.net")) |
Ganti opsi layanan tertaut dengan opsi accessToken. Gunakan notebookutils.credentials.getToken() untuk mendapatkan token untuk titik akhir kluster Kusto Anda. Opsi kueri lainnya (kustoDatabase, kustoQuery) tetap tidak berubah.
Konektor Cosmos DB
Perbarui koneksi Azure Cosmos DB di Synapse yang menggunakan layanan terhubung atau getSecretWithLS.
| Sebelum (Synapse) | Setelah (Fabric) |
|---|---|
.option("spark.synapse.linkedService", "CosmosDbLS") |
Menghapus referensi layanan tertaut |
mssparkutils.credentials.getSecretWithLS("cosmosKeyLS", "cosmosKey") |
notebookutils.credentials.getSecret("https://<vault>.vault.azure.net/", "cosmosKey") |
Ganti referensi layanan yang ditautkan dengan konfigurasi endpoint langsung Azure Cosmos DB. Simpan kunci akun Azure Cosmos DB di Azure Key Vault dan ambil dengan menggunakan notebookutils.credentials.getSecret(vaultUrl, secretName) menggantikan getSecretWithLS().
Referensi layanan tertaut
Ganti semua referensi layanan tertaut Synapse di Fabric.
| Sebelum (Synapse) | Setelah (Fabric) |
|---|---|
spark.conf.set("spark.storage.synapse.linkedServiceName", ls_name) |
Hapus — tidak didukung di Fabric |
spark.conf.set("fs.azure.account.oauth.provider.type", "com.microsoft.azure.synapse.tokenlibrary.LinkedServiceBasedTokenProvider") |
spark.conf.set("fs.azure.account.oauth.provider.type", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider") |
TokenLibrary.getPropertiesAsMap(linked_service_cfg) |
Hapus — gunakan string koneksi langsung atau konfigurasi prinsipal layanan |
Dalam Fabric, tidak ada layanan tertaut. Ganti penyedia token Synapse dengan kredensial klien OAuth standar (perwakilan layanan). Konfigurasikan fs.azure.account.auth.type, , oauth.provider.typeclient.id, client.secret, dan client.endpoint langsung dengan menggunakan spark.conf.set().
Pustaka token
TokenLibrary Synapse untuk mendapatkan token dan membaca properti layanan tertaut tidak tersedia di Fabric. Ganti dengan pola yang setara.
| Sebelum (Synapse) | Setelah (Fabric) |
|---|---|
TokenLibrary.getPropertiesAsMap(serviceConnection) |
Hapus — konfigurasikan akun penyimpanan secara langsung |
val my_account = conexion("Endpoint").toString.substring(8) |
val my_account = "<storage_account_name>" // Hardcode or retrieve via notebookutils |
mssparkutils.fs.head(internalPath, Int.MaxValue) |
notebookutils.fs.head(internalPath, Int.MaxValue) |
Untuk akses ADLS Gen2 berbasis OAuth, konfigurasikan kredensial perwakilan layanan secara langsung dengan menggunakan spark.conf.set() kunci khusus akun penyimpanan (misalnya, fs.azure.account.auth.type.<account>.dfs.core.windows.net) alih-alih mengandalkan penyedia token layanan tertaut.
Penting
Tinjau semua buku catatan untuk referensi layanan tertaut sebelum peralihan. Setiap panggilan spark.synapse.linkedService, TokenLibrary, atau getSecretWithLS yang tersisa gagal pada runtime di Fabric.
Migrasi definisi kerja Spark
Definisi pekerjaan Spark (SJD) adalah konfigurasi pekerjaan batch yang mereferensikan file eksekusi utama (.py, .jar, atau .R), pustaka referensi opsional, argumen baris perintah, dan konteks lakehouse. Meskipun Spark Migration Assistant menangani migrasi SJD secara otomatis, perbedaan penting antara Synapse dan SJD Fabric memerlukan perhatian.
Perbedaan utama antara Synapse dan SJD Fabric
Konteks Lakehouse diperlukan. Dalam Fabric, setiap SJD harus memiliki setidaknya satu lakehouse (rumah danau) yang terkait dengannya. Lakehouse ini berfungsi sebagai sistem file default untuk runtime Spark. Kode apa pun yang menggunakan jalur relatif akan membaca dan menulis dari lakehouse bawaan. Di Synapse, SJD menggunakan penyimpanan default ruang kerja (ADLS Gen2) sebagai sistem file default.
Bahasa yang didukung. Fabric mendukung PySpark (Python), Spark (Scala/Java), dan SparkR. .NET untuk Spark (C#/F#) tidak didukung di Fabric. Anda harus menulis ulang beban kerja ini di Python atau Scala sebelum migrasi.
Coba lagi kebijakan. Fabric SJD mendukung kebijakan coba lagi bawaan, seperti maksimum percobaan ulang dan interval percobaan ulang. Fitur ini berguna untuk pekerjaan Spark Structured Streaming yang perlu berjalan tanpa batas waktu.
Pengikatan lingkungan. Di Synapse, SJD mengikat ke kumpulan Spark. Di Fabric, SJD mengikat ke item lingkungan, yang berisi konfigurasi pool, pustaka, dan properti Spark. Migration Assistant secara otomatis memetakan referensi pool Synapse ke item lingkungan di Fabric.
Penjadwalan. Fabric SJD memiliki penjadwalan bawaan (Settings>Schedule) tanpa memerlukan alur terpisah. Di Synapse, penjadwalan SJD memerlukan pipeline dengan aktivitas Spark Job. Jika Anda memiliki pipeline Synapse yang hanya memicu SJD, sebaiknya pertimbangkan menggunakan fitur penjadwalan SJD bawaan dari Fabric daripada memigrasikan pipeline tersebut.
Impor/ekspor. Synapse mendukung impor dan ekspor JSON berbasis UI untuk SJD. Fabric tidak mendukung impor atau ekspor UI. Gunakan Spark Migration Assistant atau REST API Fabric untuk membuat atau memperbarui SJD secara otomatis.
Merefaktor kode SJD
Pola pemfaktoran ulang kode yang sama dalam artikel ini berlaku untuk file utama SJD. Perubahan termasuk dalam dua kategori.
Perubahan kode sumber (di dalam .pyfile utama , .jar, atau .R ):
- Ganti
mssparkutilsdengannotebookutilsuntuk kredensial dan operasi sistem file. - Perbarui jalur file yang dihardcode dalam kode ke jalur OneLake
abfss://atau jalur pintasan, jika diperlukan. SJD yang hanya menggunakan jalur relatif terhadap lakehouse default mungkin tidak memerlukan perubahan. - Ganti referensi layanan tertaut dalam kode dengan rahasia Key Vault atau Koneksi Fabric.
Note
Koneksi DMTS belum didukung dalam definisi kerja Fabric Spark (hanya didukung di buku catatan). Jika kode SJD Anda menggunakan DMTS, refactor untuk menggunakan autentikasi langsung pada titik akhir.
perubahan konfigurasi SJD (dalam pengaturan item SJD Fabric):
- Verifikasi bahwa jalur ADLS Gen2 yang direferensikan oleh file definisi utama masih dapat diakses dari ruang kerja Fabric. Jika file disimpan di penyimpanan internal ruang kerja Synapse, unggah ulang ke SJD Fabric atau pindahkan ke lokasi ADLS Gen2 yang dapat diakses.
- Verifikasi semua file referensi (
.py,.R,.jar) dapat diakses setelah migrasi. Unggah ulang file apa pun yang disimpan di penyimpanan internal ruang kerja Synapse. - Jika argumen baris perintah berisi jalur khusus Synapse atau string koneksi, perbarui ke padanan Fabric.
Memigrasikan kolam, lingkungan, dan perpustakaan
Setelah notebook dan definisi pekerjaan Spark Anda dimigrasikan, Anda perlu memutuskan strategi kumpulan dan lingkungan. Bagian ini menjelaskan kapan Anda dapat menggunakan Kumpulan Pemula Fabric (alih-alih bermigrasi), kapan harus membuat lingkungan kustom, dan cara mengidentifikasi serta mengatasi kesenjangan kompatibilitas pustaka.
Migrasi kumpulan Spark
Kumpulan Pemula Fabric
Fabric Starter Pools menyediakan startup sesi Spark dalam hitungan detik — peningkatan signifikan atas pool Synapse Spark, yang memerlukan start dingin selama beberapa menit untuk menjalankan kluster. Kumpulan Pemula siap digunakan dari platform dan tidak memerlukan konfigurasi.
Tip
Jika kumpulan Synapse Spark Anda tidak memiliki konfigurasi kustom, tidak ada pustaka kustom, dan tidak ada persyaratan ukuran simpul tertentu di luar Sedang—jangan migrasikan kumpulan. Sebagai gantinya, biarkan notebook dan definisi pekerjaan Spark Anda menggunakan pengaturan Starter Pool default area kerja Fabric. Pendekatan ini memberi Anda waktu mulai tercepat dan tanpa beban manajemen kumpulan. Hanya buat Custom Pool atau lingkungan ketika Anda memiliki kebutuhan khusus.
Kapan membuat kumpulan atau lingkungan kustom
Buat pool kustom dan/atau lingkungan kerja Fabric hanya saat beban kerja Anda memerlukannya.
- Ukuran simpul tertentu (Kecil, Besar, XLarge, XXLarge) berbeda dari Medium default.
- Pustaka kustom (paket pip, paket conda, JAR, wheel) yang tidak ada dalam runtime Fabric bawaan.
- Properti Spark kustom (misalnya,
spark.sql.shuffle.partitions,spark.executor.memory) melebihi pengaturan default. - Titik Akhir Privat Terkelola untuk mengakses sumber data privat (memerlukan Kumpulan Kustom).
- Versi runtime Spark spesifik yang berbeda dari default standar ruang kerja.
Migrasi konfigurasi dan pustaka
Migrasikan konfigurasi dan pustaka Spark ke item lingkungan di Fabric.
Untuk langkah-langkah detail tentang migrasi pustaka ke item lingkungan, lihat Migrasi Pustaka Spark dari Azure Synapse ke Fabric.
Ekspor pengaturan Spark. Di Synapse Studio, buka Kelola>Kumpulan Spark> pilih kumpulan >Konfigurasi + Perpustakaan> unduh sebagai
.yml/.conf/.json.Impor ke Lingkungan. Di Fabric, buat item lingkungan. Masuk ke Spark Komputasi>Properti Spark>Unggah file yang diekspor
Sparkproperties.yml.Memigrasikan pustaka. Untuk pustaka tingkat pool, unggah paket (wheel, JAR, tar) ke bagian pustaka lingkungan. Untuk paket PyPI/Conda, tambahkan ke konfigurasi perpustakaan publik lingkungan.
Penting
Pengaturan pustaka tingkat ruang kerja di Fabric tidak digunakan lagi. Migrasikan semua pustaka ke item lingkungan. Migrasi secara permanen menghapus konfigurasi tingkat workspace yang ada—unduh semua pengaturan sebelum mengaktifkan lingkungan.
Kompatibilitas pustaka: Synapse vs. Fabric
Fabric Runtime 1.3 (Spark 3.5) dikirim dengan 223 Python, 183 Java/Scala, dan 135 pustaka R bawaan. Sebagian besar pustaka Synapse tersedia di Fabric, tetapi ada celah yang dapat menyebabkan kegagalan runtime jika tidak ditangani sebelum migrasi.
Untuk mengidentifikasi pustaka mana yang benar-benar digunakan notebook Anda, jalankan pemeriksaan ini sebelum meninjau tabel selisih.
-
Python notebooks: Cari
importdanfrom ... importpernyataan di semua file.py/.ipynb. -
Buku catatan Java/Scala dan SJD: Cari pernyataan
importdan koordinat Maven; cari paket seperticom.azure.cosmos.sparkataucom.microsoft.kusto.spark. -
Export daftar dependensi lengkap: Jalankan
pip freezedi notebook Synapse, bandingkan dengan manifes Fabric Runtime 1.3. Hanya perpustakaan perangkat lunak yang muncul baik di output Andapip freezemaupun di tabel celah di bawah ini yang memerlukan tindakan. - Perpustakaan kustom tingkat pool dan tingkat workspace: Di Synapse Studio, buka Kelola>Apache Spark Pools> pilih >pool Packages untuk melihat pustaka kustom yang perlu diunggah ulang ke item lingkungan.
Perpustakaan Python tidak ditemukan di Fabric
| Category | Pustaka |
Perbuatan |
|---|---|---|
| CUDA / GPU (9 lib) | libcublas, libcufft, libcufile, libcurand, libcusolver, libcusparse, libnpp, libnvfatbin, libnvjitlink, libnvjpeg | Tidak tersedia—Fabric tidak mendukung kumpulan GPU. Refaktor beban kerja GPU untuk menggunakan alternatif berbasis CPU atau tetap menggunakan Synapse. |
| Klien HTTP / API | httpx, httpcore, h11, google-auth, jmespath | Instal melalui lingkungan: pip install httpx google-auth jmespath |
| ML / Interpretabilitas | interpret, interpret-inti | Instal melalui lingkungan: pip install interpret |
| Serialisasi data | marshmallow, jsonpickle, frozendict, fixedint | Instal melalui lingkungan jika diperlukan: pip install marshmallow jsonpickle |
| Pengelogan / Telemetri | Lancar Logger, Ramah Manusia, Pustaka-Metadata-Cooker, Impulse-Python-Handler | fluent-logger: install jika digunakan. Yang lain bersifat internal Synapse—kemungkinan besar tidak diperlukan. |
| Internal Jupyter | jupyter-client, jupyter-core, jupyter-ui-poll, jupyterlab-widgets, ipython-pygments-lexers | Fabric mengelola infrastruktur Jupyter secara internal. Pustaka ini biasanya tidak diperlukan dalam kode pengguna. |
| Pustaka Sistem /C | libgcc, libstdcxx, libgrpc, libabseil, libexpat, libnsl, libzlib | Libs sistem tingkat rendah. Biasanya tidak diimpor secara langsung. Hanya instal jika Anda memiliki ekstensi C yang bergantung padanya. |
| File /konkurensi | filelock, fsspec, knack | Instal melalui lingkungan jika digunakan: pip install filelock fsspec |
pustaka Java/Scala hilang dari Fabric
| Library | Versi Synapse | Perbuatan |
|---|---|---|
| azure-cosmos-analytics-spark | 2.2.5 | Instal sebagai JAR kustom di item lingkungan jika pekerjaan Spark Anda menggunakan konektor analitik Cosmos DB. |
| junit-jupiter-params | 5.5.2 | Pustaka khusus pengujian. Tidak diperlukan pada notebook produksi. |
| junit-platform-commons | 1.5.2 | Pustaka khusus pengujian. Tidak diperlukan pada notebook produksi. |
Pustaka Bahasa Pemrograman R
Hanya satu perbedaan: Synapse menyertakan paket lightgbm R (v4.6.0) yang tidak dalam Fabric. Instal melalui lingkungan jika diperlukan. Fabric menambahkan FabricTelemetry (v1.0.2) yang merupakan bagian internal dari Fabric.
Perbedaan versi penting
Ada 68 pustaka Python di kedua platform tetapi dengan versi yang berbeda. Sebagian besar adalah perbedaan versi minor, tetapi 17 memiliki pembaruan versi besar yang dapat berdampak pada perilaku.
| Library | Versi Fabric | Versi Synapse | Impact |
|---|---|---|---|
| libxgboost | 2.0.3 | 3.0.1 | XGBoost API berubah antara v2 dan v3. Menguji kode pelatihan/prediksi model. |
| Flask | 2.2.5 | 3.0.3 | Flask 3.x memiliki perubahan signifikan. Jika melayani API Flask dari notebook, uji secara menyeluruh. |
| lxml | 4.9.3 | 5.3.0 | Perubahan API minor. Uji alur kerja penguraian XML. |
| libprotobuf | 3.20.3 | 4.25.3 | Protobuf 4.x memiliki perubahan yang signifikan untuk definisi proto khusus. |
| markupsafe | 2.1.3 | 3.0.2 | MarkupSafe 3.x menghilangkan dukungan Python 3.7 tetapi API kompatibel. |
| libpq | 12.17 | 17.4 | Pustaka klien PostgreSQL. Lompatan versi utama — lakukan pengujian koneksi database. |
| libgcc-ng / libstdcxx-ng | 11.2.0 | 15.2.0 | Runtime GCC Mungkin memengaruhi kompatibilitas ekstensi C. |
Note
Synapse umumnya mengirimkan versi pustaka tingkat sistem yang lebih baru (GCC, protobuf, libpq) sementara Fabric mengirimkan versi pustaka data/ML yang lebih baru (paket yang lebih Python secara keseluruhan). Jika Anda membutuhkan versi tertentu, pin ke konfigurasi item lingkungan Anda.
Tip
Lakukan pemeriksaan kompatibilitas cepat: ekspor daftar pustaka pool Synapse Anda (pip freeze), bandingkan dengan manifes Fabric Runtime 1.3, dan pra-instal pustaka yang hilang di item lingkungan Anda sebelum menjalankan notebook yang dimigrasikan. Untuk perbandingan baris demi baris dari setiap pustaka dan versi bawaan antara runtime Fabric dan Synapse Spark, lihat microsoft/synapse-spark-runtime GitHub repository.