sink使用StreamingFileSink
代码:
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
//必须开启检查点
env.enableCheckpointing(10 * 1000);
DataStream<String> source ;
/*自定义滚动策略*/
DefaultRollingPolicy<String, String> rollPolicy = DefaultRollingPolicy
.builder()
.withRolloverInterval(TimeUnit.MINUTES.toMillis(5))/*每隔多少毫秒生成一个文件*/
.withInactivityInterval(TimeUnit.MINUTES.toMillis(5))/*未写入数据处于不活跃状态,默认60秒生成一个文件*/
.withMaxPartSize(128 * 1024 * 1024)/*设置每个文件的最大大小 ,默认是128M*/
.build();
/*输出文件名称的前、后缀配置*/
OutputFileConfig config = OutputFileConfig
.builder()
.withPartPrefix("prefix")
.withPartSuffix(".txt")
.build();