大数据Flink实时计算技术

news2024/11/24 14:25:32

1、架构

2、应用场景


Flink 功能强大,支持开发和运行多种不同种类的应用程序。它的主要特性包括:批流一体化、精密的状态管理、事件时间支持以及精确一次的状态一致性保障等。在启用高可用选项的情况下,它不存在单点失效问题。事实证明,Flink 已经可以扩展到数千核心,其状态可以达到 TB 级别,且仍能保持高吞吐、低延迟的特性。世界各地有很多要求严苛的流处理应用都运行在 Flink 之上。
核心点:
1、高吞吐,低延迟
2、结果的准确性
3、精确一次的状态一致性保证
4、高可用,支持动态扩展

事件驱动型应用
什么是事件驱动型应用?
事件驱动型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算、状态更新或其他外部动作。

事件驱动型应用是在计算存储分离的传统应用基础上进化而来。在传统架构中,应用需要读写远程事务型数据库。

相反,事件驱动型应用是基于状态化流处理来完成,数据和计算不会分离,应用只需访问本地(内存或磁盘)即可获取数据。系统容错性的实现依赖于定期向远程持久化存储写入 checkpoint。下图描述了传统应用和事件驱动型应用架构的区别。

事件驱动型应用的优势?
事件驱动型应用无须查询远程数据库,本地数据访问使得它具有更高的吞吐和更低的延迟。而由于定期向远程持久化存储的 checkpoint 工作可以异步、增量式完成,因此对于正常事件处理的影响甚微。事件驱动型应用的优势不仅限于本地数据访问。传统分层架构下,通常多个应用会共享同一个数据库,因而任何对数据库自身的更改(例如:由应用更新或服务扩容导致数据布局发生改变)都需要谨慎协调。反观事件驱动型应用,由于只需考虑自身数据,因此在更改数据表示或服务扩容时所需的协调工作将大大减少。
核心点:
1、定期向远程持久化存储的 checkpoint 可以异步、增量式完成 对正常事件处理影响甚微
2、传统分层架构下,通常多个应用会共享同一个数据库 需考虑数据安全。
3、事件驱动型应用 只需考虑自身数据,在更改数据或服务扩容时所需的协调工作将大大减少

Flink 如何支持事件驱动型应用?
事件驱动型应用会受制于底层流处理系统对时间和状态的把控能力,Flink 诸多优秀特质都是围绕这些方面来设计的。它提供了一系列丰富的状态操作原语,允许以精确一次的一致性语义合并海量规模(TB 级别)的状态数据。此外,Flink 还支持事件时间和自由度极高的定制化窗口逻辑,而且它内置的 ProcessFunction 支持细粒度时间控制,方便实现一些高级业务逻辑。同时,Flink 还拥有一个复杂事件处理(CEP)类库,可以用来检测数据流中的模式。

Flink 中针对事件驱动应用的明星特性当属 savepoint。Savepoint 是一个一致性的状态映像,它可以用来初始化任意状态兼容的应用。在完成一次 savepoint 后,即可放心对应用升级或扩容,还可以启动多个版本的应用来完成 A/B 测试。
核心点:
1、允许以精确一次的一致性语义合并海量规模(TB 级别)的状态数据。
2、支持事件时间和自由度极高的定制化窗口逻辑,内置 ProcessFunction 支持细粒度时间控制。
3、Savepoint 是一个一致性的状态映像,完成一次 savepoint 后,即可放心对应用升级或扩容。
 

数据分析应用
什么是数据分析应用?
数据分析任务需要从原始数据中提取有价值的信息和指标。传统的分析方式通常是利用批查询,或将事件记录下来并基于此有限数据集构建应用来完成。为了得到最新数据的分析结果,必须先将它们加入分析数据集并重新执行查询或运行应用,随后将结果写入存储系统或生成报告。

借助一些先进的流处理引擎,还可以实时地进行数据分析。和传统模式下读取有限数据集不同,流式查询或应用会接入实时事件流,并随着事件消费持续产生和更新结果。这些结果数据可能会写入外部数据库系统或以内部状态的形式维护。仪表展示应用可以相应地从外部数据库读取数据或直接查询应用的内部状态。
核心点:
1、传统方式通过批处理方式从原始数据提取有用的信息生成报表。
2、流式查询或应用会接入实时事件流,并随着事件消费持续产生和更新结果。

如下图所示,Apache Flink 同时支持流式及批量分析应用。


流式分析应用的优势?
和批量分析相比,由于流式分析省掉了周期性的数据导入和查询过程,因此从事件中获取指标的延迟更低。不仅如此,批量查询必须处理那些由定期导入和输入有界性导致的人工数据边界,而流式查询则无须考虑该问题。

另一方面,流式分析会简化应用抽象。批量查询的流水线通常由多个独立部件组成,需要周期性地调度提取数据和执行查询。如此复杂的流水线操作起来并不容易,一旦某个组件出错将会影响流水线的后续步骤。而流式分析应用整体运行在 Flink 之类的高端流处理系统之上,涵盖了从数据接入到连续结果计算的所有步骤,因此可以依赖底层引擎提供的故障恢复机制。
 

