系列文章目录:Flink 学习之路
第一章 Flink简介及认识
系列文章目录
文章目录
前言
Apache Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。
一、FLink简介
1、Apache Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。
二、Flink应用程序
1、Flink Application-Streams(流)
bounded streams 有界数据流
unbounded streams 无界数据流
1、Application-State(状态):应用程序状态 (状态是时间范围内所需的数据缓存(聚合计算时))
无状态的计算:数据来一条处理一条输出一条 ,数据不需要留在系统中 如:select ,where的条件过滤等
有状态的计算:后续数据需要之前的数据;有单位限制的数据处理所需的数据就是状态(如聚合计算一个小时内的点击量,需要将近一小时的数据缓存在系统中,这些缓存的数据就是状态 或 数据 statefut)
2、Flink Application - Time(时间)
event time 事件时间 :事件真正发生的时间,
Ingestion time 发生时间:数据进行入Flink系统时间
Processing Time 处理时间:每个算子处理数据的时间
时间的用途:度量流处理进度
涉及术语:滞后性
3、Flink Application - API(分层API)
1、越顶层越抽象,表达含义越简明,使用越方便
2、越底层越具体,表达能力越丰富,使用越灵活
各层对应的业务作用:
表
开窗
时间,状态,时间
对应的能力范围:表达能力 业务能力
4、Flink Architecture (架构–体系结构)
5、Flink Architecture - Stateful(有状态的)
Flink的支持直接读取本地的状态
涉及术语: 单点故障(容灾性): 远程存储,将有状态的数据定时存储用于归档数据
6、Flink Operation(操作)
Checkpoint 检查点
WebUI 前段页面
Metric 度规
7、Flink Scenario 数据应用场景
7.1、Flink Scenario: Data Pipeline 数据管道(数据ETL)
1、构建实时数仓:下游构建实时数仓时,上游需要有实时的ETL(实时的对数据进行清洗等)之后再写入实时数仓
2、搜索引擎:平台的店家新品上市的商品名字标签出现后,平台的搜索框中可以实时(几秒或几分钟)同步出现在搜索框中(或以标签形式出现)
7.2、Flink Scenario: Data Analytics Flink场景:数据分析
左边:batch —> MapReduce 、 hive作业的分析、处理、生产(报表等)
右边:streaming—> 实时大屏,实时报表
7.3、Flink Scenario: Data Driven Flink场景:数据触发 复杂逻辑
1、风控系统:逻辑,触发
三、 特点:低延迟,高吞吐,结果的准确性和良好的容错性 (状态保存)
具体应用场景 例子:
哪行业处理流数据 —流处理 ---->低延迟
电商和市场营—> 数据报表、广告投放、业务流程需要
物联网(IOT)—> 传感器实时数据采集和显示、实时报警,交通运输业
电信业—>基站流量调配
银行和金融业---->实时结算和通知推送,实时检测异常行为