【Apache-Flink零基础入门】「入门到精通系列」手把手+零基础带你玩转大数据流式处理引擎Flink(有状态的流式处理)

news2024/11/28 14:08:29

手把手+零基础带你玩转大数据流式处理引擎Flink(有状态的流式处理)

  • 传统批处理
    • 批处理的特点
    • 批处理执行原理
    • 理想方法
  • 流式处理
    • 分布式流式处理
    • 有状态分布式流式处理
    • 有状态分散式流式处理
  • 总结分析

传统批处理

传统批处理数据是指一种数据处理方式,它通过将数据分成批次,逐一处理每个批次中的数据,以达到数据处理的目的。传统批处理数据通常使用批处理作业来完成,这些作业由一系列的命令和程序组成,这些命令和程序会按照一定的顺序依次执行,以完成特定的数据处理任务。

在这里插入图片描述
传统批处理数据通常适用于处理大量的数据,这些数据需要进行复杂的计算和分析,例如财务数据、人口统计数据等。由于批处理数据可以在非工作时间进行处理,因此可以有效地减少系统负载和运行成本,提高数据处理的效率和精度。

批处理的特点

  • 持续收集数据
  • 根据时间将数据分成若干批次档案
  • 定期执行批次运算

批处理执行原理

传统批处理方法是持续收取数据,以时间作为划分多个批次的依据,再周期性地执行批次运算。但假设需要计算每小时出现事件转换的次数,如果事件转换跨越了所定义的时间划分,传统批处理会将中介运算结果带到下一个批次进行计算;除此之外,当出现接收到的事件顺序颠倒情况下,传统批处理仍会将中介状态带到下一批次的运算结果中,这种处理方式也不尽如人意。

理想方法

  • 有状态流处理作为一个新的持续处理的范例连续的数据

  • 产生准确的结果

  • 实时可用的结果只有一个模型的自然结果
    在这里插入图片描述

  • 首先,该方法需要具备状态累积和维护的能力,以便维护过去历史中接收到的所有事件,从而影响输出结果。这可以通过使用流式处理引擎来实现,这种引擎可以在处理过程中维护状态,而不是将状态保存在批处理中。

  • 其次,该方法需要具备时间控制机制,以确保数据的完整性。当所有数据都完全接收到后,输出计算结果。这可以通过在流式处理引擎中设置时间窗口来实现,时间窗口可以控制在多长时间内接收数据。

  • 最后,该方法需要能够实时产生结果,并采用新的持续性数据处理模型来处理实时数据,以最大程度地符合 continuous data 的特性。这可以通过使用实时流处理引擎来实现,这种引擎可以在处理数据时实时产生结果,而不是等待一段时间再进行批处理。

流式处理

流式处理通常用于需要实时响应数据的应用程序,例如实时监控、实时分析和实时报警等。流式处理通常具有以下特点:

  • 连续不断地处理数据流,而不是一次性处理所有数据。
  • 以事件驱动的方式进行处理,即在数据到达时立即处理。
  • 可以在处理数据时动态调整处理逻辑,例如添加新的规则或过滤器。
  • 可以处理无限流数据,即数据源不会停止产生数据。
    在这里插入图片描述

流式处理简单来说是指有一个持续不断的数据源不断地收集数据,数据经过代码处理后即时产生结果,并输出。这种处理方式的基本原理是使用代码作为数据处理的基础逻辑,将数据源中的数据流式地传输到处理引擎中,处理引擎会对数据进行实时处理,并输出结果。与批处理不同,流式处理不需要等待所有数据都被收集完毕后再进行处理,而是可以在数据源不断产生数据的同时进行处理。这种处理方式可以使数据处理更加实时、高效,并且可以应用于需要持续监测和处理数据的场景,如实时监测交通流量、实时监测天气数据等。

分布式流式处理

在这里插入图片描述

假设有多个使用者使用 Input Streams,每个使用者都有自己的ID。如果我们需要计算每个使用者出现的次数,我们需要将同一使用者的事件流到同一个运算代码中。这个过程类似于批处理中的group by,需要对数据进行分区,并设置相应的键值。然后,将具有相同键值的数据流传输到同一个计算实例中进行相同的运算。这样可以确保每个使用者的数据被正确地处理,并且可以提高处理效率。

