Runtime Apache Spark di Fabric

Microsoft Fabric Runtime adalah platform terintegrasi Azure berdasarkan Apache Spark yang memungkinkan eksekusi dan manajemen pengalaman rekayasa data dan ilmu data. Ini menggabungkan komponen utama dari sumber internal dan sumber terbuka, memberi pelanggan solusi yang komprehensif. Untuk kesederhanaan, kami merujuk ke Microsoft Fabric Runtime yang didukung oleh Apache Spark sebagai Fabric Runtime.

Komponen utama Fabric Runtime:

  • Apache Spark - pustaka komputasi terdistribusi sumber terbuka yang kuat yang memungkinkan pemrosesan data skala besar dan tugas analitik. Apache Spark menyediakan platform serbaguna dan berperforma tinggi untuk pengalaman rekayasa data dan ilmu data.

  • Delta Lake - lapisan penyimpanan sumber terbuka yang membawa transaksi ACID dan fitur keandalan data lainnya ke Apache Spark. Terintegrasi dalam Fabric Runtime, Delta Lake meningkatkan kemampuan pemrosesan data dan memastikan konsistensi data di beberapa operasi bersamaan.

  • Paket tingkat default untuk paket Java/Scala, Python, dan R - yang mendukung beragam bahasa dan lingkungan pemrograman. Paket ini secara otomatis diinstal dan dikonfigurasi, memungkinkan pengembang menerapkan bahasa pemrograman pilihan mereka untuk tugas pemrosesan data.

  • Microsoft Fabric Runtime dibangun di atas sistem operasi sumber terbuka yang kuat, memastikan kompatibilitas dengan berbagai konfigurasi perangkat keras dan persyaratan sistem.

Di bawah ini, Anda menemukan perbandingan komponen utama yang komprehensif, termasuk versi Apache Spark, sistem operasi yang didukung, Java, Scala, Python, Delta Lake, dan R, untuk Runtime 1.1 dan Runtime 1.2 dalam platform Microsoft Fabric.

Runtime 1.1 Runtime 1.2 Runtime 1.3
Apache Spark 3.3.1 3.4.1 3.5.0
Sistem Operasi Ubuntu 18.04 Mariner 2.0 Mariner 2.0
Java 8 11 11
Scala 2.12.15 2.12.17 2.12.17
Python 3.10 3.10 3.10
Delta Lake 2.2.0 2.4.0 3.0.0
R 4.2.2 4.2.2 T/A

Kunjungi Runtime 1.1 atau Runtime 1.2 untuk menjelajahi detail, fitur baru, peningkatan, dan skenario migrasi untuk versi runtime tertentu.

Pengoptimalan fabric

Di Microsoft Fabric, baik mesin Spark maupun implementasi Delta Lake menggabungkan pengoptimalan dan fitur khusus platform. Fitur-fitur ini dirancang untuk menggunakan integrasi asli dalam platform. Penting untuk dicatat bahwa semua fitur ini dapat dinonaktifkan untuk mencapai fungsionalitas Spark dan Delta Lake standar. Fabric Runtimes untuk Apache Spark mencakup:

  • Versi sumber terbuka lengkap Apache Spark.
  • Kumpulan hampir 100 peningkatan performa kueri bawaan yang berbeda. Penyempurnaan ini mencakup fitur seperti penembolokan partisi (memungkinkan cache partisi FileSystem untuk mengurangi panggilan metastore) dan Gabungan Silang ke Proyeksi Subkueri Skalar.
  • Cache cerdas bawaan.

Dalam Fabric Runtime untuk Apache Spark dan Delta Lake, ada kemampuan penulis asli yang melayani dua tujuan utama:

  1. Mereka menawarkan performa yang berbeda untuk menulis beban kerja, mengoptimalkan proses penulisan.
  2. Mereka default ke pengoptimalan V-Order file Delta Parquet. Pengoptimalan Delta Lake V-Order sangat penting untuk memberikan performa baca yang unggul di semua mesin Fabric. Untuk mendapatkan pemahaman yang lebih mendalam tentang cara beroperasi dan cara mengelolanya, lihat artikel khusus tentang pengoptimalan tabel Delta Lake dan V-Order.

