Flink图之间流转解析:从逻辑构建到物理执行的深度剖析
在Flink强大的数据处理体系中,Table Connectors实现了与外部结构化数据的高效交互,而Flink作业从代码到实际执行的背后,是各类图结构之间的流转与转换。这些图结构承载着作业的逻辑定义、任务划分与资源调度等关键信息,其流转过程贯穿Flink作业的整个生命周期。深入理解Flink图之间的流转原理,有助于开发者更好地优化作业性能、排查运行问题。接下来,我们将基于有道云笔记内容,对Flink图之间的流转进行详细解析。
一、Flink核心图结构概述
1.1 StreamGraph:逻辑计算的起点
StreamGraph是Flink作业的初始图结构,由用户编写的DataStream API代码转换而来,它以有向无环图(DAG)的形式描述了数据处理的逻辑流程 。在StreamGraph中,每个节点(StreamNode)代表一个数据处理操作,如map、filter、window等算子;边(StreamEdge)则表示数据的流动方向。StreamGraph不涉及具体的物理执行细节,仅定义了作业的逻辑计算过程,是后续图结构转换的基础。例如,在一个实时订单处理作业中,StreamGraph会包含从Kafka数据源读取订单数据、对订单进行过滤和聚合等逻辑节点,以及数据在这些节点间的流动路径。
1.2 JobGraph:任务调度的蓝图
JobGraph由StreamGraph转换而来,是Flink提交给JobManager进行任务调度的图结构 。在转换过程中,StreamGraph中的多个并行度相同且满足条件的算子会进行链式(chaining)合并,形成一个任务(Task),从而减少任务间的数据传输开销,提高执行效率。JobGraph中的节点为JobVertex,每个JobVertex代表一个可以并行执行的任务,它包含了任务执行所需的信息,如算子的并行度、资源需求、输入输出描述等。通过JobGraph,JobManager能够清晰地了解作业的任务划分和依赖关系,进而进行合理的资源分配与调度。
1.3 ExecutionGraph:物理执行的具象
ExecutionGraph是JobGraph在运行时的物理表示,它基于JobGraph进一步细化,考虑了任务的实际执行状态和并发情况 。在ExecutionGraph中,每个JobVertex会根据并行度被实例化为多个并行的TaskVertex,这些TaskVertex代表了真正在TaskManager上执行的任务实例。ExecutionGraph还包含了任务之间的数据流交换信息,以及任务的生命周期管理,如任务的启动、暂停、恢复和终止等操作。它与Flink的运行时环境紧密结合,是作业物理执行的核心依据。
1.4 OptimizedExecutionGraph:性能优化的进阶
OptimizedExecutionGraph是在ExecutionGraph的基础上,经过优化后的图结构,旨在进一步提高作业的执行性能 。优化过程可能包括对任务的重新分区、数据交换方式的调整、资源分配的优化等。例如,通过分析数据的分布和处理特点,将某些任务的分区方式从随机分区调整为按Key分区,以减少数据倾斜;或者根据集群的资源使用情况,动态调整任务的并行度和资源分配,提高资源利用率。
二、Flink图之间的流转过程详解
2.1 StreamGraph到JobGraph的转换
当用户调用env.execute()
方法提交Flink作业时,Flink会首先将StreamGraph转换为JobGraph。这一转换过程主要包括以下步骤:
- 算子链式合并:Flink会对StreamGraph中的算子进行分析,将并行度相同、上下游算子之间数据传输方式为
Forward
(即数据在本地直接传递,无需网络传输)且满足一定条件(如算子的类型、资源需求等)的算子进行链式合并 。例如,在一个包含map和filter算子的流处理作业中,如果它们的并行度相同且数据传输方式符合条件,就会被合并为一个任务。 - 任务生成与信息提取:经过链式合并后,每个合并后的算子链或未参与合并的单个算子会成为JobGraph中的一个JobVertex。Flink会从StreamGraph的节点和边信息中提取任务执行所需的关键信息,如算子的并行度、输入输出类型、资源需求等,并将这些信息封装到JobVertex中 。
- 依赖关系构建:JobGraph会保留StreamGraph中节点之间的依赖关系,通过JobEdge连接具有依赖关系的JobVertex,明确任务的执行顺序,确保数据处理的正确性。
2.2 JobGraph到ExecutionGraph的转换
JobGraph提交到JobManager后,JobManager会根据JobGraph生成ExecutionGraph,该转换过程在作业运行时动态完成:
- TaskVertex实例化:JobManager会根据JobGraph中JobVertex的并行度,为每个JobVertex实例化多个TaskVertex。例如,若一个JobVertex的并行度设置为4,则会生成4个对应的TaskVertex,这些TaskVertex将被分配到不同的TaskManager上并行执行 。
- 任务分配与资源申请:JobManager会根据集群的资源情况和TaskVertex的资源需求,将TaskVertex分配到合适的TaskManager上,并为其申请所需的资源,如内存、CPU等 。同时,JobManager会维护TaskVertex的状态信息,监控任务的执行进度。
- 数据流与通信链路建立:ExecutionGraph会根据JobGraph中的边信息,建立TaskVertex之间的数据流通信链路。不同TaskManager上的TaskVertex之间通过网络进行数据交换,Flink会根据数据的特点和任务的需求,选择合适的数据交换模式,如Shuffle、Broadcast等,确保数据能够高效传输 。
2.3 ExecutionGraph到OptimizedExecutionGraph的优化
在作业运行过程中,Flink会根据实时的运行状态和性能指标,对ExecutionGraph进行优化,生成OptimizedExecutionGraph:
- 性能监控与分析:Flink的监控模块会实时收集任务的执行时间、资源利用率、数据流量等性能指标,并对这些数据进行分析,识别出可能存在性能瓶颈的任务或数据路径 。例如,通过监控发现某个TaskVertex的处理速度明显慢于其他TaskVertex,可能存在数据倾斜问题。
- 优化策略实施:根据性能分析结果,Flink会采取相应的优化策略。如针对数据倾斜问题,可能会调整任务的分区方式或重新分配数据;对于资源利用率低的任务,可能会减少其资源分配或调整并行度 。这些优化操作会对ExecutionGraph进行调整,生成OptimizedExecutionGraph。
- 动态更新与执行:OptimizedExecutionGraph生成后,Flink会将优化后的任务执行计划动态更新到TaskManager上,TaskManager根据新的计划调整任务的执行方式,从而实现作业性能的提升 。
三、Flink图流转中的关键技术与影响因素
3.1 算子链式(Chaining)技术
算子链式技术在StreamGraph到JobGraph的转换过程中起着重要作用,它能够有效减少任务间的数据传输开销,提高作业执行效率 。然而,并非所有算子都能进行链式合并,需要满足以下条件:
- 并行度相同:上下游算子的并行度必须一致,否则无法进行合并。
- 数据传输方式:算子之间的数据传输方式为
Forward
,即数据在本地内存中直接传递,无需通过网络。 - 资源需求相似:算子的资源需求(如内存、CPU)应尽量相似,避免合并后因资源分配不合理导致性能下降。
3.2 数据分区与交换
在图的流转过程中,数据分区和交换方式对作业性能有着显著影响。不同的数据分区策略(如Hash分区、Range分区、Round - Robin分区等)适用于不同的应用场景 。例如,Hash分区适用于数据均匀分布且需要进行聚合操作的场景;Range分区则适用于数据具有明显范围特征的场景。而数据交换模式(如Shuffle、Broadcast、Rebalance等)的选择,也会影响数据在TaskVertex之间的传输效率和资源消耗。合理选择数据分区和交换方式,能够减少数据倾斜,提高数据处理的并行性和整体性能。
3.3 资源管理与调度
从JobGraph到ExecutionGraph的转换过程中,资源管理与调度是关键环节。JobManager需要根据任务的资源需求和集群的可用资源,进行合理的任务分配和资源申请 。如果资源分配不合理,可能会导致部分任务因资源不足而执行缓慢,或部分资源闲置浪费。同时,在作业运行过程中,Flink还需要动态调整资源分配,以适应数据量的变化和任务执行的动态需求,确保作业能够高效稳定地运行。
四、Flink图流转的实践意义与优化方向
4.1 作业性能优化
深入理解Flink图之间的流转过程,有助于开发者从多个层面优化作业性能。通过合理设计StreamGraph的算子逻辑,充分利用算子链式技术减少任务数量;在JobGraph转换阶段,精细调整任务的资源需求和并行度;根据作业运行状态,在ExecutionGraph和OptimizedExecutionGraph阶段动态优化数据分区和资源分配,能够显著提升作业的执行效率,降低资源消耗 。
4.2 故障排查与调试
当Flink作业出现性能问题或运行故障时,Flink图的流转信息可以作为重要的排查依据。通过分析StreamGraph、JobGraph和ExecutionGraph中节点和边的状态,以及任务的执行情况,能够快速定位问题所在 。例如,若发现某个TaskVertex长时间处于等待状态,可能是由于上游任务数据输出缓慢或数据交换链路出现问题,从而有针对性地进行调试和修复。
4.3 未来发展趋势
随着大数据处理需求的不断增长和技术的持续演进,Flink图之间的流转机制也将不断优化和创新 。未来可能会引入更智能的优化算法,实现自动化的性能调优;在资源管理方面,可能会结合云计算和容器技术,实现更灵活的资源动态分配;同时,随着AI技术与大数据的深度融合,也可能会出现基于机器学习的图结构分析和优化方法,进一步提升Flink作业的执行效率和智能化水平。
Flink图之间的流转过程贯穿了作业从逻辑定义到物理执行的全生命周期,其背后涉及到复杂的技术原理和优化策略。通过对各类图结构及其流转过程的深入理解,开发者能够更好地驾驭Flink,构建出高效、稳定的大数据处理应用。在实际应用中,不断探索和优化Flink图的流转机制,将为企业的数据处理和分析带来更大的价值。如果你在Flink作业开发和运行过程中遇到与图流转相关的问题,或是对优化方法有进一步探讨的需求,欢迎随时交流分享。
相关文章:
Flink图之间流转解析:从逻辑构建到物理执行的深度剖析
在Flink强大的数据处理体系中,Table Connectors实现了与外部结构化数据的高效交互,而Flink作业从代码到实际执行的背后,是各类图结构之间的流转与转换。这些图结构承载着作业的逻辑定义、任务划分与资源调度等关键信息,其流转过程…...
详解Redis数据库和缓存不一致的情况及解决方案
数据库与缓存不一致是分布式系统中常见问题,本质是数据在缓存层和存储层出现版本差异。 一、并发写操作导致不一致(最常见) 场景描述 线程A更新数据库 → 线程B更新数据库 → 线程B更新缓存 → 线程A更新缓存 结果:缓存中存储的…...
【CSS】CSS3媒体查询全攻略
媒体查询教程 媒体查询(Media Queries)是CSS3中引入的强大功能,允许内容根据设备特性(如屏幕尺寸、分辨率、方向等)进行自适应调整。以下是媒体查询的详细教程: 基本语法 media mediatype and (media feature) {/* CSS规则 */ }常用媒体类型 all - 所…...
深入理解Spring的ResponseBodyAdvice接口
什么是ResponseBodyAdvice? ResponseBodyAdvice是Spring框架4.2版本引入的一个非常有用的接口,它允许我们在控制器方法执行后、响应体写入前对响应进行统一处理。这个接口为开发者提供了对返回数据进行统一拦截和修改的能力,是Spring MVC响应处理流程中…...
C++法则5: 在函数调用过程中,具有非引用类型的参数要进行拷贝初始化。
C法则5: 在函数调用过程中,具有非引用类型的参数要进行拷贝初始化。 在 C 中,法则5指的是:当函数参数是非引用类型(即按值传递)时,传递给函数的实参会进行拷贝初始化(copy initializ…...
Python 使用 Requests 模块进行爬虫
目录 一、请求数据二、获取并解析数据四、保存数据1. 保存为 CSV 文件2. 保存为 Excel 文件打开网页图片并将其插入到 Excel 文件中 五、加密参数逆向分析1. 定位加密位置2. 断点调试分析3. 复制相关 js 加密代码,在本地进行调试(难)4. 获取 …...
day039-nginx配置补充
文章目录 0. 老男孩思想-如何提升能力?1. nginx登录认证功能1.1 创建密码文件1.2 修改子配置文件1.3 重启服务 2. nginx处理请求流程3. 配置默认站点4. location 命令5. 案例1-搭建大型直播购物网站5.1 配置本地hosts解析5.2 编写子配置文件5.3 创建相关目录/文件并…...
K8s入门指南:架构解析浓缩版与服务间调用实战演示
目录 前言一、k8s概念理解1、k8s整体架构(1) Master 主节点(2) Node 工作节点(3) Etcd 键值存储数据库 2、Pod被视为最小的部署单元3、k8s的五种控制器类型(1)…...
如何用AI开发完整的小程序<10>—总结
通过之前9节的学习。 如何用Ai制作一款简单小程序的内容就已经都介绍完了。 总结起来就以下几点: 1、搭建开发制作环境 2、创建页面(需要手动) 3、在页面上制作UI效果(让Ai搞,自己懂了后可以自己调) 4…...
Javaweb - 3 CSS
CSS 层叠样式表(Cascading Style Sheets),能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。 简单来说,HTML 搭建一个毛坯房,C…...
【算法】【优选算法】优先级队列
目录 一、1046.最后一块石头的重量二、703. 数据流中的第 K 大元素三、692. 前 K 个⾼频单词四、295. 数据流的中位数 一、1046.最后一块石头的重量 题目链接:1046.最后一块石头的重量 题目描述: 题目解析: 题意就是让我们拿出提供的数组…...
PaddleOCR + Flask 构建 Web OCR 服务实战
1、前言 随着图像识别技术的发展,OCR(光学字符识别)已经成为很多应用场景中的基础能力。PaddleOCR 是百度开源的一个高性能 OCR 工具库,支持中英文、多语言、轻量级部署等特性。 而 Flask 是一个轻量级的 Python Web 框架,非常适合快速构建 RESTful API 或小型 Web 应用…...
openapi-generator-maven-plugin自动生成HTTP远程调用客户端
Java开发中调用http接口的时候,有很多可选的技术方案,比如:HttpURLConnection、RestTemplate、WebClient、Feign、Retrofit、Okhttp等,今天我们来看一个更优的技术方案OpenAPI Generator(http://openapi-generator.tech/) OpenAP…...
ms-swift 部分命令行参数说明
参考链接 命令行参数 — swift 3.6.0.dev0 文档 Qwen Chat num_train_epochs 训练的epoch数,默认为3 假设你有 1000 条训练样本,并且设置了: num_train_epochs 3 这意味着: 模型会完整地遍历这 1000 条数据 3 次。每一次…...
【学习笔记】深入理解Java虚拟机学习笔记——第10章 前端编译与优化
第10章 前端编译与优化 10.1 概述 1>前端编译器:Javac命令。 【.java文件->.class文件】 2>即时编译器:Hotspot.C1.C2 【.class文件->机器码】 3>提前编译器:JDK的Jaotc等【.java->机器码】 10.2 Javac 编译器 10.2.1 …...
删除node并且重装然后重装vue
参考第一篇文章 node.js卸载与安装超详细教程_node卸载重装-CSDN博客 第二篇文章安装vue Vue安装与配置教程(非常详细)_安装vue-CSDN博客...
Flink源码阅读环境准备全攻略:搭建高效探索的基石
想要深入探索Flink的底层原理,搭建一套完整且适配的源码阅读环境是必经之路。这不仅能让我们更清晰地剖析代码逻辑,还能在调试过程中精准定位关键环节。接下来,结合有道云笔记内容,从开发工具安装、源码获取导入到调试配置&#x…...
【破局痛点,赋能未来】领码 SPARK:铸就企业业务永续进化的智慧引擎—— 深度剖析持续演进之道,引领数字化新范式
摘要 在瞬息万变的数字时代,企业对业务连续性、敏捷创新及高效运营的需求日益迫切。领码 SPARK 融合平台,秉持“持续演进”这一核心理念,以 iPaaS 与 aPaaS 为双擎驱动,深度融合元数据驱动、智能端口调度、自动化灰度切换、AI 智…...
Flink SQL Connector Kafka 核心参数全解析与实战指南
Flink SQL Connector Kafka 是连接Flink SQL与Kafka的核心组件,通过将Kafka主题抽象为表结构,允许用户使用标准SQL语句完成数据读写操作。本文基于Apache Flink官方文档(2.0版本),系统梳理从表定义、参数配置到实战调优…...
Linux 服务器运维:磁盘管理与网络配置
🤵♂️ 个人主页:布说在见 ✍🏻作者简介: 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏…...
PyTorch 入门学习笔记
目录 1 张量 1)张量的初始化和属性 2)张量操作 3)使用 NumPy 进行桥接 2 torch.autograd 1)背景 2)在 PyTorch 中的使用 3)Autograd 的微分机制 4)计算图原理 3 神经网络 1ÿ…...
9大策略深度解析MySQL多表JOIN性能优化
一、多表JOIN的现实挑战 在实际开发中,MySQL多表JOIN场景主要源于两类场景: • 历史遗留系统:老代码中未严格遵循范式设计的SQL语句• 数据库迁移:从Oracle迁移至MySQL时保留的复杂关联查询 这类操作潜藏多重风险: …...
CSS 逐帧动画
CSS 逐帧动画实现指南 逐帧动画(frame-by-frame animation)是一种通过快速连续显示一系列静态图像来创造运动效果的技术。以下是使用CSS实现逐帧动画的几种方法。 1. 使用 steps() 计时函数 这是实现逐帧动画最常用的方法,通过animation-timing-function的steps(…...
UE5 游戏模板 —— ThirdPersonGame
UE5 游戏模板 —— ThirdPersonGame 前言一、初始化旋转控制参数1.参数一2.参数二3.参数三4.参数四 二、输入系统总结 前言 有了前面的铺垫,第三人称模板简直是手到擒来了,我们只需要注意一些初始化的变量是做什么的即可,因为UE的Character …...
java中关于异步转同步的一些解决方案的对比与思考。【spring mvc堵塞式】
文章目录 1、Spring MVC堵塞式编程中的技术方案a) 最简单的方案,使用 DeferredResult 代码如下,代码解读:最终控制台输出如下。用户收到的结果 b) 上点难度,使用redis监听事件,根据事件的不同返回不同的数据…...
【数据结构与算法】数据结构核心概念系统梳理
第一章 绪论:基础概念体系 🚩算法:问题求解步骤的描述。 🚩非递归的算法效率更高。 1.1 逻辑结构 vs 存储结构 维度逻辑结构存储结构(物理结构)定义数据元素之间的逻辑关系数据结构在计算机中的实现方式分类线性/树形/图/集合顺序/链式/索引/散列独立性独立于存储结构…...
《HTTP权威指南》 第7章 缓存
带着问题学习: 缓存如何提高性能如何衡量缓存的有效性缓存置于何处作用最大HTTP如何保持缓存副本的新鲜度缓存如何与其他缓存及服务器通信 web缓存是可以自动保存常见文档副本的HTTP设备。 缓存优点 减少冗余的数据传输,节省网络费用缓解网络瓶颈问题&…...
【Zephyr 系列 28】MCU 闪存文件系统详解:LittleFS + NVS + 块设备设计实战
🧠关键词:Zephyr 文件系统、LittleFS、NVS、Flash 分区、嵌入式存储、断电保护、wear leveling 📌 1. 为什么 MCU 上需要文件系统? 在嵌入式开发中,很多开发者起初直接操作 Flash 保存参数,但随着需求增长…...
ICML 2025 | 时间序列(Time Series)论文总结
ICML 2025将在2025年7月13日至7月19日(周六)在温哥华会议中心举行,本文总结了ICML 2025有关时间序列(Time Series)相关文章,共计63篇。 时间序列Topic:预测,分类,异常检测,生成&…...
理解后端开发中的中间件(以gin框架为例)
中间件(Middleware)是后端开发中的一个核心概念,它在请求(Request)和响应(Response)之间扮演着桥梁角色。以下是关于中间件的详细解释: 基本概念 中间件是在请求到达最终处理程序之前或响应返回客户端之前执行的一系列函数或组件。它可以: 访…...
【分布式技术】Bearer Token以及MAC Token深入理解
Bearer Token以及MAC Token深入理解 **Bearer Token 详解****1. 什么是 Bearer Token?****2. Bearer Token 的构建详情****(1)生成流程****(2)Token 示例(JWT)****(3)Tok…...
WebRTC(七):媒体能力协商
目的 在 WebRTC 中,每个浏览器或终端支持的音视频编解码器、分辨率、码率、帧率等可能不同。媒体能力协商的目的就是: 确保双方能“听得懂”对方发的媒体流;明确谁发送、谁接收、怎么发送;保障连接的互操作性和兼容性。 P2P的基…...
(线性代数最小二乘问题)Normal Equation(正规方程)
Normal Equation(正规方程) 是线性代数中的一个重要概念,主要用于解决最小二乘问题(Least Squares Problem)。它通过直接求解一个线性方程组,找到线性回归模型的最优参数(如权重或系数ÿ…...
【机器学习】数学基础——标量
目录 一、标量的定义 二、标量的核心特征:无方向的纯粹量级 2.1 标量 vs 矢量 直观对比 三、 标量的数学本质:零阶张量 3.1 张量阶数金字塔 3.2 标量的数学特性 四、 现实世界的标量图谱 4.1 常见标量家族 4.2 经典案例解析 五、 标量的运算奥秘…...
基于python代码的通过爬虫方式实现TK下载视频(2025年6月)
Tk的视频页面通常需要登录才能获取完整数据,但通过构造匿名游客的请求,我们可以绕过登录限制,提取视频的元信息(如标题、ID和播放地址)。核心思路如下: 构造匿名Cookie:通过模拟浏览器的请求,获取Tk服务器分配的游客Cookie。解析网页:利用BeautifulSoup解析HTML,定位…...
Go 语言的堆糖图片爬虫
基于 Go 语言的堆糖图片爬取探索之旅 在互联网的浩瀚海洋中,堆糖网以其丰富多样的高清图片、美图壁纸等内容吸引了众多用户。对于图片爱好者来说,能高效获取心仪的图片资源无疑是一件极具吸引力的事情。今天,就带大家走进一段基于 Go 语言的…...
python+uni-app基于微信小程序的儿童安全教育系统
文章目录 具体实现截图本项目支持的技术路线源码获取详细视频演示:文章底部获取博主联系方式!!!!本系统开发思路进度安排及各阶段主要任务java类核心代码部分展示主要参考文献:源码获取/详细视频演示 ##项目…...
DAY 39 图像数据与显存
图像数据的格式:灰度和彩色数据模型的定义显存占用的4种地方 模型参数梯度参数优化器参数数据批量所占显存神经元输出中间状态 batchisize和训练的关系 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader ,…...
ELK搭建
1、elasticsearch和kibana搭建配置见 https://blog.csdn.net/yh_zeng2/article/details/148812447?spm1001.2014.3001.5501 2、logstash 下载 下载和elasticsearch版本一致的logstash,下载地址: Past Releases of Elastic Stack Software | Elastic …...
【ELK(Elasticsearch+Logstash+Kibana) 从零搭建实战记录:日志采集与可视化】
ELK(ElasticsearchLogstashKibana) 从零搭建实战记录:日志采集与可视化 本文记录了我在搭建ELK(Elasticsearch, Logstash, Kibana)技术栈时的完整实战过程。使用Docker Compose快速搭建了ELK服务端(监控主机),并通过Filebeat实现…...
反无人机系统:技术利刃如何守护低空安全?
反无人机系统:技术利刃如何守护低空安全? ——从军事防御到城市安防的全景解析 一、技术体系:从“电磁软杀伤”到“激光硬摧毁”的立体防御网 反无人机技术本质是一场“降维打击”:用百万级防御系统对抗千元级消费无人机。当前…...
第十章——8天Python从入门到精通【itheima】-102-Python基础综合案例-数据可视化(pyecharts的入门使用+数据处理)
目录 102节——pyecharts的入门使用 1.学习目标 2.pyecharts入门——基础折线图 3.pyecharts的配置对象有哪些? 4.全局配置——set_global_opts 5.小节总结 103节——数据处理 1.学习目标 2.无法继续关于第一阶段的pyecharts的相关学习 因为关于JSON数据获…...
Neo4j 中存储和查询数组数据的完整指南
Neo4j 中存储和查询数组数据的完整指南 图形数据库 Neo4j 不仅擅长处理节点和关系,还提供了强大的数组(Array)存储和操作能力。本文将全面介绍如何在 Neo4j 中高效地使用数组,包括存储、查询、优化以及实际应用场景。 数组在 Neo4j 中的基本使用 数组…...
云原生/容器相关概念记录
文章目录 网络与虚拟化技术云平台与架构容器与编排容器网络方案性能优化与工具硬件与协议 网络与虚拟化技术 P4可编程网关 P4: Programming Protocol-independent Packet Processors一种基于P4语言的可编程网络设备,支持自定义数据包处理逻辑。P4可编程技术详解&am…...
uni-app项目实战笔记21--uniapp缓存的写入和读取
一、缓存的写入 uni.setStorageSync("storageClassList",classifyList.value) 二、缓存的读取,如果缓存不存在,则返回空数组 const storageClassList uni.getStorageSync("storageClassList") || []; 三、对读取到的数据进行转…...
操作系统概述
覆盖了操作系统概述、运行机制、中断、异常、操作系统的五大结构、虚拟机。 借鉴:王道、我的好朋友杨某、我的笔记。 一、操作系统概念 概念 1.操作系统体现了封装思想 由于底层硬件只接受二进制的指令不方便用户操作,所以操作系统把这些封装成简易的…...
探索数据的力量:Elasticsearch中指定链表字段的统计查询记录
目录 一、基本的数据结构说明 二、基本的统计记录 (一)统计当前索引中sellingProducts的所有类型 (二)检索指定文档中sellingProducts的数据总量 (三)检索指定文档中sellingProducts指定类型的数量统计…...
【Datawhale组队学习202506】YOLO-Master task03 IOU总结
系列文章目录 task01 导学课程 task02 YOLO系列发展线 文章目录 系列文章目录前言1 功能分块1.1 骨干网络 Backbone1.2 颈部网络 Neck1.3 头部网络 Head1.3.1 边界框回归头1.3.2 分类头 2 关键概念3 典型算法3.1 NMS3.2 IoU 总结 前言 Datawhale是一个专注于AI与数据科学的开…...
C/C++数据结构之静态数组
概述 静态数组是C/C中一种基础的数据结构,它允许用户在编译时便确定数组的大小,并分配固定数量的连续存储空间来存放相同类型的元素。静态数组的主要特点是:其大小在声明时就必须指定,且在其生命周期内保持不变。这也意味着&#…...
pyqt f-string
文章目录 一、f-string的基本语法二、代码中的具体应用拼接效果 三、f-string的核心优势四、与其他字符串格式化方式的对比五、在Qt程序中的实际作用六、扩展用法:在f-string中添加格式说明 Python的 f-string(格式化字符串字面值) 特性&…...