数据处理逻辑

map

dataStream.fromMqtt("xxxxx","xxxx","xxxxxx","","")
    .map(message->message+"~~~~~")
    .toPrint()
    .start();

flatmap

dataStream.fromMqtt("xxxxx","xxxx","xxxxxx","","")
    .flatMap(message->((JSONObject)message).getJSONArray("Data"))
    .toPrint()
    .start();

filter

dataStream.fromMqtt("xxxxx","xxxx","xxxxxx","","")
    .filter(message->message.contains("xxxxx")) //为true时数据继续向下游输出,否则别拦截
    .toPrint()
    .start();

forEach

selectFields

script

Window

在窗口内进行相关的统计分析,一般会与groupBy连用, window()用来定义窗口的大小, groupBy()用来定义统计分析的主key,可以指定多个

count

avg

min

max

sum

reduce

Join

关键计算,根据条件将俩个流,或者流与物理表进行关联,最终输出结果

join

根据条件将俩个流进行内关联

leftJoin

根据条件将俩个流的数据进行左关联

dimJoin

根据条件将流与维表进行内关联,维表的数据可以来自于文件,也可以来自于数据库

dimLeftJoin

根据条件将流与维表进行左关联,维表的数据可以来自于文件,也可以来自于数据库

Union

将俩个流进行合并

Split

将一个数据流按照标签进行拆分,分为不同的数据流供下游进行分析计算

with

with算子用来指定计算过程中的相关策略,包括checkpoint的存储策略,state的存储策略等

Last updated