请先了解lookup模式,然后再看full-compaction模式
环境创建
CREATE CATALOG fs_catalog WITH (
'type'='paimon',
'warehouse'='file:/data/soft/paimon/catalog'
);
USE CATALOG fs_catalog;
drop table if exists t_changelog_fullcompaction;
CREATE TABLE t_changelog_fullcompaction(
age BIGINT,
money BIGINT,
hh STRING,
PRIMARY KEY (hh) NOT ENFORCED
)WITH (
'merge-engine' = 'deduplicate',
'changelog-producer' = 'full-compaction'
);
paimon的snapshot和checkpoint之间的关系
- 一次snapshot会产生一个data文件
- 一次checkpoint会产生1-2个snapshot文件,要看这次checkpoint是否触发compaction,触发了就是2个data文件(一个是合并后的数据,一个本次checkpoint写入数据),否则只有一个(本次checkpoint写入数据)
- paimon 流式写入根据checkpoint间隔,定期生成snapshot
- 批写(手动执行sql脚本)每一个sql会立即生成snapshot,不管checkpoint间隔配置
lookup模式,一次checkpoint会产生一个chagelog,而full-compaction会等待若干次checkpoint后才产生一个chagelog,这取决于参数
如果配置 full-compaction.delta-commits = 2 ,意思就是说,在流式处理场景中checkpoint2次,产生2个snapshot后才会生成一个changelog
在批处理场景下,一次sql就会产生一个check
流式写入验证(1)
CREATE TEMPORARY TABLE t_auto_generated_data (
age BIGINT,
money BIGINT,
hh STRING,
PRIMARY KEY (hh) NOT ENFORCED
) WITH (
'connector' = 'datagen', -- 使用datagen连接器自动生成数据
'