1、flink程序资源有限,kafka中数据比较多,想要按一定比例丢弃数据(或者其它策略),减轻flink 程序压力,有什么方法吗?
场景描述:
Kafka 中的数据直接入到 MySQL 数据库中,数据格式如下:
order_id status
只有两个字段, order_id 为主键,以 replace 覆盖方式写入到数据库中。
对同一个 order_id, status 变化很频繁,为不对数据库造成压力,不会对每一条记录都做入库操作,但一定要保证这个 order_id
最终的状态不丢,但这个最终的状态也不确定是多少。
我的做法是 KeyBy orderId 后判断两条记录的时间间隔,如果时间间隔太小不做入库操作,但如果这个 order_id
最后来的两条记录时间间隔太小,会导致最终的状态丢失。
如果不同算子 需要共享状态,是否考虑 归为一个算子进行处理,同理后面的算子也是
> 2022年2月25日 下午4:30,huangzhi...@iwgame.com 写道:
>
> 对于keyed datastream 不同的算子之间是否能够共享同一状态,或者后面的算子任务,是否可以拿到前一个算子任务中的状态?
>
>
>
> huangzhi...@iwgame.com
Hi, swessia
flink-conf 中的 state.backend 是集群默认配置,你可以检查下 Job 是否指定了backend。
具体方式可以参考官方文档:
https://nightlies.apache.org/flink/flink-docs-master/docs/ops/state/state_backends/#configuring-a-state-backend
对于keyed datastream 不同的算子之间是否能够共享同一状态,或者后面的算子任务,是否可以拿到前一个算子任务中的状态?
huangzhi...@iwgame.com