全部产品
Search
文档中心

Realtime Compute for Apache Flink:Debug pekerjaan

更新时间:Jan 10, 2026

Anda dapat menggunakan fitur debugging pekerjaan untuk mensimulasikan eksekusi pekerjaan, memeriksa hasil output, dan memverifikasi logika bisnis pernyataan SELECT atau INSERT. Fitur ini meningkatkan efisiensi pengembangan dan mengurangi risiko kualitas data. Topik ini menjelaskan cara melakukan debugging pada pekerjaan Flink SQL.

Informasi latar belakang

Anda dapat menggunakan fitur debugging pekerjaan di Konsol pengembangan Flink untuk memverifikasi logika pekerjaan secara lokal. Proses ini tidak menulis data ke sink downstream lingkungan produksi, terlepas dari jenis tabel sink yang digunakan. Saat melakukan debugging pekerjaan, Anda dapat menggunakan data upstream langsung atau menentukan data uji. Anda dapat mendebug pekerjaan kompleks yang berisi beberapa pernyataan SELECT atau INSERT. Fitur ini juga mendukung kueri UPSERT, yang memungkinkan Anda menjalankan pernyataan yang mencakup operasi pembaruan, seperti count(*).

Batasan

  • Fitur debugging pekerjaan memerlukan kluster session.

  • Debugging hanya didukung untuk pekerjaan SQL.

  • Debugging tidak didukung untuk pernyataan CREATE TABLE AS SELECT (CTAS) dan CREATE DATABASE AS (CDAS).

  • Secara default, Flink secara otomatis berhenti setelah membaca maksimal 1.000 record.

  • Setiap sesi debugging dalam kluster session dibatasi maksimal tiga menit. Batasan ini memastikan stabilitas kluster dan membantu mengelola siklus hidup kluster.

Catatan penggunaan

  • Membuat kluster session mengonsumsi resource kluster. Jumlah resource yang dikonsumsi bergantung pada konfigurasi resource yang Anda pilih saat pembuatan.

  • Jangan gunakan kluster session di lingkungan produksi. Kluster session ditujukan untuk pengembangan dan pengujian. Menggunakan kluster session untuk mendebug pekerjaan dapat meningkatkan pemanfaatan resource JobManager (JM). Namun, jika Anda menggunakan kluster session di lingkungan produksi, mekanisme reuse JM dapat berdampak negatif terhadap stabilitas pekerjaan. Rinciannya sebagai berikut:

    • Single point of failure (SPOF) pada JobManager memengaruhi semua pekerjaan dalam kluster.

    • SPOF pada TaskManager memengaruhi pekerjaan yang memiliki task yang berjalan di atasnya.

    • Dalam TaskManager yang sama, jika tidak ada isolasi proses antar task, task tersebut dapat saling mengganggu.

  • Jika kluster session menggunakan konfigurasi default, perhatikan rekomendasi berikut:

    • Untuk pekerjaan kecil dengan tingkat paralelisme tunggal, jumlah total pekerjaan dalam kluster sebaiknya tidak melebihi 100.

    • Untuk pekerjaan kompleks, tingkat paralelisme maksimum untuk satu pekerjaan sebaiknya tidak melebihi 512. Untuk satu kluster, jangan menjalankan lebih dari 32 pekerjaan berukuran menengah dengan tingkat paralelisme 64. Jika tidak, masalah seperti heartbeat timeout dapat terjadi dan memengaruhi stabilitas kluster. Dalam kasus ini, tingkatkan interval heartbeat dan timeout.

    • Untuk menjalankan lebih banyak task secara konkuren, tingkatkan konfigurasi resource kluster session.

Prosedur

