全部產品
Search
文件中心

Realtime Compute for Apache Flink:LastRow Merge Engine

更新時間:Aug 11, 2026

本文介紹合并引擎(Merge Engine )中的LastRow Merge Engine用法。

LastRow Merge Engine說明

  • 合并策略

    預設採用LastRow合并策略,當新資料的主鍵與已有記錄相同時,舊記錄將被覆蓋,僅保留最新的一條資料(依據處理時間)。

  • 配置方式

    如果在建立主鍵表時,未在表屬性中顯式指定 'table.merge-engine' 參數,系統將自動啟用預設的 LastRow Merge Engine。

  • 支援的操作類型

    INSERT、UPDATE、DELETE。

  • 部分更新支援

    支援部分列更新,即僅更新指定列的值,而無需修改整行資料。

使用樣本

該樣本涵蓋了以下典型應用情境:

  • 即時資料同步:在流式資料寫入情境中,LastRow Merge Engine 可確保主鍵記錄始終反映最新的狀態。

  • 累加式更新:支援僅更新部分列的特性,適用於需要高效處理增量資料的業務需求。

  • 資料清理:通過刪除操作,使用者可以定期清理到期或無效資料,最佳化儲存空間。

CREATE TABLE T (
 k INT,
 v1 DOUBLE,
 v2 STRING,
 PRIMARY KEY (k) NOT ENFORCED
);
-- 插入
INSERT INTO T(k, v1, v2) VALUES (1, 1.0, 't1');
INSERT INTO T(k, v1, v2) VALUES (1, 1.0, 't2');
SELECT * FROM T WHERE k = 1;
-- 輸出:
+----+-----+----+
| k | v1 | v2 |
+----+-----+----+
| 1 | 1.0 | t2 |
+----+-----+----+
-- 更新
INSERT INTO T(k, v1, v2) VALUES (2, 2.0, 't2');
UPDATE T SET v1 = 4.0 WHERE k = 2;
SELECT * FROM T WHERE k = 2;
 -- 輸出:
+----+-----+----+
| k | v1 | v2 |
+----+-----+----+
| 2 | 4.0 | t2 |
+----+-----+----+
-- 部分更新
INSERT INTO T(k, v1) VALUES (3, 3.0); -- 設定v1為3.0
SELECT * FROM T WHERE k = 3;
-- 輸出:
+----+-----+------+
| k | v1 | v2 |
+----+-----+------+
| 3 | 3.0 | null |
+----+-----+------+
INSERT INTO T(k, v2) VALUES (3, 't3'); -- 設定v2為't3'
SELECT * FROM T WHERE k = 3;
-- 輸出:
+----+-----+----+
| k | v1 | v2 |
+----+-----+----+
| 3 | 3.0 | t3 |
+----+-----+----+
-- 刪除(暫不支援大量刪除)
DELETE FROM T WHERE k = 2;
SELECT * FROM T;
-- 輸出:
+----+-----+----+
| k | v1 | v2 |
+----+-----+----+
| 1 | 1.0 | t2 |
+----+-----+----+
| 3 | 3.0 | t3 |
+----+-----+----+