mxm opened a new pull request, #16948:
URL: https://github.com/apache/iceberg/pull/16948

   Flink's upsert mode writes equality deletes, which are cheap to produce but 
force every reader to join the data against the delete files (merge-on-read). 
ConvertEqualityDeletes is a maintenance task that rewrites them into deletion 
vectors on a target branch, so reads apply deletes by position. The writer 
keeps appending equality deletes to a staging branch while the conversion runs 
in the background.
   
   Example:
   ```
       TableMaintenance.forTable(env, tableLoader)
           .add(
               ConvertEqualityDeletes.builder()
                   .stagingBranch("staging")
                   .targetBranch("main")
                   .equalityFieldColumns(ImmutableList.of("id"))
                   .scheduleOnEqDeleteFileCount(1)
           .append();
   ```
   
   The table must be V3 for deletion vectors, the equality field columns must 
match the writer's, and every partition column must be an equality field, 
because the converter keys rows on equality values alone and would otherwise 
resolve a delete against the wrong partition. The conversion task has checks in 
place to ensure this.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to