Flink写入CK数据丢失问题
各位,请教个问题 目前使用flink往ck写入数据,使用的是datastream api以及rocksdb状态后端,程序中了开了两个窗口,都是10秒级别。同时还使用了sql进行group by 求和,求和的操作没有加窗口,同时streamtableenv 设置了状态生存时间为10s. 在跟离线端对比数据的时候发现,一段时间内的数据跟离线差异不大,从0点-17点(数据的事件时间),但是18点(事件时间)以后的数据实时端差异量特别大。 目前在webui上发现整个管理内存的使用率已经占满,不知道是否跟这个有关系。 还有一点现象是,今天的数据我们对比了ck上实时的表(正确的),总体数据量还是要小很多。但是当我从零点重新消费,目前来看今天的数据能够对上,不知道是否是因为程序运行一段时间后,整个管理内存都被占满了,从而导致原本缓存的数据丢失了。 以下是相应的算子链和整个tm内存情况。出现反压是因为从今天0点重新开始消费了。
Re: Flink写入CK数据丢失问题
你好,你可以先看看你们的任务是否开启了 checkpoint ,以及任务运行的过程中是否发生了 failover lxk 于2022年6月2日周四 11:38写道: > 各位,请教个问题 > 目前使用flink往ck写入数据,使用的是datastream > api以及rocksdb状态后端,程序中了开了两个窗口,都是10秒级别。同时还使用了sql进行group by > 求和,求和的操作没有加窗口,同时streamtableenv 设置了状态生存时间为10s. > 在跟离线端对比数据的时候发现,一段时间内的数据跟离线差异不大,从0点-17点(数据的事件时间),但是18点(事件时间)以后的数据实时端差异量特别大。 > 目前在webui上发现整个管理内存的使用率已经占满,不知道是否跟这个有关系。 > > 还有一点现象是,今天的数据我们对比了ck上实时的表(正确的),总体数据量还是要小很多。但是当我从零点重新消费,目前来看今天的数据能够对上,不知道是否是因为程序运行一段时间后,整个管理内存都被占满了,从而导致原本缓存的数据丢失了。 > 以下是相应的算子链和整个tm内存情况。出现反压是因为从今天0点重新开始消费了。 > > > >
Re: Re: Flink写入CK数据丢失问题
我们目前程序整体都是正常的,没有发生过报错,checkpoint是有开启的。 今天查阅了一下相关资料,发现flink已有的issue跟我这个有点像[FLINK-23721] Flink SQL state TTL has no effect when using non-incremental RocksDBStateBackend - ASF JIRA (apache.org),主要原因是我在sql里用了group by,设置了ttl,但是ttl在rocksdb状态后端不生效,所以导致管理内存使用率占满。 目前我的解决方案是使用fsstatebackend,现在观察下来管理内存没有任何问题,我会继续关注整体的数据量差异。 lxk7...@163.com 发件人: yue ma 发送时间: 2022-06-02 15:05 收件人: user-zh 主题: Re: Flink写入CK数据丢失问题 你好,你可以先看看你们的任务是否开启了 checkpoint ,以及任务运行的过程中是否发生了 failover lxk 于2022年6月2日周四 11:38写道: > 各位,请教个问题 > 目前使用flink往ck写入数据,使用的是datastream > api以及rocksdb状态后端,程序中了开了两个窗口,都是10秒级别。同时还使用了sql进行group by > 求和,求和的操作没有加窗口,同时streamtableenv 设置了状态生存时间为10s. > 在跟离线端对比数据的时候发现,一段时间内的数据跟离线差异不大,从0点-17点(数据的事件时间),但是18点(事件时间)以后的数据实时端差异量特别大。 > 目前在webui上发现整个管理内存的使用率已经占满,不知道是否跟这个有关系。 > > 还有一点现象是,今天的数据我们对比了ck上实时的表(正确的),总体数据量还是要小很多。但是当我从零点重新消费,目前来看今天的数据能够对上,不知道是否是因为程序运行一段时间后,整个管理内存都被占满了,从而导致原本缓存的数据丢失了。 > 以下是相应的算子链和整个tm内存情况。出现反压是因为从今天0点重新开始消费了。 > > > >