当前位置:   article > 正文

flink 端到端的 exactly-once(精确一次)_flink端到端的exactly once案例

flink端到端的exactly once案例

从source 到 flink的exactly-once  文章很多自己看。

问题来源于群里一个人的提问。

flink运算结果在落地的时候怎么保证exactly-once。

目前两种方式,

1、一种是利用幂等性

举例说明,假设现在 要把mysql的数据同步到oracle。有Insert记录和update记录。怎么保证oracle中结果是正确的 。oracle中加一个主键。那么多次Insert的时候  由于主键的存在  最终结果是正确的。

对于多次 Update,  在数据有序的情况下 , 多次Update 最终结果 也是正确的。对于同一个id hash到同一个 kafka分区来保证 数据的有序。

 

2、第二种呢方法是利用事务性, 关系型数据库大多是支持事务的。如果要写入 es这样不支持事务的 存储器里边怎么办。

可以将flink的汇总数据写入 kafka,目前kafka的连接器是支持事务的,这个估计也就是为什么做实时数仓的要将汇总数据写入kafka的原因之一。 之后可以利用  ELK的ack机制来保证exactly-once 。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/759337
推荐阅读
相关标签
  

闽ICP备14008679号