有状态分布式流式处理

在这里插入图片描述
在上述代码中,定义了变量X,X会在数据处理过程中进行读写。在输出结果时,根据变量X的值来决定输出的内容。因此,状态X会影响最终的输出结果。在这个过程中,第一个重点是先进行状态的co-partitioned key by。这样,具有相同键值的数据会流到同一个计算实例中,与使用者出现次数的原理相同。这个状态就是使用者出现的次数,会随着具有相同键值的事件在同一个计算实例中进行累积。

有状态分散式流式处理

在这里插入图片描述
根据输入流的键值重新分区后,状态也会变成co-partition状态,即具有相同键值的状态会被累积到同一个流中。第二个重点是嵌入式本地状态后端。在具有状态的分散式流式处理引擎中,状态可能会累积到非常大,特别是当键值非常多时,状态可能会超出单一节点的内存负荷量。因此,必须有状态后端来维护这些状态。在正常情况下,状态后端可以使用内存来维护这些状态。

总结分析

总之,传统批处理数据是一种基于批处理作业的数据处理方式,它可以有效地处理大量的数据,并且可以在非工作时间进行处理,从而提高数据处理的效率和精度。

流式处理是一种数据处理方式,它能够在数据到达时及时对其进行处理。与批处理不同,流式处理是在数据流中逐个处理数据,而不是将所有数据收集起来一次性处理。

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

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

相关文章

什么是文件描述符以及重定向的本质和软硬链接(Linux)

