FlinkSQL 使用jdbc connector 入湖 如何保证数据不重复(已经设置主键了) 但是数据依然重复。有人遇到过么?
如果在 FlinkSQL 中使用 JDBC connector 入湖,并且已经设置了主键,那么数据应该不会重复。但是如果数据依然重复,可能存在以下几个原因:
主键设置不正确:需要确认主键设置是否正确,主键必须唯一,如果设置不正确,可能会导致重复数据。
并行度过高:如果并行度过高,可能会导致数据重复,可以适当降低并行度。
事务隔离级别不正确:如果事务隔离级别不正确,可能会导致数据重复。可以设置事务隔离级别为 Serializable,这样可以保证数据的一致性。
JDBC connector 版本问题:如果使用的 JDBC connector 版本过低,可能会存在数据重复的问题。可以尝试升级 JDBC connector 版本。
数据库问题:如果数据库本身存在问题,也可能会导致数据重复。可以尝试在其他环境中测试,确认是否是数据库本身的问题。
针对以上问题,可以逐一排查,找到问题所在,并进行解决。另外,建议在使用 FlinkSQL 中,使用 Flink 自带的 connectors,例如 Kafka、HDFS、HBase 等,这些 connectors 经过了 Flink 团队的充分测试,稳定性更高。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。