1. MinBatch聚合(微批处理:每隔一段时间更新状态)
flink默认每一条数据都会更新状态,此处我们缓存一批数据进行更新
优缺点:增加吞吐量但增加延迟,综合考虑
设置MinBatch:
-- sql中开启
-- 开启
set table.exec.mini-batch.enabled=true;
-- 最大缓存时间
set table.exec.mini-batch.allow-latency='5 s';
-- 批次大小
set table.exec.mini-batch.size=1000;
2. Local-Global 本地加全局聚合
开启预聚合需要先开启MiniBatch
-- 开启MinBatch
set table.exec.mini-batch.enabled=true;
-- 最大缓存时间
set table.exec.mini-batch.allow-latency='5 s';
-- 批次大小
set table.exec.mini-batch.size=1000;
-- 开启预聚合
set table.optimizer.agg-phase-strategy=TWO_PHASE;
2.1 datagen-blackhole示例
写入黑洞是用于高性能测试的,写入命令行会造成限制
上游产生数据太多,下游处理数据太少,造成反压,但是任务也不会失败会报警告
灰色运行状态:上游反压
-- source 表
CREATE TABLE words (
word STRING
) WITH (
'connector' = 'datagen',