1背景
flink消费kafka写hive,第一版使用的是eventtime和水位线
后来发现肯能延迟好几个小时,导致数据丢失,所以把 kafka的source改为processtime
2023-01-14改的
2 问题出现
下游使用数据的同事发现,2023-01-14开始,没有数据了
排查: hive的数据存在obs,发现obs在2023-01-14下,有数据,但是 show partitions,没有对应分区
问题:flink写hive sink时未提交分区
原因:sink.partition-commit.trigger’ = ‘partition-time’,
如果设置为partition-time,从分区值中提取时间,需要生产watermark。watermark > 分区时间 + 延迟时间,就提交分区
处理:sink.partition-commit.trigger’= ‘process-time’