实时计算 Flink 训练营场景与应用|学习笔记(一)

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
简介: 快速学习实时计算 Flink 训练营场景与应用

开发者学堂课程【实时计算 Flink 实战课程实时计算 Flink 训练营场景与应用】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/762/detail/13352


实时计算 Flink 训练营场景与应用

 

主要内容:

一、技术原理

二、技术应用

三、应用场景

四、行业案例

 

一、技术原理

// 第一部分,就是技术原理,这部分主要代表实时计算的内容以及实时计算所代表的批处理。以及Flink 的流处理和批处理比较,最后流计算部分引发出整个围绕事件触发处理相关的技术探讨,本小节并不是技术总结,故仅作一些简单的讲解,通过这部分的内容能够逐步了解Flink 的原理。

1、通晓原理举一反三

Flink 的官网上有关的业务架构的示意图:

实时计算Flink训练营场景与应用-762223.png

// 通过示意图本身来说,做业务开发及架构设计时,希望业务开发人员及架构设计师能够通晓产品的技术原理,如此才能避免踩坑,提升数据开发的效率。同时对于很多架构设计师来说,只有先通晓技术原理,才能培养全局架构的审视及嗅觉,如此可以避免在架构上出现重大失误。通过技术原理来推导出应用场景,并在最后一章行业案例里面得到一一印证。

2、容易混淆的四大概念(数据处理时效性的四大概念)

实时计算Flink训练营场景与应用-762412.png

// 这四个概念比较常见且经常被谈论,是从不同的维度去描述不同的计算特征。四个概念分别实时计算与之对应的离线计算,同时横坐标方的流计算,也可称为流处理,与之对应的批处理。实际上这四个概念是从两个维度去描述的计算或处理所具备的一个特征。

// 中间的横坐标轴以上表现为业务特征。实时计算强调实时特征,指计算过程快速、请求响应迅速,描述的是业务实时需求特征:出结果一定要快。对于离线计算来说,阅读相关的一些文献之后,才能真正感受到很早以前六七十年代一个大型计算有大量的作业,其实处于运行一个离线任务或者offline任务。就是提交一个大体的处理,批处理,打印一个提交一个。但是批处理往往没办法及时得到一个响应,就归到操作系统的离线处理,第二天科研人员操作计算机,再通过终端登录机器去查看离线处理的结果,所以整个过程其实是一个非实时的非交互式的特征,所以对于离线计算来说,描述的本质同时也是业务特征,不过不求快不求实时,只要最终出结果就行实时计算及离线计算其实本质上都是在描述处理业务需求,而本身就是一个技术需求。描述的是如何计算,强调的是一个实时的结果或者是离线的结果

// 坐标轴以下强调的是技术是使用计算还是批处理解决的。对于技术来说强调计算是流式处理的,常驻、事件触发、通常具备实时性(经常与实时计算混淆的原因),但本质上为技术特征,而非业务特征。对于批处理或者批计算从本质上来说,本身也是描述技术,强调计算是通过批来进行处理的非常驻的、外界触发的,通常不具备实时性,因为这一点,所以也经常与离线计算结合在一起讲解,强调批处理是一个非实时计算,是一个离线计算,同理批处理也是一个技术特征,而非业务特征。

// 通过这些描述分清实时流计算离线计算批处理。实际上是从两个不同的维度去描述计算的。

3、数据处理两大门派

实时计算Flink训练营场景与应用-7621199.png

// 对于批处理来说,处理分为三步,第一步用户装载到存储系统第二步批量计算的系统会数据加载到存储里面,此时可能会进行构建,同时也可能会做一些相关的处理。保证之后的计算的准确性,第三步外界发起一个数据请求或计算请求,从而触发计算计算出结果返回给用户,所以本质上是装载存储及计算

// 对于流式计算来使用的方式完全不一样,用户通常来说会把流式作业提前好。提交集群或者计算系统里面,此时右边的数据写出会进入一条触发一条流式计算的运算,实际上在进行一些相关联系优化的时候不会如此极端,但是为了把问题说的更清楚,可以理解数据写入一条此时流式计算就会触发一次,运算一次,输出一次,并最终写出一个结果,所以本质上是事件触发的一个计算,时间非常的短暂。

