AnalyticDB for MySQL menyediakan fitur diagnostik Spark SQL. Jika kueri Spark SQL Anda mengalami masalah performa, Anda dapat menggunakan informasi diagnostik untuk dengan cepat mengidentifikasi, menganalisis, dan menyelesaikan hambatan performa guna mengoptimalkan kueri Spark SQL. Topik ini menjelaskan cara melakukan diagnostik Spark SQL.
Prasyarat
Sebuah kluster Enterprise Edition, Basic Edition, atau Data Lakehouse Edition dari AnalyticDB for MySQL telah dibuat.
Akun database telah dibuat untuk kluster AnalyticDB for MySQL.
Jika Anda menggunakan akun Alibaba Cloud, Anda hanya perlu membuat akun dengan hak istimewa.
Jika Anda menggunakan Pengguna Resource Access Management (RAM), Anda harus membuat akun dengan hak istimewa dan akun standar serta mengaitkan akun standar dengan pengguna RAM.
AnalyticDB for MySQL diberi otorisasi untuk mengambil alih peran AliyunADBSparkProcessingDataRole untuk mengakses sumber daya cloud lainnya.
Catatan penggunaan
Anda hanya dapat melakukan diagnostik pada kueri Spark SQL yang berhasil dieksekusi dalam 14 hari terakhir.
Prosedur
Masuk ke Konsol AnalyticDB for MySQL. Di pojok kiri atas konsol, pilih wilayah. Di panel navigasi di sebelah kiri, klik Clusters. Temukan kluster yang ingin Anda kelola dan klik ID kluster tersebut.
Di panel navigasi di sebelah kiri, pilih .
Daftar kueri menampilkan informasi tentang kueri SQL untuk diagnostik. Tabel berikut menjelaskan parameter-parameter kueri SQL.
Parameter
Deskripsi
Actions
Operasi Diagnose yang memungkinkan Anda melihat detail eksekusi seperti pernyataan SQL dan hasil diagnostik.
SQL
Pernyataan SQL yang dieksekusi.
Query ID
ID dari kueri.
Execution ID
ID urutan dari pernyataan SQL dalam aplikasi Spark SQL.
Status
Status eksekusi dari pernyataan SQL. Nilai valid:
Selesai
Berjalan
Gagal
Started At
Waktu ketika kueri dikirimkan.
Execution Duration
Jumlah waktu yang digunakan untuk mengeksekusi pernyataan SQL.
Maximum Operator Exclusive Time
Waktu eksekusi maksimum selama operator menggunakan sumber daya secara eksklusif.
Peak Memory
Penggunaan memori puncak dari kueri.
Scanned Data
Jumlah data yang dikembalikan dari lapisan penyimpanan ke lapisan komputasi.
Temukan kueri SQL yang ingin Anda diagnosa dan klik Diagnose di kolom Actions.
Di halaman Query Properties, klik tab Execution Plan untuk melihat bagan hierarki dari pohon rencana eksekusi kueri.
Klik Query-level Diagnostic Results di sebelah kanan pohon rencana eksekusi untuk melihat hasil diagnostik tingkat kueri.
Hasil diagnostik tingkat kueri
AnalyticDB for MySQL menyediakan fitur diagnostik SQL untuk mengumpulkan statistik tingkat kueri pada kueri SQL untuk diagnostik dan memberikan saran optimasi.
Pembengkakan data dalam join
Deskripsi Masalah:
Jika jumlah baris keluaran dari operator join lebih besar daripada jumlah baris masukan, pembengkakan data terjadi karena operasi join dianggap tidak masuk akal. Akibatnya, sejumlah besar sumber daya komputasi dan memori digunakan, yang memperlambat kueri.
Saran:
Optimalkan kode, seperti menyaring data yang tidak terlibat dalam operasi join terlebih dahulu untuk mengurangi jumlah data yang akan diproses.
Kemiringan dalam jumlah data yang diperiksa
Deskripsi Masalah:
Jika ada perbedaan signifikan dalam jumlah data yang diperiksa di antara beberapa tabel selama eksekusi kueri Spark SQL, waktu yang lama diperlukan untuk membaca data karena efek ekor panjang, yang mempengaruhi performa kueri akhir.
Saran:
Pilih kolom kunci distribusi yang sesuai untuk mengurangi jumlah data yang diperiksa.