GeaFlow provides Sink API to the public, used to build Window Sink. Users can define specific output logic by implementing SinkFunction.
| API | Interface Description | Input Parameter Description |
|---|---|---|
| PStreamSink sink(SinkFunction sinkFunction) | Output the result | SinkFunction: Users can define their respective output semantics by implementing the SinkFunction interface. GeaFlow has integrated several sink functions internally, such as Console, File, etc. |
// Print the results directly to the console. source.sink(v -> {LOGGER.info("result: {}", v)});
public class WindowStreamWordCount { private static final Logger LOGGER = LoggerFactory.getLogger(WindowStreamWordCount.class); public static void main(String[] args) { Environment environment = EnvironmentFactory.onLocalEnvironment(); Pipeline pipeline = PipelineFactory.buildPipeline(environment); pipeline.submit(new PipelineTask() { @Override public void execute(IPipelineTaskContext pipelineTaskCxt) { Configuration config = pipelineTaskCxt.getConfig(); List<String> words = Lists.newArrayList("hello", "world", "hello", "word"); PWindowSource<String> source = pipelineTaskCxt.buildSource(new CollectionSource<String>(words) { }, SizeTumblingWindow.of(100)); // Print the results directly to the console. source.sink(v -> { LOGGER.info("result: {}", v); }); } }); IPipelineResult result = pipeline.execute(); result.get(); } }