flink写hive 分区提交问题

Posted wdl_1212

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flink写hive 分区提交问题相关的知识,希望对你有一定的参考价值。

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’

以上是关于flink写hive 分区提交问题的主要内容,如果未能解决你的问题,请参考以下文章

Flink未解决 FLink 写 hive MemoryManager New Memory allocation smaller than the minimum allocation size(代

在 Flink 中的算子之间共享状态

Hive Read & Write Flink

Flink StreamingFileSink 处理流程

flink 时间语义水位线(Watermark)生成水位线水位线的传递

Flink学习(十四) Flink 窗口时间和水位线