本文介紹合并引擎(Merge Engine )中的FirstRow Merge Engine用法。
FirstRow Merge Engine說明
合并策略
對於每個主鍵,僅保留第一條記錄 ,後續相同主鍵的記錄將被忽略。
配置方式
在建立表時,通過設定表屬性
'table.merge-engine' = 'first_row'來啟用。變更日誌特性
產生僅插入(insert-only)的變更日誌。
允許下遊 Flink 作業將主鍵表視為僅追加(append-only)的日誌表。
適用情境
適用於無需回撤或變更日誌的下遊操作,例如視窗彙總(Window Aggregation),間隔串連(Interval Join)等情境。
在流式計算中,可用於日誌去重 ,顯著降低處理複雜性並提升效率。
使用限制
不支援UPDATE和DELETE操作。
不支援部分更新。
變更日誌中的UPDATE_BEFORE和DELETE事件將被自動忽略。
使用樣本
-- 建立表T,設定主鍵k,並啟用FirstRow Merge Engine
CREATE TABLE T (
k INT,
v1 DOUBLE,
v2 STRING,
PRIMARY KEY (k) NOT ENFORCED
) WITH (
'table.merge-engine' = 'first_row'
);
-- 插入兩條主鍵相同的記錄
INSERT INTO T VALUES (1, 2.0, 't1');
INSERT INTO T VALUES (1, 3.0, 't2');
-- 查詢主鍵為 1 的記錄,僅返回第一條記錄
SELECT * FROM T WHERE k = 1;
-- 輸出結果
-- +---+-----+------+
-- | k | v1 | v2 |
-- +---+-----+------+
-- | 1 | 2.0 | t1 |
-- +---+-----+------+