Gyula Fora created FLINK-13843: ---------------------------------- Summary: Unify and clean up StreamingFileSink format builders Key: FLINK-13843 URL: https://issues.apache.org/jira/browse/FLINK-13843 Project: Flink Issue Type: Improvement Components: API / DataStream, Connectors / FileSystem Affects Versions: 1.10.0 Reporter: Gyula Fora
I think the StreamingFileSink contains some problems that will affect us in the long-run if we intend this sink to be the main exactly-once FS sink. *1. Code duplication* The StreamingFileSink currently has 2 builders for row and bulk formats: RowFormatBuilder, BulkFormatBuilder They both contain almost exactly the same config settings with a lot of code duplication that should be moved to a common superclass (StreamingFileSink.BucketsBuilder). *2. Inconsistent config options* I also noticed some strange/invalid configuration settings for the builders: - RowFormatBuilder#withBucketAssignerAndPolicy : feels like an internal method that is not used anywhere. It also overwrites the bucket factory - BulkFormatBuilder#withBucketAssigner : takes an extra type parameter compared to the row format for the bucket ID type - BulkFormatBuilder#withBucketCheckInterval : does not affect behavior as it always uses the OnCheckpointRollingPolicy This can probably solved by fixing the code duplication *3. Fragmented configuration* This is not a big problem but only affects the part file config options that were introduced recently. We have added 2 methods: withPartFilePrefix and withPartFileSuffix I think we should aim to group configs that belong together -> withPartFileConfig -- This message was sent by Atlassian Jira (v8.3.2#803003)