You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by lxk <lx...@163.com> on 2022/06/02 03:38:24 UTC

Flink写入CK数据丢失问题

各位,请教个问题
目前使用flink往ck写入数据,使用的是datastream api以及rocksdb状态后端,程序中了开了两个窗口,都是10秒级别。同时还使用了sql进行group by 求和,求和的操作没有加窗口,同时streamtableenv 设置了状态生存时间为10s.
在跟离线端对比数据的时候发现,一段时间内的数据跟离线差异不大,从0点-17点(数据的事件时间),但是18点(事件时间)以后的数据实时端差异量特别大。
目前在webui上发现整个管理内存的使用率已经占满,不知道是否跟这个有关系。
还有一点现象是,今天的数据我们对比了ck上实时的表(正确的),总体数据量还是要小很多。但是当我从零点重新消费,目前来看今天的数据能够对上,不知道是否是因为程序运行一段时间后,整个管理内存都被占满了,从而导致原本缓存的数据丢失了。
以下是相应的算子链和整个tm内存情况。出现反压是因为从今天0点重新开始消费了。

Re:Flink写入CK数据丢失问题

Posted by lxk <lx...@163.com>.





补充一下图片


https://s2.loli.net/2022/06/02/C5it4rPFgmJlopZ.png
https://s2.loli.net/2022/06/02/3ri2HIv1RsAawBW.png
https://s2.loli.net/2022/06/02/efVWPvXCYFwhgTp.png
https://s2.loli.net/2022/06/02/9UptbNaWvs7xwXC.png







在 2022-06-02 11:38:24,"lxk" <lx...@163.com> 写道:

各位,请教个问题
目前使用flink往ck写入数据,使用的是datastream api以及rocksdb状态后端,程序中了开了两个窗口,都是10秒级别。同时还使用了sql进行group by 求和,求和的操作没有加窗口,同时streamtableenv 设置了状态生存时间为10s.
在跟离线端对比数据的时候发现,一段时间内的数据跟离线差异不大,从0点-17点(数据的事件时间),但是18点(事件时间)以后的数据实时端差异量特别大。
目前在webui上发现整个管理内存的使用率已经占满,不知道是否跟这个有关系。
还有一点现象是,今天的数据我们对比了ck上实时的表(正确的),总体数据量还是要小很多。但是当我从零点重新消费,目前来看今天的数据能够对上,不知道是否是因为程序运行一段时间后,整个管理内存都被占满了,从而导致原本缓存的数据丢失了。
以下是相应的算子链和整个tm内存情况。出现反压是因为从今天0点重新开始消费了。




 

Re: Re: Flink写入CK数据丢失问题

Posted by "lxk7491@163.com" <lx...@163.com>.
我们目前程序整体都是正常的,没有发生过报错,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,现在观察下来管理内存没有任何问题,我会继续关注整体的数据量差异。


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

Re: Flink写入CK数据丢失问题

Posted by yue ma <ma...@gmail.com>.
你好,你可以先看看你们的任务是否开启了 checkpoint  ,以及任务运行的过程中是否发生了 failover

lxk <lx...@163.com> 于2022年6月2日周四 11:38写道:

> 各位,请教个问题
> 目前使用flink往ck写入数据,使用的是datastream
> api以及rocksdb状态后端,程序中了开了两个窗口,都是10秒级别。同时还使用了sql进行group by
> 求和,求和的操作没有加窗口,同时streamtableenv 设置了状态生存时间为10s.
> 在跟离线端对比数据的时候发现,一段时间内的数据跟离线差异不大,从0点-17点(数据的事件时间),但是18点(事件时间)以后的数据实时端差异量特别大。
> 目前在webui上发现整个管理内存的使用率已经占满,不知道是否跟这个有关系。
>
> 还有一点现象是,今天的数据我们对比了ck上实时的表(正确的),总体数据量还是要小很多。但是当我从零点重新消费,目前来看今天的数据能够对上,不知道是否是因为程序运行一段时间后,整个管理内存都被占满了,从而导致原本缓存的数据丢失了。
> 以下是相应的算子链和整个tm内存情况。出现反压是因为从今天0点重新开始消费了。
>
>
>
>