Apa itu autotune untuk konfigurasi Apache Spark di Fabric?

Autotune secara otomatis menyesuaikan konfigurasi Apache Spark untuk mempercepat eksekusi beban kerja dan untuk mengoptimalkan performa keseluruhan. Autotune menghemat waktu dan sumber daya dibandingkan dengan penyetelan manual yang, membutuhkan upaya, sumber daya, waktu, dan eksperimen yang luas. Autotune menggunakan data eksekusi historis dari beban kerja Anda untuk secara berulang menemukan dan menerapkan konfigurasi paling efektif untuk beban kerja tertentu.

Catatan

Fitur penyetelan kueri penyetelan otomatis di Microsoft Fabric saat ini dalam pratinjau.

Penyetelan kueri

Autotune mengonfigurasi tiga pengaturan Spark untuk setiap kueri Anda secara terpisah:

  • spark.sql.shuffle.partitions - Mengatur jumlah partisi untuk pengacakan data selama gabungan atau agregasi. Nilai defaultnya adalah 200.
  • spark.sql.autoBroadcastJoinThreshold - Mengatur ukuran tabel maksimum dalam byte yang disiarkan ke semua simpul pekerja saat operasi gabungan dijalankan. Nilai defaultnya adalah 10 MB.
  • spark.sql.files.maxPartitionBytes - Mendefinisikan jumlah maksimum byte untuk dikemas ke dalam satu partisi saat membaca file. Berfungsi untuk sumber berbasis file Parquet, JSON, dan ORC. Defaultnya adalah 128 MB.

Tip

Penyetelan kueri autotune memeriksa kueri individual dan membangun model ML yang berbeda untuk setiap kueri. Ini secara khusus menargetkan:

  • Kueri berulang
  • Kueri yang berjalan lama (yang memiliki lebih dari 15 detik eksekusi)
  • Kueri Spark SQL (tidak termasuk yang ditulis dalam API RDD, yang sangat jarang)

Fitur ini kompatibel dengan notebook, Definisi Pekerjaan Spark, dan alur.

Cuplikan layar waktu eksekusi dengan autotune Diaktifkan.

Intuisi berbasis AI di belakang Autotune

Fitur autotune menggunakan proses berulang untuk mengoptimalkan performa kueri. Ini dimulai dengan konfigurasi default dan menggunakan model pembelajaran mesin untuk mengevaluasi efektivitas. Saat pengguna mengirimkan kueri, sistem mengambil model yang disimpan berdasarkan interaksi sebelumnya. Ini menghasilkan konfigurasi potensial di sekitar pengaturan default bernama sentroid. Kandidat terbaik yang diprediksi oleh model, diterapkan. Setelah eksekusi kueri, data performa dikirim kembali ke sistem untuk memperbaiki model.

Perulangan umpan balik secara bertahap mengalihkan sentroid ke pengaturan optimal. Ini menyempurnakan performa dari waktu ke waktu sambil meminimalkan risiko regresi. Pembaruan berkelanjutan berdasarkan kueri pengguna memungkinkan penyempurnaan tolok ukur performa. Selain itu, proses memperbarui konfigurasi sentroid untuk memastikan model bergerak ke pengaturan yang lebih efisien secara bertahap. Hal ini dicapai dengan mengevaluasi performa sebelumnya dan menggunakannya untuk memandu penyesuaian di masa mendatang. Ini menggunakan semua poin data untuk mengurangi dampak anomali.

Dari perspektif AI yang bertanggung jawab, fitur Autotune mencakup mekanisme transparansi yang dirancang untuk memberi Anda informasi tentang penggunaan dan manfaat data Anda. Keamanan dan privasi selaras dengan standar Microsoft. Pemantauan yang sedang berlangsung mempertahankan performa dan integritas sistem pasca-peluncuran.

Aktifkan penyetelan otomatis

Autotune tersedia di semua wilayah tetapi dinonaktifkan secara default. Anda dapat mengaktifkannya sesuai kebutuhan melalui pengaturan konfigurasi Apache Spark. Anda dapat mengaktifkan penyetelan otomatis dalam sesi dengan menjalankan kode berikut di buku catatan Anda atau dengan menyertakannya ke dalam buku catatan Spark atau kode Definisi Pekerjaan Spark Anda. Selain itu, Autotune memiliki mekanisme bawaan untuk pemantauan performa dan mendeteksi regresi performa. Misalnya, jika kueri Anda tiba-tiba berperilaku anomali dan memproses lebih banyak data dari biasanya, autotune akan mati secara otomatis. Autotune memerlukan beberapa iterasi untuk mempelajari dan mengidentifikasi konfigurasi optimal. Biasanya konfigurasi optimal ditentukan setelah 20 hingga 25 iterasi.

Catatan