Langkah 1: Buat kluster session

  1. Buka halaman Session Management.

    1. Login ke Konsol Real-time Computing Platform.

    2. Pada kolom Actions ruang kerja target, klik Console.

    3. Di panel navigasi sebelah kiri, pilih Operation Center > Session Management.

  2. Klik Create Session Cluster.

  3. Masukkan informasi konfigurasi.

    Tabel berikut menjelaskan parameter-parameter tersebut.

    Modul

    Konfigurasi

    Deskripsi

    Basic configurations

    Name

    Nama kluster session.

    Deployment target

    Pilih antrian sumber daya target. Untuk informasi selengkapnya tentang cara membuat antrian sumber daya, lihat Manage resource queues.

    State

    Tetapkan status yang diinginkan untuk kluster:

    • RUNNING: Kluster tetap berjalan setelah dikonfigurasi.

    • STOPPED: Kluster berhenti setelah dikonfigurasi. Semua pekerjaan yang diterapkan di kluster session juga berhenti.

    Scheduled session management

    Untuk mencegah pemborosan resource akibat kluster session yang berjalan lama, Anda dapat mengonfigurasi kluster agar mati secara otomatis jika tidak ada pekerjaan yang berjalan selama periode tertentu.

    Tag Name

    Anda dapat menambahkan tag ke pekerjaan. Hal ini membantu Anda menemukan pekerjaan dengan cepat di halaman Overview.

    Tag value

    Tidak ada.

    Configuration

    Engine version

    Untuk informasi selengkapnya tentang versi engine, lihat Engine versions dan Lifecycle policy. Kami menyarankan Anda menggunakan versi yang direkomendasikan atau stabil. Daftar berikut menjelaskan label versi:

    • Recommended: Versi minor terbaru dari versi utama terbaru.

    • Stable: Versi minor terbaru dari versi utama yang masih dalam masa layanan. Bug dari versi sebelumnya telah diperbaiki pada versi ini.

    • Normal: Versi minor lain yang masih dalam masa layanan.

    • EOS: Versi yang telah melewati tanggal akhir layanan.

    Flink restart strategy

    Parameter ini dapat memiliki nilai berikut:

    • Failure Rate: Mulai ulang berdasarkan laju kegagalan.

      Jika Anda memilih opsi ini, Anda juga harus menentukan Failure Rate Interval, Max Failures Per Interval, dan Delay Between Restarts.

    • Fixed Delay: Restart pada interval tetap.

      Jika Anda memilih opsi ini, Anda juga harus menentukan Restart Attempts dan Delay Between Restarts.

    • No Restarts: Pekerjaan tidak akan restart jika suatu task gagal.

    Penting

    Jika Anda tidak mengonfigurasi parameter ini, strategi restart Apache Flink default akan digunakan. Jika suatu task gagal dan checkpointing dinonaktifkan, proses JobManager tidak akan restart. Jika checkpointing diaktifkan, proses JobManager akan restart.

    Other configurations

    Tetapkan konfigurasi Flink tambahan di sini. Misalnya, taskmanager.numberOfTaskSlots: 1.

    Resource configurations

    Number of TaskManagers

    Secara default, nilai ini sama dengan tingkat paralelisme.

    JobManager CPU cores

    Nilai default adalah 1.

    JobManager memory

    Nilai minimum adalah 1 GiB. Nilai yang disarankan adalah 4 GiB. Kami menyarankan Anda menggunakan satuan GiB atau MiB. Contohnya, 1024 MiB atau 1,5 GiB.

    TaskManager CPU cores

    Nilai default adalah 2.

    TaskManager memory

    Nilai minimum adalah 1 GiB. Nilai yang disarankan adalah 8 GiB. Kami menyarankan Anda menggunakan satuan GiB atau MiB. Contohnya, 1024 MiB atau 1,5 GiB.

    Konfigurasi TaskManager yang disarankan mencakup jumlah slot per TaskManager (taskmanager.numberOfTaskSlots) dan ukuran resource TaskManager. Rinciannya sebagai berikut:

    • Untuk pekerjaan kecil dengan tingkat paralelisme tunggal, rasio CPU-memori 1:4 per slot direkomendasikan. Gunakan minimal 1 core dan 2 GiB memori.

    • Untuk pekerjaan kompleks, gunakan minimal 1 core dan 4 GiB memori per slot. Dengan konfigurasi resource default, Anda dapat mengonfigurasi dua slot untuk setiap TaskManager.

    • Resource TaskManager sebaiknya tidak terlalu kecil atau terlalu besar. Kami menyarankan menggunakan konfigurasi resource default dan mengatur jumlah slot menjadi 2.

      Penting
      • Jika satu TaskManager memiliki resource yang tidak mencukupi, stabilitas pekerjaan yang berjalan di atasnya dapat terpengaruh. Selain itu, karena jumlah slot kecil, overhead TaskManager tidak dapat dibagi secara efektif, sehingga mengurangi pemanfaatan resource.

      • Jika satu TaskManager memiliki resource berlebihan, banyak pekerjaan akan berjalan di atasnya. Jika TaskManager mengalami single point of failure, dampaknya akan luas.

    Log configurations

    Root log level

    Tingkat log berikut disusun berdasarkan tingkat keparahan dari terendah ke tertinggi:

    1. TRACE: Informasi yang lebih detail halus daripada DEBUG.

    2. DEBUG: Informasi mengenai status sistem saat berjalan.

    3. INFO: Informasi penting atau menarik.

    4. WARN: Informasi mengenai potensi error sistem.

    5. ERROR: Informasi mengenai error sistem dan exception.

    Class log level

    Masukkan nama log dan tingkatnya.

    Log template

    Anda dapat memilih templat sistem atau templat kustom.

    Catatan

    Untuk informasi selengkapnya tentang opsi yang terkait integrasi Flink dengan framework orkestrasi sumber daya seperti Kubernetes dan Yarn, lihat Resource Orchestration Frameworks.

  1. Klik Create Session Cluster.

    Setelah kluster session dibuat, Anda dapat memilihnya di halaman debugging pekerjaan atau halaman deployment.

