当前位置: 首页 > article >正文

浅聊Flink的广播模式

浅聊Flink的广播模式前言最近接触到一个新颖的中间件 Flink,为什么接触到这个呢,是因为我们公司系统需要做一个告警模块,负责采集到的监控数据会直接往 kafka 里塞,然后告警这边需要从 kafka topic 里面实时读取到监控数据,并将读取到的监控数据做一些 聚合/转换/计算 等操作,然后将计算后的结果与告警规则的阈值进行比较,然后做出相应的告警措施(入库),大体的流程如下所示:简单介绍Flink一.从下至上:1.部署:Flink支持本地运行,能在独立集群或者在被YARN或Mesos管理的集群上运行,也能部署在云上。2.运行:Flink的核心时分布式流式数据引擎,意味着数据以一次一个事件的形式被处理。3.API:DataStream,DataSet,Table,Sql API。4.扩展库:Flink还包括用于复杂事件处理,机器学习,图形设计和Apache Storm兼容性的专用代码库;二.数据集类型1.无穷数据集:无穷的持续集成的数据集合;2.有界数据集:有限不会改变的数据集合;常见的无穷数据集有哪些?1.用户与客户端实时交互数据2.应用实时产生的日志3.金融市场实时产生交易记录三.数据运算模型1.流式:只要数据一直产生,计算就会持续不断的进行;2.批处理:在预定的时间内执行计算,当完成时释放计算机资源;Flink它可以处理有界的数据集,也可以处理无界的数据集,它可以流式的处理数据,也可以批量的处理数据;四.Flink 数据流编程模型Flink提供了不同的抽象级别以开发流式或批处理应用:1.最底层提供了有状态流,它将通过过程函数(Process Function)嵌入到DataStream API中。他允许用户可以自由地处理来自一个或者多个流数据的事件,并使用一致,容错的状态。除此之外,用户可以注册事件时间和处理事件回调,从而是程序可以实现复杂的计算。2.DataSteam / DataSet API是Flink提供的核心API,DataSet处理有界的数据集,DataStream处理有界或者无界的数据流,用户可以通过各种方法(Map / flatmap / window / keyby / sum / max / min / avg / join等)将数据进行转化 / 计算。1.map:一对一转换,对数据流中的每一元素应用一个函数,返回一个新元素。 2.flatmap:一对多转换,对每一个元素应用函数并返回零个,一个或多个元素; window:将数据流按时间或数量切分为有限大小的“窗口”,用于窗口聚合计算; keyby:按指定的key对流进行逻辑分区,相同key的数据会被分配到同一个分区,是后续keyed state 和 keyed window 的基础; sum:对指定字段在窗口或整个keyed stream上进行求和; max:对指定字段取最大值(仅更新该字段,其他字段保持第一条记录的原始值); min:对指定字段取最小值(仅更新该字段,其他字段保持第一条记录的原始值); avg:对指定字段计算平均值(在DataStream API中一般通过sum 与 count组合或使用aggregate实现); join:在两个数据流或者数据集上根据key和窗口(对于DataStream)进行关联,输出符合关联条件的元素对;3.Table API 是以表为中心的声明式DSL,其中表可能会动态变化(在表达流数据时)。Table API提供了例如select , project,join,group-by,aggregate等操作,使用起来更加简洁(代码量更少)你可以在表与DataStream / DataSet之间无缝切换,也允许程序将Table API与DataStream以及DataSet混合使用;select:从表中选择指定的列,类似于SQL的select,可对列进行投影,计算或重命名; project:在Table API中通常与select类似,主要用于选择列的子集,但早期版本中更强调列的重排列; join:将两个表根据关联条件合并在一起,支持内连接,左连接,右连接,全连接等,可基于等值或非等值条件; groupBy:按指定的一个或多个字段对表进行分组,通常后接聚合操作; aggregate:对分组后的数据执行聚合运算,如sum,count,avg,max,min等,也可以通过自定义聚合函数拓展4.Flink提供的最高层级的抽象时SQL。这一层抽象在语法与表达能力上与Table API类似,但是是以SQL查询表达式的形式表现程序。SQL抽象与Table API交互密切,同时SQL查询可以直接在Table API定义的表上执行。五.Flink 程序与数据流结构Flink应用程序结构就是上图所示:1.Source:数据源,Flink在流处理和批处理上的source大概有4类:基于本地集合的source,基于文件的source,基于网络套接字的source,自定义的source。自定义的source常见的有Apache kafka,Amazon Kinesis Streams、RabbitMQ、Twitter Streaming API、Apache NiFi 等,当然你也可以定义自己的 source。2.TransFormation:数据转换的各种操作,有Map / FaltMap / Filter / keyBy / Reduce / Fold / Aggregations / Windows / WindowAll / Union / Window join / Split / Select / Project等,操作很多,可以将数据转换计算成你想要的数据。3.Sink:接收器,Flink将转换计算后的数据发送的地点,你可能需要储存下来,Flink常见的Sink大概有如下几种:写入文件,打印出来,写入socket,写入自定义的sink。自定义的sink常见的有Apache kafka、RabbitMQ、MySQL、ElasticSearch、Apache Cassandra、Hadoop FileSystem 等,同理你也可以定义自己的 sink。六.Flink的优点1.提供准确的结果,甚至在出现无序或者延迟加载的数据的情况下;2.它是状态化的容错的,同时在维护一次完整的应用状态时,能无缝修复错误;3.大规模运行,在上千个节点运行时有很好的吞吐量和低延迟;4.Flink保证状态话计算强一致性。“状态化”意味着应用可以维护随着时间推移已经产生的数据聚合,并且Flink的检查机制再一次失败的事件中一个应用状态的强一致性;5.Flink支持流式计算和带有事件时间语义的视窗,事件时间机制使得那些事件无序到达甚至延迟到达的数据流能够计算出精确的结果;6.除了提供数据驱动的视窗外,Flink还支持基于时间,计数,session等灵活视窗。视窗能够用灵活的触发条件定制化从而达到对复杂的流传输模式的支持。Flink的视窗使得模拟真实的创建数据的环境成为可能。7.Flink的容错能力是轻量级的,允许系统保持高并发,同时在相同时间内提供强一致性保证。Flink以零数据丢失的方式从故障中恢复,但没有考虑可靠性和延迟之间的折衷;8.Flink能满足高并发和低延迟(计算大量数据快)。下图显示了 Flink 与 Storm 在完成了数据清洗的分布式任务的性能对比;9.Flink保存点提供了一个状态化的版本机制,使得能以无丢失状态和最短停机时间的方式更新应

