迈向云原生:理想汽车 OLAP 引擎变革之路
在如今数据驱动的时代,高效的分析引擎对企业至关重要。理想汽车作为智能电动汽车的领军企业,面临着海量数据分析的挑战。本文将展开介绍理想汽车 OLAP 引擎从存算一体向云原生架构演进的变革历程,以及在此过程中面临的挑战,以及是如何通过镜舟数据库存算分离架构解决这些问题的。
一、理想汽车 OLAP 引擎的演进历程
理想汽车目前 OLAP 平台规模已相当可观,拥有 12+集群、1.3 万 CPU 核心,日均处理超过 1000 万查询请求,管理约 300T 的数据量,每天百亿级数据入库,业务发展速度令人瞩目。
理想汽车 OLAP 引擎的演进历程反映了企业数据分析平台的成长与挑战,可分为三个关键阶段:
第一阶段(2022 年):引擎统一
2022 年初,理想汽车面临多种 OLAP 引擎并存的复杂局面,团队同时使用 Impala、StarRocks 以及 TiDB 等多种组件服务 OLAP 场景。多引擎共存的状态也带来了负担:资源成本居高不下,维护工作异常复杂,用户使用体验也大打折扣。
面对这一挑战,团队果断决定统一 OLAP 引擎,将湖仓分析和分析型数据库都交由 StarRocks 承担。这一决策大幅简化了技术栈,也为后续发展奠定了基础。
第二阶段(2023 年):稳定性与易用性提升
随着引擎统一后用户规模扩大,新的问题逐渐显现。由于用户使用处于“裸机”状态,缺乏规范和约束,系统稳定性问题频发。
针对这些问题,团队构建了全方位的稳定性保障体系,包括监控、巡检和告警机制,完善了用户操作规范和 SOP,实施了资源隔离策略。此外,团队还加强了元数据操作与数据导入导出的产品化能力,大幅提升系统易用性。
第三阶段(2024 年):向云原生演进
尽管取得了显著进步,团队仍然意识到存算一体架构存在固有的隔离问题、扩容困难和成本高昂等挑战。2024 年,理想汽车决定向云原生架构演进,采用镜舟数据库作为核心引擎,利用其 Multi-warehouse、存算分离、K8s 等云原生能力重构整个 OLAP 平台,开启了数据分析系统的新篇章。
平台定位:大数据场景下的统一查询、分析引擎
在经历了多个发展阶段后,理想汽车明确将数据平台定位为整个企业大数据生态的统一查询分析引擎。团队在镜舟数据库之上构建了 DQS(统一查询服务),提供鉴权、路由、熔断、限流等核心能力,形成大数据平台的统一出口。
这一架构设计不仅实现了技术上的优化,更重要的是满足了业务需求的多样性。从智能座舱、智能驾驶到企业经营分析,从湖仓分析、实时离线分析到 Ad-hoc 查询和联邦查询,镜舟数据库已经全面覆盖了理想汽车的所有业务场景和分析需求,成为企业数据决策的核心引擎。
二、存算一体架构面临的核心挑战
随着业务规模扩大和分析需求深入,存算一体架构的局限性日益凸显。理想汽车团队在实践中遇到了三大核心挑战。
挑战一:单集群内隔离困难,稳定性难保障
在存算一体架构下,多业务共用集群时常出现相互影响的问题:“我们曾经发生过单个业务异常流量暴增,直接将整个集群 CPU 资源打满,导致其他业务查询排队无法获取资源。”尽管团队尝试使用 Resource Group 实现隔离,但对 CPU 资源的隔离效果远不理想。
此外,内表与外表共存也带来了稳定性风险:外表依赖众多外部组件(如 HiveMetaStore、Alluxio 等),外部组件不稳定可能导致整个集群崩溃。
挑战二:机器扩容不灵活且成本高
车辆数据自助分析平台是理想汽车的关键业务系统,最初主要分析 APP 层和少量明细数据。随着业务发展,系统需要接入车机埋点和车辆信号数据,单表数据量迅速增长至万亿行级别,存储需求达到 250TB。在存算一体架构下,团队不得不按照存储需求扩容计算资源。
在如此庞大的数据量下,团队发现:99%的查询只关注近一个月的热数据,大量历史数据很少被访问。这不仅导致大量 CPU 和内存资源浪费,更重要的是,随着车辆数量持续增长,这种扩容模式将变得越来越不可持续。
挑战三:弹性伸缩能力弱,资源利用率低
在智能驾驶数据分析场景中,维护着一个超过 2000 亿条记录的主键模型表,用于智能驾驶模型训练的数据标签检索。这一场景下的查询有三个特点:查询需要全表扫描并过滤聚合、结果集规模巨大(千万级)、查询性能要求高(5 秒内完成)。
更具挑战的是,查询峰值波动大,但出现概率低。为满足峰值需求,只能按照最高负载配置资源,导致整体资源利用率仅约 20%。
这三大挑战共同指向一个核心问题:传统存算一体架构难以满足大规模 OLAP 系统日益增长的灵活性、隔离性和成本效益需求,亟需对架构进行升级重构。
三、镜舟数据库存算分离架构实践
面对存算一体架构的种种挑战,理想汽车团队在 2024 年做出了战略性决策:采用镜舟数据库作为新一代 OLAP 引擎,利用其云原生能力重构整个数据分析平台,给三个关键领域带来了的突破性进展。
1.Multi-Warehouse,解决隔离问题
镜舟数据库的 Multi-Warehouse 能力为理想汽车提供了全新的隔离方案。团队设计了一套三级隔离策略,彻底解决了之前的稳定性难题。
第一级:内外表集群隔离
团队将湖仓外表查询与内表业务完全分离,避免不稳定的外表查询影响内表业务。
第二级:业务场景隔离
在湖仓集群中,团队将 Ad-hoc 灵活分析与传统 BI 业务分离;在内表集群中,则按业务优先级分离高优与低优业务。这种纵向物理隔离比 Resource Group 更加彻底,确保了高优业务的稳定运行。
第三级:读写负载隔离
团队通过将写入场景(包括 compaction 负载)放到独立 warehouse 执行,配合资源组的横向隔离能力,实现更完善的多维度隔离。
通过 Warehouse 的纵向隔离加上 Resource Group 的横向隔离,理想汽车实现了非常完善的隔离能力,大幅提升了稳定性。
2.构建全方位稳定性保障体系
在应用存算分离架构之前,团队已经建立了一套完善的稳定性保障体系,涵盖事前、事中、事后全生命周期:
一是事前预防。通过构建通用巡检机制,提前发现潜在风险,通过 DQS 服务实现 SQL 拦截,过滤高风险查询,并配合开发资源预估工具,确保资源合理配置。
二是事中控制。通过多级隔离能力,团队可以在发生故障时有效缩小影响范围,大幅降低连锁故障的风险。
三是事后治理。提供数据治理能力,排除数据或元数据风险,并定期分析历史问题,识别优化点。同时积极向社区提交 PR,修复发现的 bug。
通过这套完整的稳定性保障体系,结合 Multi-Warehouse 的隔离能力,理想汽车平台稳定性达到了 99.99%,相比之前有了显著提升。
3.存算分离,解决扩容不灵活问题
理想汽车的车辆数据平台是存算分离架构价值的最佳证明。面对持续增长的车辆数据,团队采用了全新的存储策略:将冷数据存储在对象存储中,仅将近一个月的热数据缓存到本地磁盘。
这个决策背后有着严密的数据支撑,理想汽车大数据团队分析了近半年的查询日志,发现 99%的查询仅访问最近 30 天的数据。通过这种热冷分离的方式,能大幅减少本地存储需求,同时保持查询性能。
团队还在业务层面实施了资源削峰措施,即夜间预先计算结果,降低 CPU 并行度,白天直接查询预计算结果。这种用时间换空间的策略,将夜间预计算的资源需求控制在一个合理水平,为日间高峰期留出足够余量。
通过这些措施,在保持查询性能不下降的前提下,节省了 30%的机器资源,不仅解决了当前问题,更为未来数据量进一步增长提供了可持续的解决方案。
4.镜舟数据库 on K8s 部署实现弹性伸缩
理想汽车大数据团队敏锐地察觉到 OLAP 查询和 Spark 生产任务存在天然的波峰波谷互补特性:白天是 OLAP 查询高峰期而 Spark 任务较少,夜间则相反。
基于此,团队利用两者负载的波峰波谷互补特性,日间镜舟数据库使用资源分析数据,夜间 Spark 使用资源生产数据,在不同时段动态调整镜舟数据库和 Spark 的资源分配,实现真正的资源弹性。
验证结果显示:当本地缓存命中时,查询性能与存算一体架构持平;即使缓存未命中,经过参数优化后,性能下降也控制在可接受范围内。
另外,团队发现单表写入性能实际上优于原有架构,单个 CN/BE 节点导入能力达到 142MB/s。通过这种方案,预计可将整体资源利用率提高 50%。
5.镜舟数据库替代 Spark,进行湖仓 Ad-hoc 加速
除了核心架构问题,理想汽车团队还利用镜舟数据库解决了湖仓 Ad-hoc 查询的效率问题。
传统架构下,这类查询依赖 Linkis+Spark 组合,即使简单查询也需要几十秒时间,用户体验较差。
团队设计了全新的查询加速方案:通过 Flink 实时同步 Metastore 元数据至镜舟数据库,消除元数据获取延迟;利用镜舟数据库的资源常驻能力,避免每次查询的资源申请开销;结合自研 DQS 服务替代 Linkis,简化查询路径并增强稳定性保障。
这套方案将 Ad-Hoc 查询性能提升了 10 倍,不仅提升了数据分析师的工作效率,还为业务决策提供了更加及时的数据支持。
四、未来规划:完全云原生架构
随着镜舟数据库在理想汽车的成功应用,团队已经开始规划下一阶段的架构演进,目标是构建一个完全云原生的 OLAP 平台。
完全存算分离架构是团队的首要目标。现阶段的存算分离主要针对计算节点,而元数据服务仍采用存算一体模式。未来计划实现所有集群合并为单一集群,通过共享元数据避免数据孤岛。
团队计划按照场景划分 Warehouse 架构。在单一集群内实现内外表切分,基于业务优先级、负载类型灵活切分 Warehouse,实现内外表混合管理和统一元数据访问。
在资源弹性与成本优化方面,团队计划将低优先级业务部署于 K8s 环境实现弹性伸缩,而高性能需求场景则部署于物理机或云主机。同时,设计支持 Warehouse 间动态负载调整的机制,进一步提升资源利用率。
通过这一系列云原生架构演进,理想汽车与镜舟数据库合作构建了一套兼具稳定性、弹性和成本效益的现代化 OLAP 平台。这一平台不仅有效支撑了从车辆智能分析到企业经营决策的全场景需求,更重要的是为企业在数据驱动转型的道路上奠定了坚实基础,使数据真正成为推动业务创新的核心动力。
相关文章:
迈向云原生:理想汽车 OLAP 引擎变革之路
在如今数据驱动的时代,高效的分析引擎对企业至关重要。理想汽车作为智能电动汽车的领军企业,面临着海量数据分析的挑战。本文将展开介绍理想汽车 OLAP 引擎从存算一体向云原生架构演进的变革历程,以及在此过程中面临的挑战,以及是…...
Spark,HDFS客户端操作
hadoop客户端环境准备 找到资料包路径下的Windows依赖文件夹,拷贝hadoop-3.1.0到非中文路径(比如d:\hadoop-3.1.0) ① 打开环境变量 ② 在下方系统变量中新建HADOOP_HOME环境变量,值就是保存hadoop的目录。 效果如下: ③ 配置Path…...
QuecPython 的 VScode 环境搭建和使用教程
为方便开发者使用 VSCode 开发 QuecPython,QuecPython 团队特推出了名为 QuecPython 的 VSCode 插件。 插件目前支持的功能有: 固件烧录REPL 命令交互代码补全文件传输文件系统目录树运行指定脚本文件 目前支持所有QUecPython系列模组。 插件安装 点…...
Linux Vim 编辑器的使用
Vim 编辑器的使用 一、安装及介绍二、基础操作三、高级功能四、配置与插件 一、安装及介绍 Vim是一款强大且高度可定制的文本编辑器,相当于 Windows 中的记事本。具备命令、插入、底行等多种模式。它可通过简单的键盘命令实现高效的文本编辑、查找替换、分屏操作等…...
Java 基础-28- 多态 — 多态下的类型转换问题
在 Java 中,多态(Polymorphism)是面向对象编程的核心概念之一。多态允许不同类型的对象通过相同的方法接口进行操作,而实际调用的行为取决于对象的实际类型。虽然多态提供了极大的灵活性,但在多态的使用过程中…...
机器学习中的自监督学习概述与实现过程
概述 机器学习中有四种主要学习方式: 监督式学习 (Supervised Learning):这种学习方式通过使用带有标签的数据集进行训练,目的是使机器能够学习到数据之间的关联性,并能够对新的、未见过的数据做出预测或分类。应用领域包括语音识…...
AI Agent开发大全第十四课-零售智能导购智能体的RAG开发理论部分
开篇 经过前面的一些课程,我们手上已经积累了各种LLM的API调用、向量库的建立和使用、embedding算法的意义和基本使用。 这已经为我们具备了开发一个基本的问答类RAG的开发必需要素了。下面我们会来讲一个基本问答类场景的RAG,零售中的“智能导购”场景。 智能导购 大家先…...
Git相关笔记1 - 本地文件上传远程仓库
Git相关笔记 目录 Git相关笔记Git上传相关文件第一步创建一个仓库:第二步本地创建空文件夹:第三步开始在gitbush上传文件:解决外网网络连接的问题:中文文件的编码问题:参考资料 Git上传相关文件 第一步创建一个仓库&a…...
机器学习算法
目录 行向量与列向量 信息论 Logistic回归 支持向量机SVM 核函数: 决策树 Decision Tree CART决策树 ID3 决策树 C4.5 决策树 决策树的过拟合问题 回归树 ***仅做复习需要,若侵权请及时联系我 行向量与列向量 行向量:是一个横…...
学习记录706@微信小程序+springboot项目 真机测试 WebSocket错误: {errMsg: Invalid HTTP status.}连接不上
我微信小程序springboot项目 真机测试 websocket 总是报错 WebSocket错误: {errMsg: Invalid HTTP status.},总是连接不上,但是开发者工具测试就没有问题。 最后解决方案是编码token,之前是没有编码直接拼接的,原因不详。 consol…...
SSH服务
一、准备 #请说明以下服务对应的端口号或者端口对应的服务 ssh 22 telnet 23 http 80 https 443 ftp 20 21 RDP 3389 mysql 3306 redis 6379 zabbix 10050 10051 elasticsear…...
GitHub上免费学习工具的精选汇总
以下是GitHub上免费学习工具的精选汇总,涵盖编程语言、开发框架、数据科学、面试准备等多个方向,结合工具的功能特点、社区活跃度及适用场景进行分类推荐: 一、编程语言与开发框架 Web Developer Roadmap 简介:为开发者提供全栈学…...
2025.4.1总结
今天看了一部网上很火的记录片《God,my brother》,中文名为《上帝不如我兄弟》,简述的是一个自媒体博主杜克遇到孟加拉一哥(车夫),最终一哥在杜克的帮助下,成功实现阶级跨越,而杜克也因此成为百…...
MySQL日志管理
目录 查询日志 慢查询日志 错误日志 二进制日志 其他功能 查询日志 查询日志用来记录所有查询语句的信息,由于开启此日志会占用大量内存,所以一般不会开启 查看查询日志是否开启 开启查询日志 慢查询日志 用于性能的调优,查看执行速度超…...
vscode中的【粘滞滚动】的基本概念和作用,关闭了以后如何开启
1、粘滞滚动的基本概念和作用 VSCode中的“粘滞”功能主要是指编辑器在滚动时的一种特殊效果,使得编辑器在滚动到某个位置时会“粘”在那里,而不是平滑滚动到底部或顶部。 粘滞滚动的基本概念和作用 粘滞滚动功能可以让用户在滚动时更直观地看到当前…...
我用Axure画了一个富文本编辑器,还带交互
最近尝试用Axure RP复刻了一个富文本编辑器,不仅完整还原了工具栏的各类功能,还通过交互设计实现了接近真实编辑器操作体验。整个设计过程聚焦功能还原与交互流畅性,最终成果令人惊喜。 编辑器采用经典的三区布局:顶部工具栏集成了…...
Mysql之Redo log(Red log of MySQL)
Mysql之Redo log 数据库事务的4个特性之一的持久性是数据库保证数据一致性的关键,mysql为了确保事务在系统崩溃后也能恢复,引入了redo log 重做日志这一机制。 什么是redo log 持久性指的是一旦事务提交数据就要永久的保存到数据库中,不能…...
Spring Cloud ReactorServiceInstanceLoadBalancer 自定义负载均衡
自定义负载均衡类 import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.ObjectProvider; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client…...
汽车诊断开发入门以及OBD检测
一、OBD 概述 定义:OBD 即 On - Board Diagnostics,车载自动诊断系统。它能实时监测车辆各项系统和部件状态,以此帮助诊断故障并预警。设计初衷与发展:最初设计目的是控制汽车尾气排放,确保符合环境标准。随着技术进步…...
高速PCB设计过孔不添乱,乐趣少一半
高速先生成员--姜杰 高速先生最近写了不少介绍高速信号仿真的文章(文章链接汇总,看这篇就够了《聊聊100G信号的仿真》)。雷豹逐一研读后感觉获益匪浅,甚至一度觉得自己强的可怕,不过,在得知即将负责一个11…...
人工智能在医疗领域的前沿应用与挑战
在当今数字化时代,人工智能(AI)技术正以前所未有的速度改变着我们的生活,其中医疗领域无疑是受益最为显著的行业之一。从疾病诊断、治疗方案制定到患者护理,AI的应用不仅提高了医疗服务的效率和质量,还为医…...
怎么实现实时无延迟的体育电竞动画直播
要实现真正的实时无延迟动画直播,需要考虑以下几个关键方面: 一、技术方案选择 1.WebRTC技术 点对点(P2P)传输协议,延迟可低至100-500ms 适用于互动性强的应用场景 开源且被主流浏览器支持 2.低延迟HLS/CMAF 可将延迟控制在1-3秒 兼容…...
VLAN、QinQ、VXLAN的区别
1、技术本质与封装方式 技术OSI层级封装原理标识位长度拓展性VLAN数据链路层L2在以太网帧头插入802.1Q Tag(单层VLAN标签)12位(4094个)有限,仅支持单一网络域内隔离QinQ数据链路层L2在原始VLAN标签外再封装一层802.1Q…...
使用大语言模型进行Python图表可视化
Python使用matplotlib进行可视化一直有2个问题,一是代码繁琐,二是默认模板比较丑。因此发展出seaborn等在matplotlib上二次开发,以更少的代码进行画图的和美化的库,但是这也带来了定制化不足的问题。在大模型时代,这个…...
Mac电脑(M芯片)安装ubuntu22.04
一、下载VMware虚拟机 VMware官网下载VMware Fusion 二、下载ubuntu镜像 M系列的Mac电脑要下载arm架构的镜像 方法一:官网下载 方法二:清华源下载 清华源镜像 点击获取下载链接 选择Ubuntu,下载22.04.5(arm64,Server) 三、创建虚拟机 …...
【linux】管理磁盘——RAID10(含备份)与逻辑卷管理
RAID概念 当今CPU性能每年可提升30%-50%但硬盘仅提升7%硬盘在服务器中需要持续、频繁、大量的I/O操作,故障机率较大,则需要对硬盘进行技术改造,提 升读写性能、可靠性1988年,加利福尼亚大学伯克利分校首次提出并定义了RAID技术概…...
Day3 蓝桥杯省赛冲刺精炼刷题 —— 排序算法与贪心思维
一、0实现插入排序 - 蓝桥云课 算法代码: #include <stdio.h>const int N 10000; // 定义数组的最大大小int arr[N 10], temp[N 10]; // arr为待排序的数组,temp为辅助数组// 合并操作:将两个已经排好序的子数组合并为一个有序数…...
查看iphone手机的使用记录-克魔实战
如何查看 iOS 设备近期的详细使用数据 在日常使用手机时,了解设备的运行状态和各项硬件的使用情况可以帮助分析耗电情况、优化应用使用方式。iOS 设备提供了一些数据记录,能够显示应用的启动和关闭时间、后台运行情况,以及应用在使用过程中调…...
Tcp——客户端服务器
Tcp——客户端服务器 目录 一、基本概念 二、代码 2.1 ser服务器 2.2 cil客户端 一、基本概念 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP/IP模型中,TCP位于IP层之上,应用层之下&#x…...
《HarmonyOS Next开发进阶:打造功能完备的Todo应用华章》
章节 6:日期选择器与日期处理 目标 学习如何使用DatePicker组件。理解日期格式化和日期计算。 内容 日期选择器基础 使用DatePicker组件。处理日期选择事件。 日期格式化 格式化日期为友好的文本。 日期计算 判断日期是否过期或即将到期。 代码示例 Entry Com…...
化学方程式配平 第33次CCF-CSP计算机软件能力认证
很经典的大模拟题目 但是还不算难 大模拟题最需要注意的就是细节 写代码一定要考虑全面 并且要细心多debug 多打断点STL库的熟练使用 istringstream真的处理字符串非常好用 注意解耦合思想 这样改代码debug更加清晰 https://www.acwing.com/problem/content/5724/ #includ…...
数据结构【链表】
链表 1.单链表1.1概念与结构1.1.1结点1.1.2链表的性质1.1.3链表的打印 1.2实现单链表1.3链表的分类 2.双向链表2.1概念与结构2.2实现双链表 3.顺序表与链表的分析 1.单链表 1.1概念与结构 概念:链表是⼀种物理存储结构上非连续、非顺序的存储结构,数据…...
AIP-210 Unicode
编号210原文链接AIP-210: Unicode状态批准创建日期2018-06-28更新日期2018-06-28 API在处理(解释、限制长度、计费)字符串值和字符串编码时,应当保持一致,范围从理解上的歧义(如域“限制为1024个字符”)到…...
WiFi(无线局域网)技术的多种工作模式
WiFi(无线局域网)技术支持多种工作模式,以满足不同的网络需求和应用场景。以下是主要的WiFi工作模式及其详细说明: 1. 基础设施模式(Infrastructure Mode) [无线接入点 (AP)]/ | \ [客户端…...
游戏引擎学习第198天
回顾并为今天的内容设定 今天我们有一些代码需要处理。昨天我们进行了一些调试界面的整合工作,之前我们做了一些临时的、粗糙的操作,将一些东西读进来并放到调试界面中。今天,我们并不打算进行大规模的工作,更多的是对之前的代码…...
git命令简陋版本
git push git pull 临时仓库暂存区 ##############创建提交################ git init #创建git地址 git config --global user.name "***YQ1007" git config --global user.email "***gmail.com" git remote…...
MySQL 进阶 面经级
会用数据库,找大厂工作是远远不够的。 本人2025美团暑期AI面试好几个MySQL场景问题不会答,已脏面评。遂在此整理学习! 文章目录 美团AI面1.数据库分片sharding的概念,它有什么优势和挑战?优势Sharding 挑战 2. 分库分表的常见策…...
JavaScript数组Array的使用:添加、删除、排序、遍历、互转
1、数组的概述 数组是存储于一个连续空间且具有相同数据类型的元素集合。可以把数组看作一张单行表格,该表格的每一个单元格都可以存储一个数据,而且各单元格中存储的数据类型可以不同。这些单元格被称为数组元素,每个数组元素都有一个索引号,通过索引号可以方便地引用数组…...
Vue Transition组件类名+TailwindCSS
#本文教学结合TailwindCSS实现一个Transition动画的例子# 举例代码: <transition enter-active-class"transition-all duration-300 ease-out"enter-from-class"opacity-0 translate-y-[-10px]"enter-to-class"opacity-100 translate-…...
蓝桥杯备赛:动态规划入门
写题的时候我发现:除了输入输出、循环、条件等基本语句一类的题目之外,我就什么都不会了,题目根本写不下去。 需要学:动态规划、哈希表、二分法、贪心算法等基本算法 现在什么都不会,对这些东西也是一点都不会懂&…...
【VSCode SSH 连接远程服务器】:身份验证时,出现 key: invalid format 的问题
从其它电脑上把私钥文件复制后,出现格式错误 很有可能是复制的时候引入了乱码 很有可能是复制的时候引入了乱码 因此直接从其它电脑上把私钥文件复制到新设备上即可!(不直接复制私钥的内容) 亲测有效。...
git和VScode
游戏存档保存的是游戏的进度 git保存的是代码的进度 Vscode和git 要正常的使用git首先要设置姓名和邮箱 要配合gitee(也可以是其他平台,以gitee举例)使用,首先创造一个gitee账号,复制邮箱和用户名 在VScode中找到…...
c语言数据结构——八大排序算法实现
文章目录 八大排序算法排序算法种类选择排序类堆排序算法思路时间复杂度和空间复杂度 选择排序算法思路算法优化时间复杂度和空间复杂度 插入排序类插入排序算法思路时间复杂度和空间复杂度 希尔排序算法思路时间复杂度和空间复杂度 非比较排序类计数排序时间复杂度和空间复杂度…...
Python入门(5):异常
目录 1 异常处理基础概念 1.1 什么是异常? 1.2 异常与错误的区别 2 异常处理基础 2.1 常见内置异常类型 2.2 try-except 基本结构 2.3 捕获多个异常 2.4 抛出异常 2.4.1 使用raise语句 2.4.2 自定义异常类 3 高级异常处理技巧 3.1 不要过度捕…...
OpenCv(五)——边缘检测
目录 边缘检测 一、sobel算子边缘检测 (1)原理 1、X轴方向的边缘检测 2、Y轴方向的边缘检测 (2)sobel算子参数 (3)X轴方向边缘检测代码演示 1、显示圆的图像 2、x方向上的边缘检测…...
论文笔记:Instruction-Tuning Llama-3-8B Excels in City-Scale MobilityPrediction
2024 Sigspatial Hummob Workshop 第2/3名 提出了 Llama-3-8B-Mob——一个基于 Llama-3-8B的指令微调版本,专为长期、多城市人类移动预测而设计。 1 问题定义 2 方法 将轨迹预测问题重构为一个带有指令的问答任务 通过 GPT-3.5 和 4 进行实验,发现虽然…...
基础框架系列分享:一个通用的Excel报表生成管理框架
由于我们系统经常要生成大量的Excel报表(Word,PDF报表也有,另行分享),最初始他们的方案是,设计一个表,和Excel完全对应,然后读表,把数据填进去,这显然是非常不…...
Linux安装Ubuntu24.04系统 并安装配置Nvidia 4090 显卡驱动
目录标题 方式一、离线安装一、检查确认系统的版本首先在终端输入下载注意:注意, 后面带notebook的是笔记本的驱动,不要下载错了点击view点击下载二、安装我选择的是 NVIDIA Proprietary.安装完成之后,再次检查补充步骤三:禁用默认nouveau显卡驱动,后重启系统补充步骤四:…...
Deepdiff的使用实战记录
使用场景:在做数据库迁移 或 底层代码重构优化,用于对比新旧代码的接口层返回数据对比 1.模拟在新改造的接口上新加了字段is_ok,且时间戳字段精度变成毫秒,img字段域名变更,能准确对比。 api_old {"ret":…...
C语言:多线程
多线程概述 定义 多线程是指在一个程序中可以同时运行多个不同的执行路径(线程),这些线程可以并发或并行执行。并发是指多个线程在宏观上同时执行,但在微观上可能是交替执行的;并行则是指多个线程真正地同时执行&…...