Tabel terpadu lake-stream menyediakan akses transparan ke data inkremental real-time (Fluss) dan data historis lengkap (Paimon) melalui lapisan metadata terpadu. Bergantung pada kebutuhan bisnis Anda, Anda dapat memilih mode baca aliran real-time, baca batch offline, atau mode baca hibrida.
Engine kueri yang didukung
Kompatibilitas engine bergantung pada metode akses.
|
Metode akses |
Deskripsi |
Engine yang didukung |
|
Akses Fluss native (termasuk Union Read) |
Menggunakan fitur baca hibrida fusi lake-stream untuk menyatukan pemrosesan aliran dan batch. |
Flink |
|
Akses Paimon dasar ( |
Langsung mengakses penyimpanan berformat Paimon dasar, mendukung analitik multi-engine. |
Semua engine yang kompatibel dengan Paimon, seperti Flink, Spark, Trino, dan StarRocks |
Akses data dengan Flink
Konsumsi data secara real time
Dalam skenario pemrosesan aliran, Anda sering perlu memantau perubahan data terbaru. Anda dapat menentukan mode konsumsi dengan mengonfigurasi startup mode di Flink SQL.
-- Terus-menerus memantau perubahan pada tabel orders dan hanya membaca data masuk terbaru
SELECT *
FROM fluss_catalog.fluss.orders
/*+ OPTIONS('scan.startup.mode' = 'latest-offset') */;
Untuk konfigurasi startup mode lainnya, seperti membaca dari offset paling awal atau timestamp tertentu, lihat Mode Konsumsi.
Kueri batch
Fluss secara otomatis menyinkronkan data secara real-time ke penyimpanan berformat Paimon dasar. Untuk tugas offline yang perlu menganalisis seluruh set data historis atau mengakses snapshot tertentu, Anda dapat langsung melakukan kueri ke tabel Paimon dasar.
Di Fluss Catalog, Anda dapat langsung mengakses tabel Paimon yang sesuai dengan menambahkan akhiran $lake ke nama tabel.
-- Mode batch: Langsung kueri semua data dari penyimpanan Paimon dasar
SELECT * FROM fluss_catalog.fluss.orders$lake;
-- Mode batch: Kueri metadata snapshot dari penyimpanan Paimon dasar
SELECT * FROM fluss_catalog.fluss.orders$lake$snapshots;
Tabel $lake pada dasarnya adalah tabel Paimon standar yang mewarisi semua fitur Paimon, termasuk Time Travel dan dukungan untuk berbagai engine kueri.
Union Read
Union Read menyediakan tampilan terpadu untuk fusi lake-stream. Sistem secara otomatis menggabungkan data dari lapisan Fluss (data panas dengan latensi tingkat detik) dan data dari lapisan Paimon (data dingin dengan latensi tingkat menit), menyajikannya sebagai satu tabel logis yang lengkap serta menyembunyikan detail penyimpanan fisik di baliknya.
Pada arsitektur tradisional yang memisahkan pemrosesan aliran dan batch, mengakses data real-time dan offline secara bersamaan mengharuskan Anda membangun pipa data kompleks untuk migrasi data, agregasi ETL, dan deduplikasi. Pendekatan ini mahal dalam pengembangan dan pemeliharaan serta menyulitkan jaminan konsistensi data. Union Read secara native menggabungkan data aliran dan lake pada level mesin penyimpanan, sehingga cukup dengan satu kueri SQL untuk memberikan akses transparan ke seluruh data panas dan dingin—menghilangkan kebutuhan mengelola logika sharding dan penggabungan data di balik layar.
-- Secara otomatis menggabungkan dan membaca data panas dan dingin
SELECT * FROM fluss_catalog.fluss.orders;
Engine Flink menggunakan logika eksekusi berikut.
|
Mode eksekusi |
Logika |
|
Mode streaming |
Saat pekerjaan dimulai, sistem pertama-tama membaca semua data historis dari Paimon, lalu beralih mulus ke konsumsi data inkremental real-time dari Fluss dengan latensi tingkat milidetik. |
|
Mode batch |
Membaca data dasar dari Paimon dan data inkremental yang belum diarsipkan dari Fluss, menggabungkannya, lalu mengembalikan snapshot global terbaru. |
Untuk tabel primary key, Flink harus menggabungkan dan menghapus duplikat data dari kedua sumber berdasarkan primary key saat dijalankan dalam mode batch. Proses ini menimbulkan overhead komputasi dibandingkan dengan membaca tabel log.
Untuk informasi lebih lanjut tentang akses data dengan Flink, lihat Fluss Connector.
Akses data dengan StarRocks
Setelah membuat dan mengonfigurasi Fluss Catalog (untuk detailnya, lihat Integrasi Engine - StarRocks), Anda dapat melakukan kueri data di tabel terpadu lake-stream menggunakan metode berikut.
Kueri data lake
StarRocks menggunakan akhiran $lake untuk langsung mengakses seluruh data historis di penyimpanan Paimon dasar.
-- Kueri semua data dari penyimpanan Paimon dasar
SELECT * FROM <catalog_name>.<database_name>.<table_name>$lake;
Kueri aliran
StarRocks menggunakan akhiran $rt untuk langsung melakukan kueri data inkremental real-time yang belum diarsipkan di Fluss.
-- Kueri data inkremental real-time dari lapisan Fluss
SELECT * FROM <catalog_name>.<database_name>.<table_name>$rt;
Kueri semua data (Union Read)
Jika tidak menggunakan akhiran apa pun, StarRocks secara otomatis menggabungkan lapisan Fluss (data panas) dan lapisan Paimon (data dingin) untuk mengembalikan set data lengkap yang mutakhir.
-- Secara otomatis menggabungkan data panas dan dingin untuk mengembalikan set data lengkap yang mutakhir
SELECT * FROM <catalog_name>.<database_name>.<table_name>;