相关文章:

浅聊Flink的广播模式

浅聊Flink的广播模式 前言 最近接触到一个新颖的中间件 Flink,为什么接触到这个呢,是因为我们公司系统需要做一个告警模块,负责采集到的监控数据会直接往 kafka 里塞,然后告警这边需要从 kafka topic 里面实时读取到监控数据,并将读取到的监控数据做一些 聚合/转换/计算…...

HarmonyOS6 ArkTS 外描边(outline)使用文档

文章目录一、核心属性与接口1. 统一设置接口 outlineAPI 11API 182. 分设属性(精细控制)二、OutlineStyle 枚举(三种线型)三、使用方式方式1:独立属性分开设置方式2:统一 outline 对象配置方式3&#xff1a…...

在中国读者中,哪些科幻小说是畅销的?为什么它们畅销

如果只从小说内容本身出发,而不去谈产业、政策、影视改编和时代环境,那么一部科幻小说能不能畅销,核心往往不复杂。读者真正会为一本科幻小说买单,通常不是因为它属于“科幻”这个门类,而是因为它在阅读过程中提供了几…...

金仓数据库在MySQL迁移中的技术观察:高兼容性与平滑替代路径实践

金仓数据库在MySQL迁移中的技术观察:高兼容性与平滑替代路径实践 2023年底,MySQL 5.7正式停止官方维护支持——这一曾被广泛应用于中小企业核心系统的开源数据库,悄然进入生命周期尾声。对开发者而言,这不仅是版本迭代的常规提示…...

属电子信息类专业电子信息工程(Electronic Information Engineering,简称 EE)专业是什么?

属电子信息类专业电子信息工程(Electronic Information Engineering,简称 EE)专业是什么?电子信息工程(Electronic Information Engineering,简称 EE)简称电子信息,是现代科技领域的…...

金仓数据库在MySQL迁移中的实践复盘:一家三甲医院电子病历系统性能与成本优化实录

金仓数据库在MySQL迁移中的实践复盘:一家三甲医院电子病历系统性能与成本优化实录 2024年初,西安市第一医院信息科主任老张盯着监控大屏皱眉:“早高峰挂号排队超3分钟,电子病历调阅平均要4.7秒——这哪是‘智慧医院’&#xff0c…...

YOLO系列算法改进 | 主干改进篇 | 替换SHViT高效视觉变换器 | 助力模型极致轻量化,同时保持高精度性能! | CVPR 2024

0. 前言 本文介绍了SHViT高效视觉变换器,并将其集成到ultralytics最新发布的YOLO26目标检测算法中,替换原有Backbone网络。SHViT的创新在于从宏观和微观两个层面系统性消除计算冗余,通过大步长块化主干和单头部分通道注意力,以最少的内存访问成本实现超快视觉推理。将其作…...

