Guosmilesmile commented on code in PR #12979:
URL: https://github.com/apache/iceberg/pull/12979#discussion_r2107407959


##########
flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/sink/IcebergSink.java:
##########
@@ -216,7 +235,44 @@ public SimpleVersionedSerializer<IcebergCommittable> 
getCommittableSerializer()
   @Override
   public void addPostCommitTopology(
       DataStream<CommittableMessage<IcebergCommittable>> committables) {
-    // TODO Support small file compaction
+
+    if (!compactMode) {
+      return;
+    }
+
+    SingleOutputStreamOperator<TableChange> tableChangeStream =
+        committables
+            .global()
+            .process(new 
CommittableToTableChangeConverter(tableLoader.clone()))
+            .uid("committable-to-table-change-converter")
+            .forceNonParallel();
+    try {
+
+      RewriteDataFiles.Builder rewriteBuilder =
+          RewriteDataFiles.builder().properties(compactProperties);
+
+      TriggerLockFactory triggerLockFactory =
+          LockFactoryBuilder.build(compactProperties, table.name());
+      TableMaintenance.Builder builder =
+          TableMaintenance.forChangeStream(tableChangeStream, tableLoader, 
triggerLockFactory)

Review Comment:
   Yes, I have done 



##########
flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/sink/IcebergSink.java:
##########
@@ -530,7 +586,26 @@ IcebergSink build() {
           flinkWriteConf,
           equalityFieldIds,
           flinkWriteConf.branch(),
-          overwriteMode);
+          overwriteMode,
+          createCompactionProperties(writeOptions, readableConfig.toMap()));
+    }
+
+    /**
+     * Create the properties for the compaction. The configuration from SQL 
hints has a higher
+     * priority than that from SET statements.
+     *
+     * @param writeProperties config from SQL Hints. Height level.
+     * @param setProperties config from SET statement. Low level.
+     * @return config of compaction
+     */
+    private Map<String, String> createCompactionProperties(

Review Comment:
   Done



-- 
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: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to