1、创建传感器实体类


static class SensorReading{
// 传感器 id
private String sensorId;
// 时间戳
private Long timeStamp;
// 温度
private Double temperature;

public SensorReading(String sensorId,Long timeStamp,Double temperature){
this.sensorId = sensorId;
this.timeStamp = timeStamp;
this.temperature = temperature;
}

@Override
public String toString() {
return "SensorReading{" +
"sensorId='" + sensorId + '\'' +
", timeStamp=" + timeStamp +
", temperature=" + temperature +
'}';
}

Flink从集合读取模拟传感器数据-示例_大数据

2、模拟传感器数据


public static List getSensorList(){
// 模拟传感器数据
List list = new ArrayList<SensorReading>();
list.add(new SensorReading("1",1608112731l,35.5));
list.add(new SensorReading("2",1608112830l,35.6));
list.add(new SensorReading("3",1608112837l,35.5));
list.add(new SensorReading("4",1608112842l,35.7));
list.add(new SensorReading("5",1608112851l,35.8));
return list;
}

Flink从集合读取模拟传感器数据-示例_大数据_02

3、使用 fromCollection 方法读取数据,并展示控制台


public static void main(String[] args) throws Exception {
// 创建流处理的执行环境
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

//使用StreamExecutionEnvironment创建DataStream
// Source数据源为集合,从getSensorList方法中获取
DataStreamSource<SensorReading> stream1 = env.fromCollection(getSensorList());

// 调用Sink
stream1.print("stream1:").setParallelism(1);

// 启动任务执行
env.execute();
}

Flink从集合读取模拟传感器数据-示例_大数据_03


Flink从集合读取模拟传感器数据-示例_大数据_04

Flink从集合读取模拟传感器数据-示例_大数据_05