Dukungan beberapa runtime

Fabric mendukung beberapa runtime, menawarkan fleksibilitas kepada pengguna untuk beralih dengan mulus di antara mereka, meminimalkan risiko ketidakcocokan atau gangguan.

Secara default, semua ruang kerja baru menggunakan versi runtime terbaru, yang saat ini runtime 1.2.

Untuk mengubah versi runtime di tingkat ruang kerja, buka Ruang Kerja Pengaturan > Rekayasa Data/Default Tingkat Ruang Kerja Komputasi > Sains > Spark, dan pilih runtime yang Anda inginkan dari opsi yang tersedia.

Setelah Anda membuat perubahan ini, semua item yang dibuat sistem dalam ruang kerja, termasuk Lakehouses, SJD, dan Notebooks, akan beroperasi menggunakan versi runtime tingkat ruang kerja yang baru dipilih mulai dari Sesi Spark berikutnya. Jika saat ini Anda menggunakan notebook dengan sesi yang sudah ada untuk pekerjaan atau aktivitas terkait lakehouse, sesi Spark tersebut berlanjut apa adanya. Namun, mulai dari sesi atau pekerjaan berikutnya, versi runtime yang dipilih akan diterapkan.

Gif memperlihatkan cara mengubah versi runtime.

Konsekuensi perubahan runtime pada Spark Pengaturan

Secara umum, kami bertujuan untuk memigrasikan semua pengaturan Spark. Namun, jika kami mengidentifikasi bahwa pengaturan Spark tidak kompatibel dengan Runtime B, kami mengeluarkan pesan peringatan dan menahan diri untuk tidak menerapkan pengaturan.

Perubahan Runtime Pengaturan Spark.

Konsekuensi perubahan runtime pada manajemen pustaka

Secara umum, pendekatan kami adalah memigrasikan semua pustaka dari Runtime A ke Runtime B, termasuk Runtime Publik dan Kustom. Jika versi Python dan R tetap tidak berubah, pustaka harus berfungsi dengan baik. Namun, untuk Jar, ada kemungkinan besar bahwa mereka mungkin tidak berfungsi karena perubahan dependensi, dan faktor lain seperti perubahan di Scala, Java, Spark, dan sistem operasi.

Pengguna bertanggung jawab untuk memperbarui atau mengganti pustaka apa pun yang tidak berfungsi dengan Runtime B. Jika ada konflik, yang berarti bahwa Runtime B menyertakan pustaka yang awalnya ditentukan dalam Runtime A, sistem manajemen pustaka kami akan mencoba membuat dependensi yang diperlukan untuk Runtime B berdasarkan pengaturan pengguna. Namun, proses bangunan akan gagal jika konflik terjadi. Dalam log kesalahan, pengguna dapat melihat pustaka mana yang menyebabkan konflik dan membuat penyesuaian pada versi atau spesifikasi mereka.

Perubahan Runtime Manajemen Pustaka.

Meningkatkan protokol Delta Lake

Fitur Delta Lake selalu kompatibel mundur, memastikan tabel yang dibuat dalam versi Delta Lake yang lebih rendah dapat berinteraksi dengan versi yang lebih tinggi dengan lancar. Namun, ketika fitur tertentu diaktifkan (misalnya, dengan menggunakan delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) metode, kompatibilitas penerusan dengan versi Delta Lake yang lebih rendah dapat disusupi. Dalam kasus seperti itu, penting untuk memodifikasi beban kerja yang merujuk pada tabel yang ditingkatkan agar selaras dengan versi Delta Lake yang mempertahankan kompatibilitas.

Setiap tabel Delta dikaitkan dengan spesifikasi protokol, menentukan fitur yang didukungnya. Aplikasi yang berinteraksi dengan tabel, baik untuk membaca atau menulis, bergantung pada spesifikasi protokol ini untuk menentukan apakah aplikasi tersebut kompatibel dengan kumpulan fitur tabel. Jika aplikasi tidak memiliki kemampuan untuk menangani fitur yang tercantum sebagai didukung dalam protokol tabel, Aplikasi tidak dapat membaca dari atau menulis ke tabel tersebut.

