Flink的Use Case及项目创建

一、Flink的Use Case:

       1、Event-driven Applications事件驱动

Flink的Use Case及项目创建

(1)传统驱动:当事件发生时,处理数据,在必要时触发trigger作出相应的行为。

(2)事件驱动:当事件发生时,将事件存储在消息队列中,每次处理消息队列中的数据,Flink应用不断消费消息队列中的数据。每隔一段时间往持续存储器中存储数据(异步),处理数据,在必要时触发trigger作出相应的行为或者将事件再次存入消息队列中。

       例:欺诈检测、异常检测、、基于规则的告警、业务流程监控、Web应用程序(社交网络)——用CEP(复杂事件处理)解决。

 

       2、Data Analytics Applications分析

Flink的Use Case及项目创建

(1)批处理分析:将实时数据存储在数据库中,Flink应用在一段时间后进行批处理,经过处理后可以存到数据库中或发布在report中。

(2)流式分析:将上游实时数据先写入消息队列中,处理后不断更新到数据库中,以便Dashboard实时呈现。

 

       3、Data Pipeline Applications管道式ETL

Flink的Use Case及项目创建

              ETL:抽取、转换和加载

(1)周期性ETL:周期性地启动一个job,读数据库,简单处理后放入分布式数据仓库中。

(2)流式ETL:周期性地启动一个job,同样读数据库,在计算之后写入消息队列或者分布式数据仓库中。

 

二、生成Flink项目

1、通过Maven骨架创建:

$ mvn archetype:generate                               \

      -DarchetypeGroupId=org.apache.flink              \

      -DarchetypeArtifactId=flink-quickstart-java      \

      -DarchetypeVersion=1.9.0

2、通过Git创建:

$ curl https://flink.apache.org/q/quickstart.sh | bash -s 1.9.0