Flink 如何支持数据分析类应用?
Flink 为持续流式分析和批量分析都提供了良好的支持。具体而言,它内置了一个符合 ANSI 标准的 SQL 接口,将批、流查询的语义统一起来。无论是在记录事件的静态数据集上还是实时事件流上,相同 SQL 查询都会得到一致的结果。同时 Flink 还支持丰富的用户自定义函数,允许在 SQL 中执行定制化代码。如果还需进一步定制逻辑,可以利用 Flink DataStream API 和 DataSet API 进行更低层次的控制。此外,Flink 的 Gelly 库为基于批量数据集的大规模高性能图分析提供了算法和构建模块支持。
 

数据管道应用
什么是数据管道?
提取-转换-加载(ETL)是一种在存储系统之间进行数据转换和迁移的常用方法。ETL 作业通常会周期性地触发,将数据从事务型数据库拷贝到分析型数据库或数据仓库。

数据管道和 ETL 作业的用途相似,都可以转换、丰富数据,并将其从某个存储系统移动到另一个。但数据管道是以持续流模式运行,而非周期性触发。因此它支持从一个不断生成数据的源头读取记录,并将它们以低延迟移动到终点。例如:数据管道可以用来监控文件系统目录中的新文件,并将其数据写入事件日志;另一个应用可能会将事件流物化到数据库或增量构建和优化查询索引。

下图描述了周期性 ETL 作业和持续数据管道的差异。

数据管道的优势?
和周期性 ETL 作业相比,持续数据管道可以明显降低将数据移动到目的端的延迟。此外,由于它能够持续消费和发送数据,因此用途更广,支持用例更多。

Flink 如何支持数据管道应用?
很多常见的数据转换和增强操作可以利用 Flink 的 SQL 接口(或 Table API)及用户自定义函数解决。如果数据管道有更高级的需求,可以选择更通用的 DataStream API 来实现。Flink 为多种数据存储系统(如:Kafka、Kinesis、Elasticsearch、JDBC数据库系统等)内置了连接器。同时它还提供了文件系统的连续型数据源及数据汇,可用来监控目录变化和以时间分区的方式写入文件。
 

分层 API
Flink 根据抽象程度分层,提供了三种不同的 API。每一种 API 在简洁性和表达力上有着不同的侧重,并且针对不同的应用场景。

1、越顶层的抽象,表达含义越简明,使用越方便 。
2、越底层越具体,表达能力越丰富,使用越灵活。

Flink  VS  Spark


数据模型 

spark 采用 RDD 模型,Spark Streaming 的 DStream 实际上也就是一组组小批数据RDD的集合。

flink 的基本数据模型是数据流以及时间序列。
 
运行时架构

spark是批计算,将DAG划分为不同的Stage,一个完成后才可以计算下一个。

flink是标准的流执行模式,一个事件在一个节点处理完后可以直接发往下一个节点进行处理。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/941880.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

气传导耳机对耳朵有损害吗?2023热门气传导耳机推荐

​不会对耳朵有损害。无论是在健身房锻炼还是在旅途中,都很多人佩戴蓝牙耳机,蓝牙耳机类型也越来越多,目前气传导耳机领导了耳机的新时尚,它们最突出的优点就是佩戴方式,开放双耳,而气传导耳机采用空气传导…

Python使用 YOLO_NAS_S 模型进行目标检测并保存预测到的主体图片

一、前言: 使用 YOLO_NAS_S 模型进行目标检测,并保存预测到的主体图片 安装包: pip install super_gradients pip install omegaconf pip install hydra-core pip install boto3 pip install stringcase pip install typing-extensions pi…

nginx服务与调优(一)

一、nginx概述: 1.Nginx简介: Nginx是一个高性能的HTTP和反向代理服务器。是一款轻量级的高性能的web服务器/反向代理服务器/电子邮件(IMAP/POP3)代理服务器,单台物理服务器可支持30 000~50 000个并发请求…

混合App开发,还能用计算机之父的那套理论

随着移动互联网的蓬勃发展,传统的原生应用和Web应用逐渐融合,冯诺伊曼结构则为此提供了坚实的理论基础。通过将应用的核心逻辑和数据存储在云端,实现了应用的分离,不仅为开发者带来了更便捷的维护和更新方式,也为用户提…

亚马逊加购软件之添加购物车对亚马逊卖家有什么好处

亚马逊对卖家而言,购物车功能可以带来以下一些好处: 1、提高销售机会:当买家将商品添加到购物车中,这意味着他们对这些商品感兴趣并考虑购买。这为卖家提供了更多的销售机会,因为购物车中的商品可能会最终被购买。 2…

橙河:海外賺美金的项目有哪些?

大家好,我是橙河老师。现在呢,很多人去国外打工,大家在短视频上也经常能看到,他们在国外挣了几年钱,回来就能买车买房。 其实呢,他们在国外的工作,工资也就是几千块一个月,不过他们…

15-模型 - 一对多 多对多

