Skip to main content

Sink Introduction

GeaFlow provides Sink API to the public, used to build Window Sink. Users can define specific output logic by implementing SinkFunction.

Interface​

APIInterface DescriptionInput Parameter Description
PStreamSink sink(SinkFunction sinkFunction)Output the resultSinkFunction: Users can define their respective output semantics by implementing the SinkFunction interface. GeaFlow has integrated several sink functions internally, such as Console, File, etc.
  • Sink Usage
	// Print the results directly to the console.
source.sink(v -> {LOGGER.info("result: {}", v)});

Example​

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();
}
}