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

FlinkSQL 使用jdbc connector 入湖 如何保证数据不重复(已经设置主键了) 但是

FlinkSQL 使用jdbc connector 入湖 如何保证数据不重复(已经设置主键了) 但是数据依然重复。有人遇到过么?

展开
收起
游客3oewgrzrf6o5c 2022-08-20 17:17:27 1021 0
1 条回答
写回答
取消 提交回答
  • 如果在 FlinkSQL 中使用 JDBC connector 入湖,并且已经设置了主键,那么数据应该不会重复。但是如果数据依然重复,可能存在以下几个原因:

    1. 主键设置不正确:需要确认主键设置是否正确,主键必须唯一,如果设置不正确,可能会导致重复数据。

    2. 并行度过高:如果并行度过高,可能会导致数据重复,可以适当降低并行度。

    3. 事务隔离级别不正确:如果事务隔离级别不正确,可能会导致数据重复。可以设置事务隔离级别为 Serializable,这样可以保证数据的一致性。

    4. JDBC connector 版本问题:如果使用的 JDBC connector 版本过低,可能会存在数据重复的问题。可以尝试升级 JDBC connector 版本。

    5. 数据库问题:如果数据库本身存在问题,也可能会导致数据重复。可以尝试在其他环境中测试,确认是否是数据库本身的问题。

    针对以上问题,可以逐一排查,找到问题所在,并进行解决。另外,建议在使用 FlinkSQL 中,使用 Flink 自带的 connectors,例如 Kafka、HDFS、HBase 等,这些 connectors 经过了 Flink 团队的充分测试,稳定性更高。

    2023-06-13 18:46:57
    赞同 展开评论 打赏

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

相关电子书

更多
Phoenix 全局索引原理与实践 立即下载
Apache Flink 流式应用中状态的数据结构定义升级 立即下载
HBase在时间序列数据库中的应用 立即下载