主键模型部分列更新的场景,怎么保证insert数据在update数据之前?

Viewed 28

flink程序通过stream load csv格式导入到doris,
那么既要接收insert语句,也需要实现部分列的update(添加header参数columns以及partial_columns=true),问题如下:
1.insert和update,既然header参数不一样,那么用到的DorisSink就不一样;那么就不可能用一条流写入到DorisSink;
2.那么insert数据一条流,update数据一条流,假如insert数据量大,插入时间长,而update量小,插入时间短,有可能update在insert数据前插入,即使有重试机制,但还是可能失败,怎么去保证2条流的顺序性呢?
3.如果不使用部分列更新,insert和update都使用stream load表全列字段,那么update的时候就需要先将其他字段读取出来,内存耗费就很大,而且除了update列外,其他列都是从库中读取,值并没有变化,又写入进去,增加了不必要的开销
那么怎么去解决这个insert先于update数据的问题呢

1 Answers