You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Gyula Fora (Jira)" <ji...@apache.org> on 2022/04/03 19:22:00 UTC

[jira] [Closed] (FLINK-13843) Unify and clean up StreamingFileSink format builders

     [ https://issues.apache.org/jira/browse/FLINK-13843?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gyula Fora closed FLINK-13843.
------------------------------
    Resolution: Won't Fix

> 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
>            Priority: Not a Priority
>              Labels: auto-deprioritized-major, auto-deprioritized-minor
>
> 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.20.1#820001)