Skip to content

Commit fa17924

Browse files
authored
feat | sprint1 | FRB-30 | time stamp 기능 구현 | 조수빈
2 parents 917bf3d + 149ad67 commit fa17924

2 files changed

Lines changed: 23 additions & 10 deletions

File tree

src/main/java/com/monitory/data/FlinkApplication.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.monitory.data;
22

33
import com.monitory.data.sources.MqttSource;
4+
import com.monitory.data.transformations.TimeStampAssigner;
45
import org.apache.flink.api.common.eventtime.WatermarkStrategy;
5-
import org.apache.flink.api.common.functions.MapFunction;
66
import org.apache.flink.configuration.Configuration;
77
import org.apache.flink.streaming.api.datastream.DataStream;
88
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
@@ -16,16 +16,9 @@ public static void main (String [] args) throws Exception {
1616
// 2. 데이터 소스
1717
DataStream<String> sourceStream = env.fromSource(new MqttSource(), WatermarkStrategy.noWatermarks(), "MQTT-Source");
1818

19-
// 3. 데이터 처리: 단순하게 문자열을 대문자로 변환하는 예시
19+
// 3. 데이터 처리: Time Stamp 출력과 Anomaly 감지
2020
DataStream<String> transformedStream = sourceStream
21-
.map(new MapFunction<String, String>() {
22-
@Override
23-
public String map(String value) throws Exception {
24-
// Thread.sleep(2000000);
25-
System.out.println("💡 received: " + value);
26-
return value.toUpperCase();
27-
}
28-
});
21+
.map(new TimeStampAssigner());
2922

3023
// 4. 데이터 싱크: 콘솔에 출력
3124
transformedStream.print();
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.monitory.data.transformations;
2+
3+
import org.apache.flink.api.common.functions.MapFunction;
4+
import com.fasterxml.jackson.databind.ObjectMapper;
5+
import com.fasterxml.jackson.databind.node.ObjectNode;
6+
7+
import java.time.Instant;
8+
import java.time.LocalDateTime;
9+
10+
public class TimeStampAssigner implements MapFunction<String, String> {
11+
12+
private static final ObjectMapper mapper = new ObjectMapper();
13+
14+
@Override
15+
public String map(String value) throws Exception {
16+
ObjectNode jsonNode = (ObjectNode) mapper.readTree(value);
17+
jsonNode.put("time", LocalDateTime.now().toString());
18+
return mapper.writeValueAsString(jsonNode);
19+
}
20+
}

0 commit comments

Comments
 (0)