一对多: 1. 在多的表里定义外键 db.ForeignKey(主键) 2. 增加字段 db.relationship 建立联系 ("关联表类名","反向引用名") from ext import db# 一 class User(db.Model):id db.Column(db.Integer, primary_keyTrue, autoincrementTrue)us…

「MySQL-05」MySQL Workbench的下载和使用

目录 一、MySQL workbench的下载和安装 1. MySQL workbench介绍 2. 到MySQL官网下载mysql workbench 3. 安装workbench 二、创建能远程登录的用户并授权 1. 创建用户oj_client 2. 创建oj数据库 3. 给用户授权 4. 在Linux上登录用户oj_client检查其是否能操作oj数据库 三、使用…

CSPM认证是什么?

​CSPM项目管理专业人员能力等级评价是由中国标准化协会(全国项目管理标准化技术委员会秘书处)和中国国际人才交流基金会联合发起的。 是依据《项目管理专业人员能力评价要求》(GB/T 41831-2022)国家标准,按照项目管理专业人员应具备的职业道…

六、性能测试之CPU分析

性能测试之CPU分析 一、回顾:性能测试分析的思路二、cpu知识1、影响cpu性能的物理因素:架构、主频、核2、结构:主要物理结构是3个,实际是有4个3、内存说人话(总结)4、内核&线程&架构5、查看cpu信息…

爬虫逆向实战(二十五)--某矿采购公告

一、数据接口分析 主页地址:某矿 1、抓包 通过抓包可以发现数据接口是cgxj/by-lx-page 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现有一个param的加密参数 请求头是否加密? 无响应是否加密? 无c…

TypeScript配置-- 1. 新手处理TS文件红色波浪线的几种方式

Typescript 规范化了JS的项目开发,但是对一些项目的一些新手来说,确实是不怎么优好,譬如我:将我之前珍藏的封装JS代码,拿进了配置了tsconfig.json的vue3项目,在vscode下,出现了满屏的红色 &…

css学习7(盒子模型)

1、盒子模型图&#xff1a; Margin(外边距) - 清除边框外的区域&#xff0c;外边距是透明的。Border(边框) - 围绕在内边距和内容外的边框。Padding(内边距) - 清除内容周围的区域&#xff0c;内边距是透明的。Content(内容) - 盒子的内容&#xff0c;显示文本和图像。 <!DO…

接口自动化测试 —— Jmeter 6种定时器应用

①定时器是在每个sampler&#xff08;采样器&#xff09;之前执行的&#xff0c;而不是之后&#xff0c;不管这个定时器的位置放在sampler之后&#xff0c;还是之下&#xff0c;都在sampler之前得到执行 ②定时器是有作用域的&#xff0c;当执行一个sampler之前时&#xff0c;…

机器学习---决策树算法(CLS、ID3、CART)

1. 决策树 决策树&#xff08;Decision Tree&#xff09;又称为判定树&#xff0c;是运用于分类的一种树结构。其中的每个内部结点 &#xff08;internal node&#xff09;代表对某个属性的一次测试&#xff0c;每条边代表一个测试结果&#xff0c;叶结点&#xff08;leaf&am…

Flutter实现StackView

1.让界面之间可以嵌套且执行动画。 2.界面的添加遵循先进后出原则。 3.需要使用AnimateView&#xff0c;请看我上一篇博客。 演示&#xff1a; 代码&#xff1a; Stack: import package:flutter/cupertino.dart;///栈&#xff0c;先进后出 class KqWidgetStack {final Lis…

Excel显示此值与此单元格定义的数据验证限制不匹配怎么办?

总结&#xff1a;1、在编辑excel文档的时候&#xff0c;弹出此时预测单元格定义的数据验证&#xff0c;限制不匹配的提示。2、这是我们点击菜单来的数据菜单。3、然后点击数据工具栏的数据验证下拉按钮。4、在弹出的菜单中选择数据验证的菜单项。5、然后在打开的窗口中点击左下…

【附安装包】Adobe XD2022安装教程

软件下载 软件&#xff1a;Adobe XD版本&#xff1a;2022语言&#xff1a;简体中文大小&#xff1a;346.8M安装环境&#xff1a;Win11/Win10&#xff08;1809版本以上&#xff09;硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff0c;不支持7代以下CPU&#xff09;下载通…

正中优配:新能源股票为何跌跌不休

从前在A股商场炙手可热、涨势如虹的新能源股票&#xff0c;比方光伏、风电、新能源轿车板块的股票&#xff0c;本年以来却是跌跌不休。有些从前的龙头股&#xff0c;看看K线图&#xff0c;走势用“疑是银河落九天”来描述好像也不为过。可是另一方面&#xff0c;这些新能源股票…

头条移动端项目Day06 —— kafka及异步通知文章上下架

❤ 作者主页&#xff1a;欢迎来到我的技术博客&#x1f60e; ❀ 个人介绍&#xff1a;大家好&#xff0c;本人热衷于Java后端开发&#xff0c;欢迎来交流学习哦&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 如果文章对您有帮助&#xff0c;记得关注、点赞、收藏、…