StressTheGPU v1.44 丨便携显卡压力测试工具

StressTheGPU v1.44 便携版是轻量免安装的专业显卡压力测试工具,适配 Windows 全系列系统,凭借低 CPU 占用的优势,可在极端负载下精准评估显卡稳定性与性能,支持实时监控与基准测试,全面满足硬件验机、调试等核心需求。…...

基于DQ轴谐波提取器的PMSM永磁同步电机谐波抑制技术:五七次谐波的有效抑制与电流环解耦补偿应用

基于DQ轴谐波提取器的永磁同步电机谐波抑制 PMSM 1.通过谐波提取器,直接提取DQ轴的谐波分量进行抑制,对五七次谐波电流抑制效果效果很好。 2.为了放大效果,采用主动注入谐波电压的方法,增大了电机中的谐波分量。 3.调制算法采用SV…...

HoRain云--Dash 简介

🎬 HoRain 云小助手:个人主页 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …...

Node.js - 04:MongoDB、会话控制

MongoDB1、简介MongoDB 是一个基于分布式文件存储的数据库,官方地址 https://www.mongodb.com/数据库(DataBase)是按照数据结构来组织、存储和管理数据的 应用程序数据库的主要作用就是 管理数据 ,对数据进行 增(c&…...

大模型工具使用

介绍模型下载API测试本地平台搭建对比表格详细说明TransformersFastChatOllamavLLM关键差异介绍大模型一些简单的使用 模型下载 模型快捷的下载 魔搭社区 Ollama【可以直接在Ollama软件中下载】 API测试 通过API测试的平台:硅基流动 本地平台搭建 对比表格 工…...

AI辅助开发:前端“加速器”还是后端“稳定器”?——基于项目类型与用户规模的实战指南

文章目录前言一、技术原理解析1. 核心差异维度对比2. AI 辅助开发的技术架构模型二、按 DAU 规模分层的实战策略与代码实证1. 低 DAU 项目&#xff08;<1万&#xff09;&#xff1a;MVP 验证期后端实战&#xff1a;从需求到接口的秒级响应前端实战&#xff1a;快速但粗糙的 …...

国内代理IP地域选择与降低延迟方法

在进行公开数据获取、广告效果监测或业务信息整合时&#xff0c;很多企业都会遇到一个现实问题&#xff1a;请求延迟偏高&#xff0c;影响整体效率。尤其是在使用国内代理IP时&#xff0c;地域选择往往被忽视&#xff0c;但实际上&#xff0c;它对延迟的影响非常直接。从网络传…...

计算机毕业设计之springboot学生会事务管理平台的设计与实现

疫情爆发以来&#xff0c;越来越多的用户借助于移动手机、电脑完成生活中的事务&#xff0c;许多的传统行业也更加重视与互联网的结合。本论文探讨利用不断发展和进步的网络技术&#xff0c;实现对个人信息修改、学生、任务分类、活动类型、任务安排、完成任务、 活动信息、加入…...

MATLAB混合预测模型:集成VMD分解与ISSA优化LSTM的动态预测分析及置信区间对比图应...

matlab代码混合预测模型&#xff0c;该模型主要包含了VMD分解&#xff0c;ISSA优化LSTM预测模型&#xff0c;可以出分解图、单模型预测图&#xff0c;混合预测对比图以及加入置信区间的对比图。 可以运用于负荷预测、风速预测、光伏预测以及环境预测等&#xff0c;直接替换数据…...

HoRain云--Dash 回调函数

&#x1f3ac; HoRain 云小助手&#xff1a;个人主页 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站&#xff0c;性价比超高&#xff0c;大内存超划算&#xff01;忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …...

HoRain云--Dash 核心组件

&#x1f3ac; HoRain 云小助手&#xff1a;个人主页 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站&#xff0c;性价比超高&#xff0c;大内存超划算&#xff01;忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …...

Web3未落地,Web4已破局:AI+区块链重构互联网下一代图景

引言当Web3还在为“去中心化落地”争论不休&#xff0c;当普通人仍对“数据主权”“价值互联网”感到遥远时&#xff0c;Web4已悄然掀开神秘面纱&#xff0c;以AI区块链的双核驱动&#xff0c;重构着互联网的未来形态。不同于Web3对“去中心化”的单一追求&#xff0c;Web4打破…...

轮毂电机外特性曲线模型与电机效率map图:基于二维查表法搭建的模型研究

