All Products
Search
Document Center

Realtime Compute for Apache Flink:Kompatibilitas data status Flink

Last Updated:Jul 06, 2025

Realtime Compute for Apache Flink menyediakan fitur untuk memeriksa kompatibilitas data status dan migrasi data status. Topik ini menjelaskan cara Realtime Compute for Apache Flink memeriksa kompatibilitas antara data status yang dipilih dengan penyebaran SQL, serta perbedaan efisiensi migrasi dan kinerja penyebaran antara backend status RocksDB dan Gemini selama migrasi data status.

Informasi latar belakang

Realtime Compute for Apache Flink menyimpan hasil perhitungan menengah dari penyebaran SQL dalam data status, termasuk titik pemeriksaan (checkpoints) dan titik penyimpanan (savepoints). Flink SQL cocok untuk berbagai skenario pemrosesan aliran. Anda mungkin perlu terus memodifikasi penyebaran SQL untuk memenuhi kebutuhan iterasi pengembangan atau bisnis. Setelah memodifikasi penyebaran SQL dan memulai ulang menggunakan data status asli, penyebaran tersebut mungkin tidak kompatibel dengan data status.

Realtime Compute for Apache Flink versi mesin vvr-4.0.11-flink-1.13 atau lebih baru menyediakan fitur untuk memeriksa kompatibilitas data status dan melakukan migrasi data status. Fitur-fitur ini membantu Anda memaksimalkan penggunaan kembali data status asli dan memperbarui penyebaran SQL dengan cepat. Jika Anda memulai penyebaran berdasarkan data status setelah memodifikasi dan menerbitkan draf penyebaran, sistem akan memeriksa kompatibilitas antara data status yang dipilih dengan penyebaran. Untuk informasi lebih lanjut, lihat Kompatibilitas.

Untuk menyesuaikan data status dengan penyebaran baru, Anda harus memigrasi data status. Realtime Compute for Apache Flink mendukung dua backend status: RocksDB dan Gemini. Untuk informasi lebih lanjut tentang perbedaan efisiensi migrasi dan kinerja penyebaran antara backend status RocksDB dan Gemini, lihat Migrasi data status.

Kompatibilitas

Jika Anda memilih Resume Mode di panel Start Job dari penyebaran SQL, Realtime Compute for Apache Flink secara otomatis mendeteksi perubahan pada pernyataan SQL, konfigurasi parameter runtime, dan versi mesin penyebaran. Jika perubahan terdeteksi, kami sarankan Anda mengklik Click to detect di sebelah State Compatibility untuk memeriksa kompatibilitas antara penyebaran dan data status. Kemudian, tentukan tindakan selanjutnya berdasarkan hasil pemeriksaan kompatibilitas.

Penting

Jika Anda memodifikasi penyebaran SQL, pastikan untuk memeriksa kompatibilitas antara penyebaran dan data status sebelum memilih Resume Mode. Jika semua kondisi terpenuhi dan penyebaran kompatibel dengan data status, penyebaran dapat dilanjutkan.

Berikut adalah hasil pemeriksaan dan saran:

  • Sepenuhnya kompatibel

    Penyebaran saat ini sepenuhnya kompatibel dengan data status terbaru. Dalam hal ini, hasil perhitungan penyebaran yang berjalan berdasarkan data status terbaru sama dengan hasil perhitungan penyebaran yang berjalan berdasarkan data historis. Kami sarankan Anda memulai penyebaran.

  • Sebagian kompatibel

    Penyebaran saat ini sebagian kompatibel dengan data status terbaru. Dalam hal ini, hanya kolom tertentu dari hasil perhitungan penyebaran yang berjalan berdasarkan data status yang sesuai dengan hasil perhitungan penyebaran berdasarkan data historis. Kolom lainnya tidak memiliki data dalam data status, yang mengakibatkan ketidaksesuaian sebagian dari hasil perhitungan. Untuk memastikan bahwa penyebaran sepenuhnya kompatibel dengan data status, kami sarankan Anda memulai penyebaran berdasarkan status lain atau tanpa status.

  • Tidak kompatibel

    Peringatan

    Jika Anda memulai penyebaran berdasarkan data status, penyebaran mungkin gagal dimulai dengan probabilitas tinggi atau hasil operasi penyebaran mungkin tidak sesuai dengan harapan Anda. Lanjutkan dengan hati-hati. Kami sarankan Anda memulai penyebaran berdasarkan status lain atau tanpa status.

  • Kompatibilitas yang harus ditentukan setelah restart (kompatibilitas tidak diketahui)

    Peringatan

    Jika Anda memulai penyebaran berdasarkan data status, penyebaran mungkin gagal dimulai atau hasil operasi penyebaran mungkin tidak sesuai dengan harapan Anda. Lanjutkan dengan hati-hati.

Migrasi data status

RocksDB dan Gemini memiliki perbedaan berikut dalam efisiensi migrasi dan kinerja penyebaran:

  • RocksDB

    Backend status RocksDB memigrasi semua data status ketika penyebaran dimulai. Saat penyebaran dimulai, penyebaran berada dalam keadaan RUNNING. Namun, operator yang datanya perlu dimigrasi berada dalam keadaan INITIALIZING dan tidak ada data yang dikonsumsi atau diproses. Setelah semua data operator dimigrasi, operator masuk ke keadaan RUNNING dan mulai mengonsumsi data.RocksDB

    Catatan

    Dalam contoh ini, fungsi agregat dalam penyebaran dimodifikasi. Oleh karena itu, backend status RocksDB memigrasi semua data status ketika penyebaran dimulai. Pada gambar di atas, operator GroupAggregate berada dalam keadaan INITIALIZING. Dalam hal ini, operator tidak dapat memproses data.

  • Gemini

    Backend status Gemini memigrasi data berdasarkan kebutuhan bisnis Anda ketika penyebaran sedang berjalan. Oleh karena itu, backend status Gemini hanya memigrasi catatan data tertentu dalam data status ketika catatan data tersebut diakses. Setelah penyebaran dimulai, penyebaran berada dalam keadaan RUNNING. Operator yang datanya statusnya perlu dimigrasi dengan cepat berubah dari keadaan INITIALIZING ke keadaan RUNNING dan mulai mengonsumsi data. Selama migrasi data status, nilai transaksi per detik (TPS) secara bertahap kembali ke level normal, yang menunjukkan bahwa semua data status telah dimigrasi. Backend status Gemini membutuhkan waktu lebih sedikit untuk memigrasi data status dibandingkan dengan backend status RocksDB.Gemini

    Catatan

    Jika backend status Gemini dan RocksDB digunakan secara terpisah untuk memigrasi data status dari penyebaran SQL yang sama, backend status Gemini memberikan efisiensi migrasi yang lebih tinggi. Backend status Gemini dapat dengan cepat mengubah status operator yang datanya perlu dimigrasi dari INITIALIZING ke RUNNING dan mengizinkan operator untuk memproses data. Keadaan INITIALIZING menunjukkan bahwa operator sedang memuat data.