Please have a look at the parent README first.
A Kafka Streams application. It reads hopping windows of features of one Kafka topic and hopping windows of targets from another Kafka topic, joins them, and sends the output to another Kafka topic.
// input: feature window
key: <t0-t1; hostA; cpu; utilization>, value: <0.5; ...>
key: <t0-t1; hostA; net; throughput> , value: <0.7; ...>
key: <t0-t1; hostB; cpu; utilization>, value: <0.9; ...>
// input: target window
key: <t0-t1; hostA>, value: <0>
key: <t0-t1; hostB>, value: <1>
// output: labeled data
key: <t0-t1; hostA; cpu; utilization>, value: <0.5; ...; 0>
key: <t0-t1; hostA; net; throughput> , value: <0.7; ...; 0>
key: <t0-t1; hostB; cpu; utilization>, value: <0.9; ...; 1>
Please have a look at the parent README that explains building and running the extraction with Gradle and Docker Compose. This project will be built as part the parent a multi-project.
Have a look at the implementation and test of the application.