之前的文章《10行Flink WordCount程序背后的万字深度解析,读懂Flink原理和架构》使用WordCount展示了Flink程序的基本结构,本文将以股票价格来演示如何使用Flink的DataStream API。通过本文,你可以学到:
- 定义相关数据结构。
- Flink流处理程序的骨架。
- Flink的执行环境概念。
- 自定义Source、设置时间戳和Watermark。
数据结构
Flink能处理任何可被序列化的数据结构:
- 基础数据类型,包括 String、Integer、Boolean、Array
- 复杂数据结构,包括 Scala case class和 Java POJO
此外,Flink也支持Kryo序列化工具。
本例使用Scala case class来定义一个股票类,该对象包括三个字段:股票代号、时间戳和价格。真实的股票交易数据比这个更为复杂,这里只是一个简化的模型。
case class StockPrice(symbol: String, timestamp: Long, price: Double)
当然,如果使用Java,也可以定义一个POJO(Plain Old Java Object),该类中各个字段或者具有public属性,或者有一个对应的getter和setter方法,且该类有一个无参数的构造函数。
public class StockPrice {
public String symbol;
public Long timestamp;
public Double price;
public StockPrice() {
};
public StockPrice(String symbol, Long timestamp, Double price){
...
};

最低0.47元/天 解锁文章
351

被折叠的 条评论
为什么被折叠?