Autotune kompatibel dengan Fabric Runtime 1.1 dan Runtime 1.2. Autotune tidak berfungsi saat mode konkurensi tinggi atau saat titik akhir privat diaktifkan. Namun, autotune terintegrasi tanpa hambatan dengan penskalaan otomatis, terlepas dari konfigurasinya.

%%sql 
SET spark.ms.autotune.enabled=TRUE 

Untuk memverifikasi dan mengonfirmasi aktivasinya, gunakan perintah berikut:

%%sql 
GET spark.ms.autotune.enabled

Untuk menonaktifkan penyetelan otomatis, jalankan perintah berikut:

%%sql 
SET spark.ms.autotune.enabled=FALSE 

Studi kasus

Saat menjalankan kueri Spark, autotune membuat model ML yang dikustomisasi yang didedikasikan untuk mengoptimalkan eksekusi kueri. Ini menganalisis pola kueri dan kebutuhan sumber daya. Pertimbangkan kueri awal yang memfilter himpunan data berdasarkan atribut tertentu, seperti negara. Meskipun contoh ini menggunakan pemfilteran geografis, prinsip ini berlaku secara universal untuk atribut atau operasi apa pun dalam kueri:

%%pyspark
df.filter(df.country == "country-A")

Autotune belajar dari kueri ini, mengoptimalkan eksekusi berikutnya. Saat kueri berubah, misalnya, dengan mengubah nilai filter atau menerapkan transformasi data yang berbeda, esensi struktural kueri sering kali tetap konsisten:

%%pyspark
df.filter(df.country == "country-B")

Meskipun ada perubahan, autotune mengidentifikasi struktur dasar kueri baru, menerapkan pengoptimalan yang dipelajari sebelumnya. Kemampuan ini memastikan efisiensi tinggi berkelanjutan tanpa perlu konfigurasi ulang manual untuk setiap perulangan kueri baru.

Log

Untuk setiap kueri Anda, autotune menentukan pengaturan paling optimal untuk tiga konfigurasi Spark. Anda dapat melihat pengaturan yang disarankan dengan menavigasi ke log. Konfigurasi yang direkomendasikan oleh autotune terletak di log driver, khususnya entri yang dimulai dengan [Autotune].

Cuplikan layar log autotune di dalam Monitoring Hub.

Anda dapat menemukan berbagai jenis entri di log Anda. Berikut ini termasuk kuncinya:

Keadaan Deskripsi
AUTOTUNE_DISABLED Dilewati. Autotune dinonaktifkan; mencegah pengambilan data telemetri dan pengoptimalan kueri. Aktifkan Autotune untuk sepenuhnya menggunakan kemampuannya sambil menghormati privasi pelanggan.".
QUERY_TUNING_DISABLED Dilewati. Penyetelan kueri penyetelan otomatis dinonaktifkan. Aktifkan untuk menyempurnakan pengaturan untuk kueri Spark SQL Anda.
QUERY_PATTERN_NOT_MATCH Dilewati. Pola kueri tidak cocok. Autotune efektif untuk kueri baca-saja.
QUERY_DURATION_TOO_SHORT Dilewati. Durasi kueri Anda terlalu pendek untuk dioptimalkan. Autotune memerlukan kueri yang lebih panjang untuk penyetelan yang efektif. Kueri harus berjalan setidaknya selama 15 detik.
QUERY_TUNING_SUCCEED Sukses. Penyetelan kueri selesai. Pengaturan spark optimal diterapkan.

Catatan transparansi

Sesuai dengan Standar AI yang Bertanggung Jawab, bagian ini bertujuan untuk mengklarifikasi penggunaan dan validasi fitur Autotune, mempromosikan transparansi dan mengaktifkan pengambilan keputusan berdasarkan informasi.

Tujuan Autotune

Autotune dikembangkan untuk meningkatkan efisiensi beban kerja Apache Spark, terutama untuk profesional data. Fungsi utamanya meliputi:

  • Mengotomatiskan penyetelan konfigurasi Apache Spark untuk mengurangi waktu eksekusi.
  • Meminimalkan upaya penyetelan manual.
  • Menggunakan data beban kerja historis untuk menyempurnakan konfigurasi secara berulang.

Validasi Autotune

Autotune telah menjalani pengujian ekstensif untuk memastikan efektivitas dan keamanannya:

  • Pengujian ketat dengan beragam beban kerja Spark untuk memverifikasi kemanjuran algoritma penyetelan.
  • Tolok ukur terhadap metode pengoptimalan Spark standar untuk menunjukkan manfaat performa.
  • Studi kasus dunia nyata menyoroti nilai praktis Autotune.
  • Kepatuhan terhadap standar keamanan dan privasi yang ketat untuk melindungi data pengguna.

Data pengguna secara eksklusif digunakan untuk meningkatkan performa beban kerja Anda, dengan perlindungan yang kuat untuk mencegah penyalahgunaan atau paparan informasi sensitif.