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)