// 其实对于批处理来说,数据装载数据计算本身都是一个完全脱节的计算,故此时数据是一批批加载计算也是一批批进行,所以本身是一个批量的计算,同时是一个高试验的计算数据的加载一批批的加载计算,批处理也是一批批请求计算的,本身是一个高层计算,同时还是用户主动发起做计算请求的话题。此时会产生大量计算,而对于流式计算来说,正好与之相反,因为计算是持续的。只要有数据写入,就会持续的计算故流式计算经常会伴随实时计算这一说法。数据写入一条就会计算一条,这是事件触发的一个计算

// 故从数据处理的两大门派来看,批处理与流处理,描述的是数据处理的两大门派,截然相反的两种处理方式。

1)流式处理特征

实时计算Flink训练营场景与应用-7621838.png

// 对于流式处理的特征,还有其他特点。对于处理来说,我在维基百科里面的三个关键词为Event、Stream 及Process ,学科名的命名世界流处理,经常工厂或者工业里面,习惯称之为流处理或者计算Event 、Stream 及Process 正好拆解出来后描述了流式处理的三大特点

// 第一大特点为 Event,因为是由事件触发的计算,也就意味着事件是进入一条触发一点,所以 Event 非常重要,计算的触发源,同时对于流式计算来重要一点是必须带有时间属性的事件对于这个不细展开讲,就是对于事件来说,事件的发生时间,处理时间,进入时间等,因为流计算强调与时间相关这一点与批处理不一致若有兴趣可以阅读一下 Flink 官网的文档,里面有关这方面有一个详细的叙述

// 大特点为Stream ,第二个特点与第一个联合起来为 Event Stream ,就是事件的流。同时加了一条为无界的事件,所谓无界的世界就是对于流计算来说,数据是持续不断的发生,源源不断进入流计算的系统。所以本身只要数据源源头的数据,不进行人为的终止及干扰,数据会源源不断的进入到流式处理系统,本质上就是一个无穷无尽的事件流,故此叫做无界的事件流。

// 大特点为Process ,是一个处理系统或者一个计算系统,是实时的在线处理,对于流计算来说,因为希望事件进入一条就触发一,马上处理一,消化一输出一次,这个过程需要非常迅速,所以需要实时的在线处理实时处理的名词可以看到,英文名词定义里面看到三大特点。第一,带事件属性的事件,第二,无界的事件集合第三,实时的在线处理。

(2)流式处理的业务价值

实时计算Flink训练营场景与应用-7622562.png

// 前面讲解的为偏技术一点重点就是实时处理,但从技术的角度,去观察事实处理这是处理的业务价值,实时处理最大的一个特点是事件进入一条触发一条算一条,输出一条这其实是在讲解课程为了简化表达整个的模型,会把模型抽象是哪一条处理的,但实际上在真正的生产过程中,不会有这么极致的一个处理。

// 对于流式处理业务价值来说之前一个数据进一条处理一条,就说明数据产生之后,希望能够尽快被处理完成价值点在于当数据产生之后,想要迅速进行计算拿到业务结果时,此时就是流式计算最大的业务价值,数据的价值,与之出了一个观点,需要计算,一般都是数据的价值随着流时间流逝而迅速降低的。同时下面也会谈到,如图。对于离线计算来说,数据放置一天放置一个小时,甚至放置一个月,都不会影响计算业务对于实时计算来说需要数据产生即刻进行计算,否则随着时间的流逝,数据价值会逐渐的降低。

(3)流式处理的业务价值具体案例:

实时计算Flink训练营场景与应用-7622981.png

// 经典的一个案例,就是双十一的大,其实是一个实时计算或者流式处理的一个对比,新的一个,因为整个的大屏其实描述的是双十一当时成交的一个总工,但对于成交整合来说,希望实时看到整体的成效总额。这是双十一大屏的一个价值

