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