All Products
Search
Document Center

AnalyticDB:Diagnostik Spark SQL

Last Updated:Mar 29, 2026

Gunakan Diagnostik Spark SQL untuk mengatasi hambatan kinerja pada kueri Spark SQL Anda. Misalnya, Anda dapat:

  • Memvisualisasikan pohon rencana eksekusi untuk mengidentifikasi operator terlambat hanya dengan sekilas.

  • Mendeteksi pembengkakan data join—yaitu saat suatu join menghasilkan lebih banyak baris daripada yang diterimanya.

  • Mendeteksi kesenjangan data yang dipindai—yaitu saat data tidak merata didistribusikan di seluruh tabel, sehingga menyebabkan efek ekor panjang (long tail effect).

Diagnostik hanya tersedia untuk kueri Spark SQL yang berhasil diselesaikan dalam 14 hari terakhir.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster AnalyticDB for MySQL edisi Data LakehouseData Lakehouse Edition

  • Sebuah kelompok sumber daya pekerjaan yang dibuat untuk Kluster. Untuk informasi selengkapnya, lihat Buat kelompok sumber daya.

  • Akun database yang dibuat untuk kluster tersebut:

  • AnalyticDB for MySQL yang telah diberi otorisasi untuk mengasumsikan role AliyunADBSparkProcessingDataRole. Untuk informasi selengkapnya, lihat Perform authorization.

Diagnosis kueri Spark SQL

  1. Masuk ke Konsol AnalyticDB for MySQL. Di pojok kiri atas, pilih wilayah. Di panel navigasi sebelah kiri, klik ClustersData Lakehouse Edition. Pada tab Data Lakehouse Edition, temukan kluster target lalu klik ID kluster tersebut.

  2. Di panel navigasi sebelah kiri, pilih Diagnostics and Optimization > Spark SQL Diagnostics and Optimization. Daftar kueri menampilkan kueri Spark SQL terbaru yang tersedia untuk diagnosis. Tabel berikut menjelaskan kolom-kolomnya.

    ColumnDescription
    SQLPernyataan SQL yang dieksekusi.
    Query IDID kueri.
    Execution IDID urutan pernyataan SQL dalam aplikasi Spark SQL.
    StatusStatus eksekusi. Nilai yang valid: Completed, Running, Failed.
    Started AtWaktu saat kueri dikirimkan.
    Execution DurationTotal waktu untuk mengeksekusi pernyataan SQL.
    Maximum Operator Exclusive TimeWaktu terlama suatu operator menggunakan resource secara eksklusif selama eksekusi.
    Peak MemoryPenggunaan memori puncak dari kueri tersebut.
    Scanned DataJumlah data yang dikembalikan dari lapisan penyimpanan ke lapisan komputasi.
    ActionsKlik Diagnose untuk membuka detail eksekusi dan hasil diagnosis kueri tersebut.
  3. Temukan kueri yang akan didiagnosis, lalu klik Diagnose pada kolom Actions.

  4. Pada halaman Query Properties, klik tab Execution Plan untuk melihat bagan hierarki pohon rencana eksekusi.

  5. Klik Query-level Diagnostic Results di sebelah kanan pohon rencana eksekusi untuk melihat temuan diagnosis dan saran optimasi untuk kueri tersebut.

Hasil diagnosis tingkat kueri

AnalyticDB for MySQL menganalisis statistik tingkat kueri dan menampilkan saran optimasi ketika mendeteksi pola kinerja yang sudah dikenal.

Pembengkakan data dalam join

Apa artinya: Operator join menghasilkan lebih banyak baris daripada yang diterimanya. Hal ini menunjukkan join yang tidak wajar sehingga mengonsumsi sumber daya komputasi dan memori secara berlebihan, yang memperlambat kueri.

Perbaikan: Saring baris yang tidak terlibat dalam join sebelum operasi join dijalankan, untuk mengurangi jumlah data yang harus diproses oleh operator join.

Kesenjangan dalam jumlah data yang dipindai

Apa artinya: Jumlah data yang dipindai berbeda signifikan di antara tabel selama eksekusi kueri. Efek ekor panjang—di mana tugas terlambat menentukan waktu penyelesaian keseluruhan—memperpanjang waktu pembacaan data dan menurunkan kinerja kueri.

Perbaikan: Pilih kolom kunci distribusi yang mendistribusikan data lebih merata di seluruh partisi untuk mengurangi volume pemindaian per tabel.