Bagikan melalui


Apache Spark Runtime 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.

  • Native Execution Engine - adalah peningkatan transformatif untuk beban kerja Apache Spark, menawarkan keuntungan performa yang signifikan dengan langsung mengeksekusi kueri Spark pada infrastruktur lakehouse. Terintegrasi dengan mulus, tidak memerlukan perubahan kode dan menghindari ketergantungan terhadap vendor, mendukung format Parquet dan Delta melalui API Apache Spark pada Runtime 1.3 (Spark 3.5). Mesin ini meningkatkan kecepatan kueri hingga empat kali lebih cepat daripada OSS Spark tradisional, seperti yang ditunjukkan oleh tolok ukur TPC-DS 1TB, mengurangi biaya operasional dan meningkatkan efisiensi di berbagai tugas data—termasuk penyerapan data, ETL, analitik, dan kueri interaktif. Native Execution Engine didasarkan pada dua komponen OSS utama: Velox, pustaka akselerasi database C++ yang diperkenalkan oleh Meta, dan Apache Gluten (inkubating), lapisan tengah yang bertanggung jawab untuk membongkar eksekusi mesin SQL berbasis JVM ke mesin asli yang diperkenalkan oleh Intel.

  • 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 komprehensif komponen kunci, termasuk versi Apache Spark, sistem operasi yang didukung, Java, Scala, Python, Delta Lake, dan R, untuk runtime berbasis Apache Spark dalam platform Microsoft Fabric.

Petunjuk

Selalu gunakan versi runtime terbaru yang tersedia secara umum (GA) untuk beban kerja produksi Anda, yang saat ini adalah Runtime 1.3.

Komponen Runtime 1.2 Runtime 1.3 Runtime 2.0
Tahap Rilis EOSA GA Eksperimental (Pratinjau)
Versi Apache Spark 3.4.1 3.5.5 4.0.0
Sistem Operasi Mariner 2.0 Mariner 2.0 Mariner 3.0
Versi Java 11 11 21
Versi Scala 2.12.17 2.12.17 2.13.16
Versi Python 3.10 3.11 3.12.11
Versi Delta Lake 2.4.0 3.2 4.0.0

Kunjungi Runtime 1.2, Runtime 1.3 atau Runtime 2.0 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 cache partisi (memungkinkan penyimpanan sementara partisi FileSystem untuk mengurangi permintaan ke metastore) dan Cross Join hingga Proyeksi Subkueri Skalar.
  • Cache cerdas bawaan.

Dalam Fabric Runtime Apache Spark dan Delta Lake, ada kemampuan penulis bawaan yang memenuhi dua tujuan utama.

  • Mereka menawarkan kinerja yang berbeda untuk beban kerja penulisan, mengoptimalkan proses penulisan.
  • Secara otomatis, mereka mengoptimalkan file Delta Parquet dengan tata letak V-Order. 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 untuk 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 GA terbaru, yang saat ini runtime 1.3.

Untuk mengubah versi runtime pada tingkat ruang kerja, buka Pengaturan Ruang Kerja>Rekayasa Data/Sains>Pengaturan Spark. Dari tab Lingkungan, pilih versi runtime yang Anda inginkan dari opsi yang tersedia. Pilih Simpan untuk mengonfirmasi pilihan Anda.

Cuplikan layar memperlihatkan tempat memilih versi runtime untuk pengaturan Ruang Kerja.

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 akan terus berlanjut seperti adanya. Namun, mulai dari sesi atau pekerjaan berikutnya, versi runtime yang dipilih akan diterapkan.

Selain itu, untuk mengubah runtime di tingkat Environment item, buat item Environment baru atau buka yang sudah ada, di bawah dropdown Runtime, pilih versi runtime yang Anda inginkan dari opsi yang tersedia, pilih Save kemudian Publish perubahan Anda. Selanjutnya, Anda dapat menggunakan item ini Environment dengan anda Notebook atau Spark Job Definition.

Cuplikan layar memperlihatkan tempat memilih versi runtime untuk item Lingkungan.

Konsekuensi perubahan runtime pada Pengaturan Spark

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 mencoba membuat dependensi yang diperlukan untuk Runtime B berdasarkan pengaturan pengguna. Namun, proses bangunan gagal jika terjadi konflik. Dalam log kesalahan, pengguna dapat melihat pustaka mana yang menyebabkan konflik dan membuat penyesuaian pada versi atau spesifikasi mereka.

Perubahan pada Runtime Manajemen Perpustakaan.

Meningkatkan protokol Delta Lake

Fitur Delta Lake selalu kompatibel dengan versi sebelumnya, 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 metode delta.upgradeTableProtocol(minReaderVersion, minWriterVersion), penerusan kompatibilitas dengan versi Delta Lake yang lebih rendah mungkin terganggu. 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, mengandalkan 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 berbeda: protokol "baca" dan protokol "tulis". Untuk informasi selengkapnya, kunjungi halaman "Bagaimana Delta Lake mengelola kompatibilitas fitur?".

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 memengaruhi 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.

Penting

Untuk mempelajari selengkapnya tentang versi dan fitur protokol mana yang kompatibel di semua pengalaman Microsoft Fabric, baca interoperabilitas format tabel 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.