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

Flink CDC里如果上游没办法限制数据流量 sink doris有办法限制写入流量吗 ?

Flink CDC里如果上游没办法限制数据流量 sink doris有办法限制写入流量吗 ?现在遇到情况 sink doris Records Sent几百万了 但是doris里一条数据没有 怎么办?

展开
收起
小小鹿鹿鹿 2024-02-06 21:21:15 116 0
1 条回答
写回答
取消 提交回答
  • 在Apache Flink CDC中,如果上游无法限制数据流量,确实可以对Flink Sink Doris的部分进行流量控制,以避免Doris端因为写入速率过高而无法处理。以下是一些可能的解决方案:

    1. Flink侧限流

      • 背压 (Backpressure):Flink本身就具备背压机制,可以通过自动调节源和sink之间的数据传输速率,防止数据积压。当sink端处理速度较慢时,Flink会自动减慢数据读取速度,以适应下游处理能力。
      • Sink Rate Limiting: 可以通过Flink Sink Connector的参数或者自定义SinkFunction实现限流逻辑,比如控制每次批量写入的数据量或延时。
    2. Doris侧优化

      • 分区策略:合理设计Doris表的分区策略,可以分散写入压力,提高并发写入性能。
      • Batch Write:确保Flink CDC向Doris写入数据时使用批量写入模式,这样可以减少网络交互次数,提高写入效率。
      • Doris Load Balancing:如果Doris是集群部署,确保负载均衡配置得当,充分利用集群资源。
    3. 中间缓冲与错误处理

      • Checkpoints & Retries:检查Flink作业的Checkpoint配置,确保在失败后能够通过Checkpoint恢复并重试写入。
      • Buffer Size & Flush Policy:设置合理的缓冲区大小和flush策略,避免一次性写入太多数据导致Doris端无法处理。

    对于你提到的Records Sent很多但Doris中没有数据的问题,首先需要排查几个关键点:

    • Flink CDC配置:确认Sink到Doris的配置是否正确,包括连接参数、表名等。
    • 错误处理与告警:检查Flink任务的日志,查看是否有错误信息,例如网络连接错误、数据格式错误、Doris端拒绝写入等情况,并确保有完善的错误处理和告警机制。
    • Doris端问题排查:检查Doris的写入日志,确认是否真的没有接收到任何数据,还是因为某种原因(如DDL变更、表映射错误等)导致数据没有正确写入。

    如果经过排查发现数据确实没有到达Doris端,那么可能需要调整Flink CDC任务的配置,如增加数据缓冲、限流、或者改进错误重试策略,确保数据可靠传输到Doris。同时,也要确认Doris集群的健康状况和写入能力。

    2024-02-19 15:13:14
    赞同 展开评论 打赏

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

相关产品

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

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载