Topik ini menjelaskan tabel log di Fluss.
Istilah
Tabel log adalah jenis tabel di Fluss yang menyimpan data sesuai urutan penulisannya. Tabel log hanya mendukung operasi append dan tidak mendukung operasi update atau delete. Tabel log biasanya digunakan untuk menyimpan data log ber-throughput tinggi, mirip dengan kasus penggunaan khas Apache Kafka.
Anda dapat membuat tabel log dengan menghilangkan klausa PRIMARY KEY dalam pernyataan CREATE TABLE. Sebagai contoh, pernyataan Flink SQL berikut membuat tabel log dengan 3 bucket.
CREATE TABLE log_table (
order_id BIGINT,
item_id BIGINT,
amount INT,
address STRING
)
WITH ('bucket.num' = '3')
;Parameter 'bucket.num' harus berupa bilangan bulat lebih besar dari 0. Jika tidak ditentukan, sistem menggunakan nilai kluster default sebesar 1 untuk jumlah bucket.
Kebijakan alokasi bucket
Bucketing merupakan unit dasar untuk paralelisasi dan skalabilitas di Fluss. Tabel dibagi menjadi beberapa bucket, dan setiap bucket merupakan unit terkecil untuk operasi baca dan tulis. Saat menulis catatan ke tabel log, Fluss menggunakan kebijakan alokasi bucket untuk menetapkan catatan tersebut ke bucket tertentu. Fluss menyediakan tiga kebijakan alokasi bucket berikut:
Kebijakan Sticky (default)
Menulis catatan secara berkelanjutan ke bucket yang dipilih secara acak hingga bucket tersebut mencapai batas kapasitas yang dikonfigurasi, seperti batas ukuran atau jumlah catatan.
Kebijakan round-robin
Memilih bucket tujuan secara bergiliran sebelum menulis setiap catatan.
Bucketing berbasis hash
Menetapkan catatan berdasarkan nilai hash dari kunci bucket yang ditentukan.
Untuk informasi selengkapnya, lihat Data bucketing.
Kebijakan penyimpanan lokal
Pengaturan parameter: Anda dapat menggunakan parameter
table.log.ttluntuk menentukan periode retensi data log lokal.Mekanisme tiering: Sistem terus memantau siklus hidup data. Data dingin yang melebihi ambang batas masa hidup data (TTL) secara otomatis dipindahkan dari disk lokal dan diarsipkan ke penyimpanan remote. Mekanisme ini memastikan bahwa hanya data aktif (hot data) yang disimpan di disk lokal, sehingga secara efektif mengendalikan beban penyimpanan.
Konsumsi data
Tabel log di Fluss mendukung konsumsi data secara real-time dan secara ketat mempertahankan urutan penulisan data dalam setiap bucket. Aturannya sebagai berikut:
Untuk dua catatan dalam bucket yang sama pada tabel yang sama, catatan yang ditulis lebih dulu akan dikonsumsi lebih dulu.
Untuk dua catatan dalam bucket berbeda pada tabel yang sama, urutan konsumsinya tidak dijamin karena bucket yang berbeda dapat diproses secara paralel oleh tugas konsumsi data yang berbeda.