All Products
Search
Document Center

Realtime Compute for Apache Flink:Mengelola tabel materialized

Last Updated:Jul 02, 2025

Arsitektur gudang data tradisional seperti Lambda dan Kappa menghadapi tiga tantangan utama: biaya pengembangan dan pemeliharaan tinggi akibat kerangka kerja batch dan streaming yang terpisah, inefisiensi penyimpanan karena salinan data ganda, serta masalah konsistensi dari logika dan skema yang tidak selaras di berbagai lapisan. Untuk mengatasi tantangan ini, Realtime Compute for Apache Flink memperkenalkan tabel materialized, yang secara otomatis menurunkan skema tabel berdasarkan kesegaran data (dari harian hingga setiap beberapa menit) dan pernyataan query untuk membuat pipeline data yang terus diperbarui. Fitur ini menyatukan logika pemrosesan batch dan aliran, menghilangkan salinan data redundan, serta memastikan logika pemrosesan data dan skema tabel yang konsisten dari ujung ke ujung, sehingga menyederhanakan pemeliharaan gudang data waktu nyata.

Konsep inti

Kesegaran data

  • Definisi: Kesegaran data adalah atribut penting dari tabel materialized. Ini mendefinisikan jumlah maksimum waktu di mana konten tabel materialized dapat tertinggal dari pembaruan pada tabel dasar. Kesegaran data bukanlah jaminan, melainkan target yang coba dicapai oleh Flink. Kesegaran data menentukan frekuensi penyegaran dan sangat penting dalam pengelolaan pipeline data otomatis.

  • Tujuan:

    • Menentukan mode penyegaran: Kontinu atau Penuh.

    • Menyeimbangkan antara kesegaran data dan konsumsi sumber daya: Misalnya, kesegaran data dalam hitungan menit ideal untuk dasbor waktu nyata, sedangkan kesegaran data harian atau per jam cocok untuk analitik batch.

Mode penyegaran

Tabel materialized mendukung dua mode penyegaran: mode Kontinu dan Penuh.

Mode penyegaran

Deskripsi

Visibilitas

Skenario yang sesuai

Mode kontinu

Memperbarui data tabel materialized secara bertahap melalui pekerjaan streaming.

Pembaruan terlihat segera untuk memberikan latensi rendah atau setelah kompetisi checkpoint untuk memastikan konsistensi.

Ideal untuk aplikasi waktu nyata seperti kontrol risiko atau rekomendasi waktu nyata.

Mode penuh

Penjadwal secara berkala memicu pekerjaan batch, harian atau per jam, untuk menimpa data tabel materialized sepenuhnya. Secara default, penimpaan terjadi pada level tabel. Jika bidang partisi (seperti partisi waktu) didefinisikan, penimpaan terjadi pada level partisi, menyegarkan hanya partisi terbaru setiap kali.

Data terlihat setelah penyegaran penuh selesai.

Cocok untuk skenario seperti pengisian ulang data historis dan pembuatan laporan rutin.

Definisi query

Semua query Flink SQL didukung dan dapat digunakan untuk mendefinisikan sumber data dan logika komputasi.

Pembaruan dinamis:

  • Dalam mode Kontinu, hasil query dipopulasi ke tabel materialized secara real time.

  • Dalam mode Penuh, hasil query menimpa tabel materialized untuk memastikan akurasi.

Skema

Nama kolom dan jenis tabel materialized diturunkan secara otomatis dari query, tanpa perlu deklarasi manual.

Manfaat:

  • Deklarasikan kunci primer secara eksplisit untuk mengoptimalkan kinerja query.

  • Definisikan kunci partisi (seperti waktu) untuk mengatur data dalam lapisan, meningkatkan efisiensi penyegaran.

Cara kerja tabel materialized

Saat membuat tabel materialized, Anda harus secara eksplisit mendefinisikan parameter FRESHNESS dan klausa AS <select_statement>. Mesin Flink secara otomatis menurunkan skema untuk tabel materialized berdasarkan hasil query, dan mendaftarkan skema tersebut dalam katalog. Ia juga menciptakan pekerjaan penyegaran streaming atau batch berdasarkan nilai FRESHNESS.

Asumsikan kesegaran tabel materialized C diatur menjadi 30 menit. Ketika sumbernya, tabel materialized A, diperbarui, Flink mencoba menyegarkan tabel materialized C sedekat mungkin dalam waktu 30 menit. Kesegaran tabel materialized hilirnya, seperti E dan F, harus merupakan kelipatan positif dari kesegaran tabel materialized C, seperti 60 atau 90 menit. Meningkatkan nilai kesegaran, seperti dari X menit menjadi Y jam (dan dibatasi hingga 1 hari), mengurangi konsumsi sumber daya dengan mengurangi frekuensi penyegaran.

Skenario

Dengan menyatukan pemrosesan batch dan aliran, tabel materialized memberikan keuntungan teknis dan biaya yang signifikan untuk kasus penggunaan berikut:

  • Mengisi ulang data historis.

    Data akhir kadang-kadang bisa sebagian terdistorsi karena masalah seperti latensi transmisi data. Secara tradisional, memperbaiki data historis seringkali memerlukan pekerjaan batch. Tabel materialized menyediakan kemampuan penyegaran sesuai permintaan yang memungkinkan Anda memicu penyegaran secara manual untuk tabel materialized tertentu dan semua tabel materialized dependen hilir.

  • Menyatukan logika pemrosesan data dan skema tabel.

    Dalam arsitektur Lambda, data historis dan waktu nyata disimpan di sistem terpisah, sehingga sulit untuk menyelaraskan logika pemrosesan mereka dan skema tabel yang menampung data. Dengan tabel materialized, hanya satu salinan data Anda yang disimpan, menghilangkan kebutuhan untuk join dan komputasi kompleks. Fitur ini tidak hanya meningkatkan efisiensi penyimpanan tetapi juga menyelaraskan logika pemrosesan batch dan aliran serta menyatukan skema tabel yang menampung data historis dan waktu nyata.

  • Membangun dasbor dinamis dengan kesegaran data yang dapat disesuaikan.

    Dasbor dinamis seringkali memerlukan tingkat kesegaran data yang bervariasi di berbagai skenario bisnis. Tabel materialized memenuhi kebutuhan ini dengan memungkinkan Anda menyesuaikan interval penyegaran, dari harian hingga setiap beberapa detik, dengan memodifikasi nilai kesegaran. Pendekatan ini menghilangkan kebutuhan untuk membangun dan memelihara pipeline waktu nyata terpisah.

Gunakan tabel materialized

Referensi

Deskripsi

Buat dan gunakan tabel materialized

Topik ini menjelaskan cara membuat tabel materialized, mengisi ulang data historis, mengubah kesegaran data untuk tabel materialized, dan melihat garis keturunan data dari tabel materialized.

Mulai menggunakan tabel materialized: Bangun danau data terintegrasi batch-aliran

Topik ini menjelaskan cara menggunakan tabel materialized dan tabel Apache Paimon untuk membangun danau data terintegrasi batch-aliran. Ini juga mencakup cara menyesuaikan kesegaran tabel materialized untuk beralih dari mode eksekusi batch ke mode streaming, memungkinkan pembaruan data waktu nyata.

Referensi