Spesifikasi protokol dibagi menjadi dua komponen yang berbeda: protokol baca dan protokol tulis. Kunjungi halaman "Bagaimana Delta Lake mengelola kompatibilitas fitur?" untuk membaca detail tentangnya.

GIF memperlihatkan peringatan langsung saat metode upgradeTableProtocol digunakan.

Pengguna dapat menjalankan perintah delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) dalam lingkungan PySpark, dan di Spark SQL dan Scala. Perintah ini memungkinkan mereka untuk memulai pembaruan pada tabel Delta.

Penting untuk dicatat bahwa saat melakukan peningkatan ini, pengguna menerima peringatan yang menunjukkan bahwa memutakhirkan versi protokol Delta adalah proses yang tidak dapat dibatalkan. Ini berarti bahwa setelah pembaruan dijalankan, pembaruan tidak dapat dibatalkan.

Peningkatan versi protokol berpotensi berdampak pada kompatibilitas pembaca tabel Delta Lake yang ada, penulis, atau keduanya. Oleh karena itu, disarankan untuk melanjutkan dengan hati-hati dan meningkatkan versi protokol hanya jika perlu, seperti saat mengadopsi fitur baru di Delta Lake.

Cuplikan layar memperlihatkan peringatan saat meningkatkan protokol delta lake.

Selain itu, pengguna harus memverifikasi bahwa semua beban kerja dan proses produksi saat ini dan di masa mendatang kompatibel dengan tabel Delta Lake menggunakan versi protokol baru untuk memastikan transisi yang mulus dan mencegah potensi gangguan.

Perubahan Delta 2.2 vs Delta 2.4

Dalam Fabric Runtime terbaru , versi 1.2, format tabel default (spark.sql.sources.default) sekarang delta. Dalam versi Fabric Runtime sebelumnya, versi 1.1 dan pada semua Synapse Runtime untuk Apache Spark yang berisi Spark 3.3 atau di bawahnya, format tabel default didefinisikan sebagai parquet. Periksa tabel dengan detail konfigurasi Apache Spark untuk perbedaan antara Azure Synapse Analytics dan Microsoft Fabric.

Semua tabel yang dibuat menggunakan Spark SQL, PySpark, Scala Spark, dan Spark R, setiap kali jenis tabel dihilangkan, akan membuat tabel sebagai delta secara default. Jika skrip secara eksplisit mengatur format tabel, skrip tersebut akan dihormati. Perintah USING DELTA dalam perintah buat tabel Spark menjadi redundan.

Skrip yang mengharapkan atau mengasumsikan format tabel parkquet harus direvisi. Perintah berikut ini tidak didukung dalam tabel Delta:

  • ANALYZE TABLE $partitionedTableName PARTITION (p1) COMPUTE STATISTICS
  • ALTER TABLE $partitionedTableName ADD PARTITION (p1=3)
  • ALTER TABLE DROP PARTITION
  • ALTER TABLE RECOVER PARTITIONS
  • ALTER TABLE SET SERDEPROPERTIES
  • LOAD DATA
  • INSERT OVERWRITE DIRECTORY
  • SHOW CREATE TABLE
  • CREATE TABLE LIKE

Penerapan versi

Penomoran versi runtime kami, sementara terkait erat dengan Semantic Versioning, mengikuti pendekatan yang sedikit berbeda. Versi utama runtime sesuai dengan versi utama Apache Spark. Oleh karena itu, Runtime 1 sesuai dengan Spark versi 3. Demikian pula, Runtime 2 yang akan datang akan selaras dengan Spark 4.0. Penting untuk dicatat bahwa antara runtime saat ini, Runtime 1.1 dan Runtime 1.2, perubahan dapat terjadi, termasuk penambahan atau penghapusan pustaka yang berbeda. Selain itu, platform kami menawarkan fitur manajemen pustaka yang memberdayakan pengguna untuk menginstal pustaka yang diinginkan.