数据湖探索 DLI-插入数据:执行Insert into后数据重复怎么办?

时间:2024-11-08 09:33:25

执行Insert into后数据重复怎么办?

  • 问题现象:

    使用Hive和Datasource(除Hudi外)表在执行数据修改类命令(例如insert into,load data)时由于数据源不支持事务性,在系统故障或队列资源重启后,可能会导致数据重复或数据不一致等问题。

  • 原因分析:

    在数据的Commit阶段如果出现队列资源重启可能会导致数据已经被修复到正式目录中。如果执行的是Insert into语句,资源重启后触发重试就会有概率导致数据重复写入。

  • 解决方案:
    1. 推荐使用具备ACID能力的Hudi类型数据源。
    2. 建议尽量使用insert overwrite这样幂等的语法而不是insert into等非幂等语法插入数据。
    3. 如果严格需求数据不能重复,建议在insert into后对表数据执行去重操作,防止数据重复。
support.huaweicloud.com/sqlreference-dli/dli_08_0095.html