开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC里mysql通过cdc到doris,mysql的opts只到秒,那写入顺序咋保证?

Flink CDC里mysql通过cdc到doris,mysql的opts只到秒,那写入顺序咋保证?如果1年内更新了两次,可能顺序就不对,比如cp设置1秒,那1秒内累计的数据一个批次到doris,doris不按照顺序写吧?

展开
收起
小小鹿鹿鹿 2024-02-26 16:54:17 99 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在Flink CDC中,保证从MySQL到Doris的数据写入顺序主要依赖于两阶段提交和Exactly Once语义的实现

    具体来说,Flink CDC结合Doris的Flink Connector可以实现从MySQL数据库中监听数据并实时入库到Doris数仓对应的表中。这个过程中,Flink CDC会捕获MySQL的变更数据(如INSERT、UPDATE、DELETE等操作),然后通过Flink的流处理能力,将这些变更实时地传输到Doris。在这个过程中,为了保证数据的顺序性和一致性,通常会采用以下几种技术手段:

    1. 两阶段提交:这是确保数据在多个系统间同步时保持一致性的常用方法。在第一阶段,数据被写入到一个临时存储中,然后在第二阶段,这些数据被原子性地应用到目标系统中。如果在这个过程中发生错误,可以回滚到第一阶段之前的状态,从而保证数据的一致性。
    2. Exactly Once语义:这是指在数据传输和处理的过程中,每条记录只被处理一次。这可以通过一系列复杂的机制来实现,包括事务管理、状态管理和检查点机制。
    3. 事件时间戳:在处理流数据时,可以使用记录的事件时间戳来保证数据的顺序。即使在乱序到达的情况下,也可以根据时间戳来对数据进行排序,从而保证最终的结果是正确的。
    4. Watermarking:这是流处理中的一个概念,用于处理乱序事件。Watermark是一种延迟机制,它允许系统在一定时间内等待迟到的数据,然后再进行处理。

    综上所述,虽然MySQL的binlog可能只能精确到秒级别,但通过上述技术和机制,Flink CDC和Doris Connector可以协同工作,确保即使在高并发的情况下,也能保持数据的正确顺序和一致性。

    2024-02-27 13:42:41
    赞同 展开评论 打赏
  • 增量阶段并行度只有1就是为了保证顺序,且全局为1。此回答来自钉群Flink CDC 社区。

    2024-02-26 18:01:12
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
    One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
    如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

    相关镜像