关于宽表的设计

Viewed 80

doris版本为v2.0.3
目前想要通过flink来对mysql的数据进行宽表写入doris
背景是宽表的key肯定是包含时间类型的字段,并且这个字段值是会更动的,并且同步效率要在5s以内,业务侧才能接受
想了两个方案
1.agg模型,这种方式试了下,行不通,fink connector文档写了agg不行是不支持enabale-delete,也就是当某个key出现变更的时候,就会有重复数据
2.unique模型,这种方案使用有且只能使用部分列更新的功能,但是部分列更新只能支持一个批次的更新列是要相同的,那么我就需要在flink的用window聚合一个时间内的数据,继续全列合并动作,目前doris sink的触发写入是依据checkpoint的,那么我这个windows的时间应该设置比较合理,才能达到效果,保证部分列更新不冲突呢?

假设我checkpoint的时间就是设置5s的情况下

2 Answers

1、什么场景,5S指的是完整数据链路可见性的实效要求?
2、方案二可以考虑sink.enable.batch-mode=batch,使用攒批模式写入 Doris,开启后写入时机不依赖 Checkpoint

在测试的过程中发现
部分列跟更的参数partial_columns 无法跟__DORIS_DELETE_SIGN__ 一起使用啊
如果是这样的话,那出现key变更的情况下 就会有脏数据了,无法通过__DORIS_DELETE_SIGN__对原来的数据进行删除了
这种应该怎么处理呀