轮毂电机外特性曲线模型、电机效率map图 包含轮毂电机模型&#xff08;采用二维查表法搭建&#xff09;、电机效率以及外特性图在电动车动力系统开发中&#xff0c;轮毂电机的特性建模就像给赛车手配导航仪——既要准又要快。今天咱们手把手搭个能实战的电机模型&#xff0c;重…...

ESP-IDF button 组件介绍

引言 Button 是嵌入式系统中最基础的输入元素之一&#xff0c;但要正确处理按钮输入&#xff0c;需要对消抖、事件检测以及时间控制等细节进行细致处理。乐鑫推出 button 组件 —— 一个功能完善且稳定可靠的 ESP-IDF 按钮驱动组件&#xff0c;可帮助您在项目中更轻松地实现按…...

一条指令,是怎么被机器读懂的

你每次敲下一行代码&#xff0c;按下运行&#xff0c;屏幕上出现结果。 这个过程&#xff0c;看起来很自然&#xff0c;自然得像呼吸一样。 但在这个过程里&#xff0c;有一件事情发生得悄无声息&#xff0c;大多数人从来没有想过&#xff1a; 你写的那行代码&#xff0c;最终变…...

模拟PPG生物信号,利用短时傅里叶变换滤波,提取心率

1、利用短时傅里叶变换滤波&#xff0c;提取心率def test06():import numpy as npimport matplotlib.pyplot as pltfrom scipy import signalfrom scipy.signal import find_peaks# ---------- 参数设置 ----------fs 1000 # 采样率 (Hz)duration 10 # 信号时长 (秒)t np.…...

软件测试入门封神指南!从理论到实战,核心知识点一篇全覆盖

目录零基础也能看懂的测试体系课&#xff0c;搞定开发模型、测试流程、用例设计、BUG管理全链路一、先搞懂软件开发流程&#xff01;测试人必知的4大经典模型1. 瀑布模型2. V模型3. W模型4. 快速原型模型二、软件测试全流程&#xff01;9个核心步骤&#xff0c;一步都不能错1. …...

C语言从入门到进阶——第15讲:深入理解指针(5)

文章目录1. 回调函数是什么?2. qsort使用举例2.1 使用qsort函数排序整型数据2.2 使用qsort排序结构数据3. qsort函数的模拟实现1. 回调函数是什么? 回调函数就是一个通过函数指针调用的函数。 如果你把函数的指针(地址)作为参数传递给另一个函数&#xff0c;当这个指针被用来…...

基于跨模态医学图像生成模型的早期肺癌风险评估研究-(resnet)-大数据深度学习算法毕设毕业设计项目-含完整论文源码

博主介绍&#xff1a;&#x1f449;全网个人号和企业号粉丝40W,每年辅导几千名大学生较好的完成毕业设计&#xff0c;专注计算机软件领域的项目研发&#xff0c;不断的进行新技术的项目实战&#x1f448; ⭐️热门专栏推荐订阅⭐️ 订阅收藏起来&#xff0c;防止下次找不到 &am…...

【C++项目】从零实现高并发内存池(一):核心原理与设计思路

一&#xff1a;什么是内存池&#xff1f; 1. 池化技术 定义&#xff1a;程序先向系统申请过量资源&#xff0c;自己管理备用&#xff0c;避免频繁申请系统资源的开销。核心思想&#xff1a;提前申请 → 自行管理 → 快速复用&#xff0c;提升运行效率。常见应用&#xff1a;内…...

深度学习野外环境下野生动物检测(YOLOv12/v11/v8/v5模型+数据集)(源码+lw+部署文档+讲解等)

摘要 随着全球生态系统的不断变化&#xff0c;野生动物的保护和监测已成为生态学和环境科学领域的重要任务。传统的野生动物监测方法如人工观察和固定摄像头拍摄&#xff0c;存在效率低、成本高和环境适应性差等问题。近年来&#xff0c;深度学习技术的快速发展为野生动物的自动…...

全面理解MySQL架构

目录学前目标一条查询SQL是如何执行的mysql组成架构客户端服务端完整执行流程一条更新SQL是如何执行的学前目标 掌握 MySQL 整体架构划分&#xff0c;清晰区分 Server 层和存储引擎层的功能与核心组件&#xff1b; 理解一条 SQL 查询 / 更新语句的完整执行流程&#xff1b; 掌握…...

android java设置控件不可见+高度=0

holder.im_plan_pic_in_plan_item.setVisibility(View.GONE);就这样就可以了&#xff0c;不会有任何高度&#xff1a;This view is invisible, and it doesnt take any space for layout purposes. Use with setVisibility and android:visibility. 可以看到这个图片是完全没有…...