All Products
Search
Document Center

Realtime Compute for Apache Flink:FirstRow Merge Engine

Last Updated:Aug 11, 2026

Topik ini menjelaskan cara menggunakan FirstRow Merge Engine.

Deskripsi FirstRow Merge Engine

  • Merge policy

    Untuk setiap primary key, hanya catatan pertama yang dipertahankan; catatan berikutnya dengan primary key yang sama akan dibuang.

  • Konfigurasi

    Anda dapat mengaktifkan engine ini dengan menyetel properti tabel 'table.merge-engine' = 'first_row' saat membuat tabel.

  • Atribut Changelog

    • Menghasilkan changelog hanya-insert (insert-only).

    • Memungkinkan pekerjaan Flink downstream memperlakukan tabel primary key sebagai tabel log append-only.

  • Skenario

    • Cocok untuk operasi downstream yang tidak memerlukan retraksi atau changelog, seperti window aggregation dan interval join.

    • Dalam pemrosesan aliran, engine ini dapat digunakan untuk menghapus duplikat dari log, sehingga mengurangi kompleksitas pemrosesan dan meningkatkan efisiensi.

  • Batasan

    • Tidak mendukung operasi UPDATE atau DELETE.

    • Tidak mendukung partial updates.

    • Event UPDATE_BEFORE dan DELETE dalam changelog secara otomatis diabaikan.

Contoh

-- Buat tabel T, tetapkan primary key ke k, dan aktifkan FirstRow Merge Engine.
CREATE TABLE T (
    k  INT,
    v1 DOUBLE,
    v2 STRING,
    PRIMARY KEY (k) NOT ENFORCED
) WITH (
    'table.merge-engine' = 'first_row'
);

-- Masukkan dua catatan dengan primary key yang sama.
INSERT INTO T VALUES (1, 2.0, 't1');
INSERT INTO T VALUES (1, 3.0, 't2');

-- Kueri catatan dengan primary key bernilai 1. Hanya catatan pertama yang dikembalikan.
SELECT * FROM T WHERE k = 1;

 -- Output
-- +---+-----+------+
-- | k | v1  | v2   |
-- +---+-----+------+
-- | 1 | 2.0 | t1   |
-- +---+-----+------+