有BucketingSink 为什么还需要StreamingFileSink?

Why we need StreamingFileSink when there is exists BucketingSink?

我发现BucketingSink can do everything the StreamingFileSink可以做,比如写事件到本地文件,NAS或者HDFS文件(原来我以为BucketingSink只能写事件到HDFS,不能写NAS或者本地文件),然而BucketingSink 提供的一些 StreamingFileSink 没有提供的功能,比如 StreamingFileSink 不能设置文件的 Prefix 和 Suffix,但是 BucketingSink 可以,那么为什么在存在 BucketingSink 的情况下还需要 StreamingFileSink?

StreamingFileSink 是一个新的接收器,最终将取代 BucketingSinkBucketingSink 有一些主要限制(S3 的一致输出,支持 Parquet 和 ORC 等分块格式)如果不重新设计就无法解决。 StreamingFileSink 实现了这个新设计。

但是,正如您在当前状态 (Flink 1.6) 中注意到的那样,StreamingFileSink 尚不支持 BucketingSink 的所有功能。