目录 1 什么是文件?什么是文件操作?认识系统接口open 什么是文件描述符认识Linux底层进程如何打开的文件映射关系重定向的本质理解软硬链接扩展问题 1 什么是文件?什么是文件操作? 文件 文件内容 文件属性(文件属性…

暴力递归到动态规划(二)

⭐️前言⭐️ 本篇文章是由暴力递归到动态规划篇章的第二篇。 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言 🍉博客中涉及源…

扫码出入库系统在哪些行业使用率最高?服务业绑得最紧密

什么是扫码出入库系统 扫码出入库系统是一种流行的库存管理系统,它使用二维码、条形码或RFID等技术来管理仓库内的物品出入库情况。 使用扫码出入库系统,用户可以通过扫描物品的二维码或条形码,快速地将物品信息录入系统中,同时…

采用sysbench压测mysql详解

文章目录 安装sysbench工具基于sysbench构造测试表和测试数据数据库读写性能测试数据库读性能测试数据库删除性能测试数据库更新索引字段性能测数据库更新非索引字段性能测试数据库插入数据性能测试数据库写性能测试执行完成压测之后可以将run改成cleanup,清除数据 …

LegalAI公开数据集的整理、总结及介绍(持续更新ing…)

诸神缄默不语-个人CSDN博文目录 最近更新日期:2023.6.7 最早更新日期:2023.6.7 文章目录 1. 司法判决预测2. 通用语料3. 其他集成项目4. 推理5. NLU6. NLG1 QA2 文本摘要 7. 信息抽取1 命名实体识别2 句子边界检测(分句) 1. 司法…

青岛科技大学|物联网工程|物联网定位技术(第二讲)|15:00

目录 物联网定位技术(第二讲) 1. 卫星的轨道高度与覆盖区域有何关系,试画图给予说明覆盖区地心角与覆盖面积的关系 2. 试给出实际的卫星地面覆盖区和用户空间可视区所对应的半地心角的公式并请给予解释 3. 定位导航卫星为什么一般不采用同…

【集群】LVS负载均衡群集

文章目录 前言一、企业群集应用概述1. 群集的含义1.1 群集的特点1.2 扩展服务器的方式 2. 群集的类型2.1 负载均衡群集(Load Balance Cluster)2.2 高可用群集(High Availability Cluster)2.3 高性能运算群集(High Perf…

软考A计划-电子商务设计师-模拟试题卷七

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

有一种附件叫做V2附件

大家好,才是真的好。 一般而言,Notes中上传的附件都会对应到某个富文本字段中,这样附件易于处理,也容易进行排版。 最简单的案例就是我们的Notes邮件,附件可以附加在正文中,如下图: 还有我们…

新入职一家公司,接手了个从零开始的项目

开发流程 一个完整的从零开始开发的项目,会涉及到功能设计、数据库设计、项目框架搭建、接口设计与实现等流程,具体可以参考下图。 与我们后端开发有关的主要是功能设计、数据库设计、接口设计与实现这三部分,当然接口设计与实现中也包含项目…

chatgpt赋能python:Python如何快速SEO

Python如何快速SEO Python作为一种通用编程语言,广泛应用于各行各业,包括网站开发和SEO。SEO(Search Engine Optimization)是通过调整网站的结构和内容来提高其在搜索引擎排名中的位置,从而提高网站的流量和收益。Pyt…

【百问百答】可靠性基础知识第四期

1. IP等级的主要测试标准有哪些? 主要参考标准有GB 4208和IEC 60598, 其中也可以具体参考产品标准, 例如LED灯具参考标准为GB 7000, 汽车电子产品可以参考GB/T 28046.3等等。 2.IP等级可分为几个等级? 根据GB4208标准防止固定异物进入&…

阿里云 Serverless 容器服务全面升级:新增组件全托管、AI 镜像秒级拉取能力

6 月 1 日在阿里云峰会粤港澳大湾区上,阿里云智能云原生应用平台总经理丁宇宣布,Serverless 容器服务 ASK 全面升级,进一步帮助企业和开发者降本提效。 Gartner 曾预测,2023 年 70% 的 AI 应用将基于容器和 Serverless 技术开发。…

开源“上天入地”的本领都在这!2023 开放原子全球开源峰会「开源展览」一文拿捏!

2023 开放原子全球开源峰会 将于 6 月 11-13 日正式举办 开源领域新技术、新应用、新热点 Show Time! 前沿开源展览汇 互动体验项目 让每一位参会者融入开源技术新世界! 还有精彩的娱乐项目和丰厚礼品 一网打尽! 抢先揭秘,一…

【Springboot】基于AOP机制的前置通知以及Cookies记录用户操作日志

文章目录 前言1. 添加依赖2. 创建自定义注解LogAnnotation3. 创建日志记录类型3. 编写切面逻辑4. 完善切面层,获取详细的请求信息4.1 获取自定义注解上的属性值4.2 通过Cookies获取用户信息4.3 获取执行时间4.4 日志实体类以及对应数据库类型 5.最后实现的结果 前言…

Spring Authorization Server扩展实现OAuth2.0的密码模式

写在前面 Spring官方已经停止对Spring Security Oauth2的维护,项目和相关文档也被移除 Spring Authorization Server是官方新推出的OAuth2.1和OpenID Connect1.0的实现 两个主要的版本,0.4.x:jdk8。1.x: jdk17 这里用的版本是0.4.1 OAuth2…

A Comprehensive Survey of Neural Architecture Search: Challenges and Solutions

这是NAS综述系列的第二篇文章,针对《A Comprehensive Survey of Neural Architecture Search:Challenges and Solutions》的翻译。 神经架构搜索综述:挑战与解决方案 摘要1 引言1.1 动机1.2 我们的贡献和相关综述1.3 文章组织 2 早期NAS的特征3 优化策略…

SpringBoot之Spring Data JPA入门学习2

我们继续使用上一章的环境。SpringBoot之Spring Data JPA入门学习 一、自动生成数据 我们修改一下实体 增加了几个注解: CreationTimestamp 自动生成创建时间。 UpdateTimestamp 自动生成更新时间。 使用这两个注解我们还需要在类上加上两个注解DynamicInsert和…

【unity造轮子】排序排行榜的制作

List类中有一个【Sort方法】 可以非常快速的对【整数类】 或者【小数类】元素进行升序 public class TestCompare MonoBehaviour {public List<int>numbers;private void Start(){numbersnew List<int>(){20,10,30,70,60,40,50,90,80,100}:}private void Update()…

stable diffusion图片资源分享和模型推荐,好用的模型有哪些呢?

前言 这篇文章主要是分享我的图片和推荐一些好用的模型&#xff0c;模型不在多在于精&#xff0c;基于几个好的大模型适当下载一下LORA模型&#xff0c;就能画出非常好的图片&#xff0c;多话不说 图片分享 简单展示 详情请看&#xff1a;https://space.bilibili.com/109890…