Langkah 2: Mendebug pekerjaan

  1. Tulis kode SQL untuk pekerjaan tersebut. Untuk informasi selengkapnya, lihat Job development map.

  2. Di halaman ETL, klik Debug, pilih debug cluster, lalu klik Next.

  3. Konfigurasikan data uji.

    • Jika ingin menggunakan data langsung, klik OK.

    • Jika ingin menggunakan data uji, klik Download Data Template, isi templat dengan data uji, lalu unggah file data tersebut.使用调试数据

      Topik ini menjelaskan fitur-fitur di halaman ini.

      Parameter

      Deskripsi

      Download data template

      Untuk mempermudah pengeditan, Anda dapat mengunduh templat data yang telah disesuaikan dengan struktur data tabel sumber.

      Upload test data

      Untuk melakukan debugging menggunakan data uji lokal, unduh templat data, edit data secara lokal, unggah file tersebut, lalu pilih Use Test Data.

      File data uji memiliki batasan berikut:

      • Hanya format CSV yang didukung untuk file yang diunggah.

      • File CSV harus berisi header tabel, seperti id(INT).

      • Ukuran file data uji CSV maksimal 1 MB atau berisi maksimal 1.000 record.

      Data preview

      Setelah Anda mengunggah data uji, klik ikon 加号 di sebelah kiri nama tabel sumber untuk melihat pratinjau dan mengunduh data uji tersebut.

      Debug code preview

      Fitur debugging secara otomatis mengubah kode DDL untuk tabel sumber dan sink, tetapi tidak mengubah kode aktual dalam pekerjaan Anda. Anda dapat melihat pratinjau detail kodenya di bawah ini.

  4. Setelah mengonfigurasi data uji, klik OK.

    Setelah Anda mengklik OK, hasil debug akan ditampilkan di bawah editor SQL.调试结果

Dokumen terkait