// 再举一个比较深入的例子,平常淘宝或者天猫的卖家,需要根据大数据具体的情况来调配广告资源位,或者调配货物,此时卖家十分希望拿到实时的具体的数据。设想一下,就是拿到广告流量或者点击流量只能拿到一个小时的,在天猫双十一当天我能拿到一个小时之前的一个数据对卖家其实没有用处,因为那时大促高峰都已经过了一个小时。一个小时足以缓冲一切大促的高峰,所以对于淘宝及天猫的卖家来说,若能拥有若干小时之前的,甚至半个小时之前的数据可能都没有任何价值,都没有办法进行调配广告策略或者销售策略,故此需要实时化的一个价值所在,需要立刻知道当下最热的流量,用户最感兴趣的商品,通过这个卖家赶紧调整商业策略,而时间一旦错过就不再电商营销促销活动提升成交金额这个例子来体现流式处理的业务价值。

 

二、技术场景

// 前面内容为整个技术背景及原理,希望通过技术原理来了解流计算,流计算处理的特征价值及应用具体的案例来描述流计算能够给客户带来的业务价值,都是为后续做长期的探讨做铺垫的,接下来第二章开始进入一些常见的探讨。

1、技术的三大场景

实时计算Flink训练营场景与应用-7623557.png

// 专门要讲解抽象的三大场景最大的原因在于抽象的三大场景往往是接下来所有探讨的行业场景行业案例客户案例,最初的源头

都在三大场景里面,三大场景是一个原理性的普适一个介绍,故若了解就相当于通晓了基本的原理。同时这个场景其实是高度抽象的,完全没有带业务的属性,完全是一个技术的属性。若掌握了技术属性,可以举一反三推导到其他的应用场景行业案例里,这就是提前要了解这三大场景的原因

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
前端开发 JavaScript Java
JavaScript复制内容到剪切板 带格式的复制
JavaScript复制内容到剪切板 带格式的复制
230 0
使用ruoyi-vue控制数据权限
使用ruoyi-vue控制数据权限
1784 0
|
9月前
|
JavaScript 数据安全/隐私保护
Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)
Vue Amazing UI 是一个基于 Vue 3、TypeScript、Vite 等最新技术栈开发构建的现代化组件库,包含丰富的 UI 组件和常用工具函数,并且持续不断维护更新中。另外,组件库全量使用 TypeScript,支持自动按需引入和 Tree Shaking 等,能够显著提升开发效率,降低开发成本。
578 5
Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)
|
SQL Cloud Native 关系型数据库
【工具】竟比Navicat还好用,我咋这么不信呢
文章详细阐述了SQLynx的四大重点:1. 什么是SQLynx;2. 如何下载;3. 与Navicat相比的优势;4. 使用方法。SQLynx支持多种数据库和操作系统,具备云原生架构、自动化与智能化功能、团队协作支持等优点。通过实例演示了如何创建MySQL连接并导出表数据,展示了其高效、灵活的特点。希望读者能支持国产软件的发展。
1831 2
【工具】竟比Navicat还好用,我咋这么不信呢
|
Java 应用服务中间件 Maven
SpringBoot概述&SpringBoot基础配置&yml的使用&多环境启动
SpringBoot概述&SpringBoot基础配置&yml的使用&多环境启动
743 2
|
存储 缓存 安全
【专栏】Java中创建临时文件的两种方法
【4月更文挑战第28天】本文介绍了Java中创建临时文件的两种方法:使用`File.createTempFile`和自定义创建。`File.createTempFile`能生成唯一文件名,但默认不自动删除;自定义创建则提供更大灵活性,但需手动管理。临时文件常用于数据缓存、文件上传下载和日志记录,使用时需注意文件清理、唯一性和权限设置。
2203 0
|
Java 数据库连接 Spring
|
JSON 运维 监控
运维界的新宠!9.7K星认证的轻量级自动化平台等你体验
运维界的新宠!9.7K星认证的轻量级自动化平台等你体验
351 0
|
数据库 流计算
Flink CDC的工作原理是通过监听数据库的binlog来实现实时数据同步的
Flink CDC的工作原理是通过监听数据库的binlog来实现实时数据同步的
877 1
|
Java 编译器 Maven
一文解读|Java编译期注解处理器AbstractProcessor
本文围绕编译器注解都是如何运行的呢? 又是怎么自动生成代码的呢?做出了详细介绍。