本文介紹合并引擎(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 |
+----+-----+----+