数据人的进阶之路:四年数仓实践与成长思考
前言
在数据仓库开发的过程中,常常会遇到很多值得思考的问题,它们不仅关乎技术的深度,也涉及业务理解、个人的成长,甚至是数据行业未来的价值。回顾过去的经历,有很多问题反复出现,甚至成为绕不开的课题,我自己挑选了9个问题,将其分成了四类,重新进行回答。
关于数据建模的终极追问
为什么建模?必须建模吗?
提起建模,大家都会说是为了规范数据存储,提升查询效率,支撑业务分析。但有时也会思考:如果业务需求足够简单,是否真的需要构建复杂的模型?
我的当前答案则是:数仓开发不一定必须建模,但大多数情况下,建模能够提升数据的可维护性、复用性和查询性能。是否需要建模,取决于业务需求、数据复杂度以及数据消费方式。大体的判断分类可以分为:
结论:建模不是目的,而是手段
如果数据需要标准化、优化查询、跨系统整合,那么建模是必要的。
如果数据规模小、变化快、或者是探索性分析,直接查询可能更适合。
怎么证明你建的模型就比别人的好?
既然要比较,必然先有评价标准的。
首先,一个“好”的模型应该具备 高质量(数据可用性)、高性能(查询优化)、高扩展性(支持未来需求)、高复用性(减少重复开发),但如何量化这些指标?是数据查询的速度?业务团队的满意度?还是系统的稳定性?
我自己想到可以从以下几个方面来看:
只有用数据说话,才能真正证明你的数据模型比其他团队的好。
当然,公司也有内部数仓建模规范2.0/3.0,对于建模选择都有明确的说明,可便于大家参考。
必须由数仓来做吗?业务系统不能做吗?
这个问题的本质是:数据处理的边界在哪里?业务系统和数据仓库如何分工?
我分3大点来尝试回答。
1、数据仓库的本质和核心价值
首先,先复习一下关于数据仓库的定义:
数据仓库之父比尔·恩门(Bill Inmon)在1991年出版的“Building the Data Warehouse”(《建立数据仓库》)一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。
所以,数据仓库的核心并非仅仅是存储或OLAP能力,而在于:
数据整合:跨业务系统的数据清洗、标准化、统一建模(如星型/雪花模型)
历史数据存储:长期存储业务系统通常不保留的历史数据(如10年交易记录)
复杂分析支持:优化查询性能应对大规模关联分析、时间序列分析
数据治理:元数据管理、数据血缘、权限控制体系
2、业务系统能否替代数仓
部分场景可以,但存在明显边界:
可行场景:单业务系统的简单报表、实时性要求高的OLAP查询(如PolarDB HTAP能力)
不可替代场景:对于跨多个业务系统、跨时间周期长、大规模的数据查询分析
3、传统数仓 VS 现代数仓的演变
随着存储和计算等新技术的发展,对于原本的数仓开发也带来了一定的改变,具体的比较见下,虽然在某种程度上,双边的界限会存在一定的模糊,但是 两者还是有所不同。
技术演进的影响:
PolarDB等HTAP数据库确实模糊了OLTP/OLAP的硬件层边界
但数仓的核心逻辑(数据整合、建模、治理)仍需通过架构设计实现
未来可能形成“业务系统负责实时分析,数仓负责跨系统深度分析”的互补架构
结论:由上面的3点,数仓 ≠ 业务数据库,只是数据仓库的适用场景不同。对于面向复杂分析的很多数据不应该放在业务数据库里,而应该交给数仓做统一管理、优化查询、支撑决策分析。
数据研发的价值证明体系
需求已经写得那么明确了,你的建模体现在哪里?
在真实的开发场景中,有些时候数据bp比研发人员还要更加的了解数据的全流程以及具体的使用,这种场景下,还有所谓的建模吗?
这个问题的本质是:数据建模的价值在哪里?是否只是简单地“翻译”需求?
如果数据开发只是“翻译”需求,那和直接写 SQL 计算数据没区别。AI不就可以干了么。但真正的建模价值体现在:
(1) 数据整合
• 通过数仓分层(ODS → DWD → DWM → APP),把零散的业务数据整合为统一数据资产。
• 例如:“用户登录、支付、订单”分散在不同系统,数仓建模后可快速计算用户生命周期指标。
(2) 数据标准化
• 例如:在“GMV 计算”中,不同业务线的“GMV”定义可能不同(是否包含退款、税费等)。
• 通过数仓建模,制定统一的GMV口径,所有报表和数据产品使用相同的计算方式。
(3) 提高查询性能
• 例如:一个业务查询需要跨 5 张表进行 Join,查询时间很长。
• 通过建模,将计算结果提前写入宽表(DWM层),查询时只需直接查询宽表,大幅提升性能。
(4) 数据复用
• 例如:多个团队都需要“日活用户数 (DAU)”,如果不建模,每个团队都要重复计算。
• 建模后,所有人都可以直接使用,避免重复开发。
但是,在实际情况中,比如,在之前开发中对于财务数据这种专业性较强的建设,可能会感觉建模的效果没有体现出来。说明可能以下几点没有做好:
只是简单写 SQL,没有建立数据资产。
没有考虑数据复用,导致相同数据多次计算。
没有优化数据结构,查询性能低下。
缺乏业务理解。
所以,即使需求已经很明确,建模仍然是数据开发的核心价值。
它决定了数据的组织方式、计算性能、可复用性,影响整个数据架构的可持续发展。
你的建模是业界通用的吗?
还是你自己制定的?如果是业界通用的,那么你的特色体现在哪里?
这个问题翻译过来是:什么时候用通用模型?什么时候需要自定义模型,以及两者之间如何比较,有可量化的指标吗?
业界的通用建模方法大家都知道,有 Kimball、Inmon、Data Vault 等,那么在实际的开发过程中,如何选择更适合的模型呢?
个人认为是需要根据业务场景、技术栈特性和数据规模进行深度适配,形成通用底座+业务增强的特色模式。
常规上来说,一般的比对指标有以下几种:
但是呢,看起来依旧有点主观,所以,我在想,有没有一种什么方式可以将其量化,抽象为一个计算公式?
查了查,发现想法类似于字节的三维模型,因此,个人认为也可以抽象为「场景复杂度-技术约束-ROI」三维评估模型。(仅为初步想法,并未真实验证)
1、量化评估公式
模型适配度评分 =(业务契合度 × W1) + (技术适配度 × W2) + (经济性指数 × W3);其中:
权重系数(W1+W2+W3=1)可以分阶段进行动态调整,比如:
业务导向型:W1=0.6, W2=0.2, W3=0.2
技术驱动型:W1=0.3, W2=0.5, W3=0.2
成本敏感型:W1=0.4, W2=0.3, W3=0.3
2、参数定义与计算方法
业务契合度 (0-10分)
业务契合度 = (场景覆盖度 + 查询效率增益)/2 + 敏捷性修正值
场景覆盖度 = (当前业务需求匹配数 / 模型支持最大场景数) × 10
例:某模型支持5种促销分析模式,当前需覆盖3种 → 得分6分
查询效率增益 = (基准模型延迟 - 候选模型延迟) / 基准模型延迟 × 10
例:从星型模型(8s)切换到宽表(1.2s) → 得分(8-1.2)/8×10=8.5分
敏捷性修正值:
需求变更频率 ≤1次/月: +0
1次/周: -1
每日变更: -3
技术适配度 (0-10分)
技术适配度 = (工具链匹配度 + 团队能力指数)/2 *可维护性系数
工具链匹配度 = (支持该模型的工具数 / 企业现有工具数) × 5 + (专用优化功能存在性 × 5)
团队能力指数 = (团队成员平均建模经验年限 × 2) ,最高5分
可维护性系数 = 1 - (模型复杂度指数 × 0.1)
复杂度指数 = 表数量 × 0.3 + 关联层级 × 0.7
经济性指数 (0-10分)
经济性指数 = 可接受成本/(开发成本 + 三年运维成本)
可接受成本 = 项目预算
开发成本 = 人力成本(人天×单价) + 资源消耗
运维成本 = (日常维护工时 × 单价) + 存储费用 + 计算费用
3、决策规则
分别计算出模型A和模型B的分数,如果差别不大,可以使用偏向通用模型。如果差异过大,可以使用自定义模型。
怎么证明数据的价值?
辅助决策,有具体的例子吗?
回顾ERP的项目,更多都是财务方向的建设,我们一直在说数据的建设是辅助管理层决策,但是,有没有办法直观的感受到或者量化这个决策的影响度。这个我也没有找到更好的量化方式,也期望得到大佬们的解答。
职业发展的本质思考
除了技术本身,做数据仓库的这几年,也让我不断思考职业发展的问题。
对于职业发展的焦虑?
当一个行业或岗位无法提供新的挑战和成长空间时,很多人会选择寻找新的机会。对于我个人而言,最核心的问题是:对于职业发展的焦虑。
我所在乎的一般有3点
技术成长曲线(新技能突破)
业务贡献度(受认可,工作内容可以影响核心指标)
所在环境提供必要挑战(如团队不断有新的业务)
当感受不到技能成长的时候,会问自己,我的技能还能走多远?新的技术的出现,是不是会导致自己很快被淘汰?当衡量不出来价值的时候,会质疑自己存在的必要性,严重会上升到对于数仓开发的怀疑。
如果让你再做一次,你会怎么做?
如果重来一次,则要关注数据资产化治理,与业务方加强沟通,多多理解业务知识。让数据不仅是业务的支撑,而是成为业务的资产。同时,我会更注重数据治理,保证数据一致性、可复用性、可追溯性,而不是只关注“报表跑得快不快”。
面向未来的生存法则
技术环境变化太快了,按照自己现在的规划路线,还能走多远呢?
AI 时代,数据研发还值钱吗?
这是我最近思考最多的问题之一。AI 的发展让数据的价值进一步凸显,但同时也对数据研发提出了更高的要求。未来的数据工程师,不仅仅是建模、ETL,还需要具备数据治理、数据质量管理、流计算、AI 结合数据分析等能力。
AI 可以加速数据处理,但不能完全取代数据治理和数据决策。数据研发仍然重要,但角色正在进化,未来的数仓开发可能不只是建模,而是构建“智能数据平台”,让数据更好地服务于 AI 和业务。
总结
过去 4 年让我从一个数据开发者成长为一个更懂业务、懂建模、也懂数据价值的人。让我对数据的本质有了更深刻的理解,也让我意识到:数据的核心价值不在于使用了多么高大上的技术,而在于它如何影响决策,为业务带来价值。
欢迎大家对上述问题,展开探讨,留下你的想法,将抽取5位同学,送上“滴滴技术双肩电脑包”!
相关文章:
数据人的进阶之路:四年数仓实践与成长思考
前言 在数据仓库开发的过程中,常常会遇到很多值得思考的问题,它们不仅关乎技术的深度,也涉及业务理解、个人的成长,甚至是数据行业未来的价值。回顾过去的经历,有很多问题反复出现,甚至成为绕不开的课题&am…...
数据库原理及应用mysql版陈业斌实验一
🏝️专栏:Mysql_猫咪-9527的博客-CSDN博客 🌅主页:猫咪-9527-CSDN博客 “欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。” 目录 实验一:数据库与数据表的定义和数据操作 1.实验数据如下 …...
Linux环境变量:深入解析与实用指南
目录 一、环境变量概述 二、环境变量的作用 三、环境变量的类型 3.1系统环境变量 3.2用户环境变量 四、环境变量的操作 4.1查看环境变量 4.2设置环境变量 4.3删除环境变量 五、环境变量的配置文件 六、环境变量的最佳实践 七、总结 环境变量是Linux系统中至关重要的…...
大数据 Spark 技术简介
Apache Spark 是一种快速、通用、可扩展的大数据处理引擎,最初由加州大学伯克利分校开发。它提供了一种高效的数据处理框架,可以处理大规模数据集,并在分布式计算集群上进行并行处理。 Apache Spark 的基本概念包括以下几个要点:…...
Go语言的基础类型
一基础数据类型 一、布尔型(Bool) 定义:表示逻辑真 / 假,仅有两个值:true 和 false内存占用:1 字节使用场景:条件判断、逻辑运算 二、数值型(Numeric) 1. 整数类型&…...
面试复习-基础网络+运维知识
一、TCP/IP模型及每层对应通信协议 1.1第一层-应用层 作用:服务及应用程序 HTTP --- 超文本传输协议--- 获取网页信息---80(TCP 80) HTTPS --- HTTP SSL(安全传输协议)/TLS ---443(TCP 443) …...
大屏设计新纪元:定制视觉盛宴
当城市天际线的巨型LED幕墙与元宇宙中的虚拟场景无缝交织,当博物馆的数字藏品在8K曲面屏上焕发新生,一个属于大屏设计的全新纪元已悄然降临。这场视觉革命不仅重构了信息传播的维度,更将“定制化体验”推向了前所未有的高度——每一寸屏幕都成…...
JavaIO流的使用和修饰器模式(直击心灵版)
系列文章目录 JavaIO流的使用和修饰器模式 文章目录 系列文章目录前言一、字节流: 1.FileInputStream(读取文件)2.FileOutputStream(写入文件) 二、字符流: 1..基础字符流:2.处理流:3.对象处理流:4.转换流: 三、修饰器…...
10-STL、位运算、常用函数库
1-STL vector vector是变长数组 //定义vector vector<int>a;//第一维长233,第二维长度动态变化 vector<int>b[233];//自定义的结构体类型也可以保存在vector中 struct res{...}; vector<rec>c;//函数 a.size();//返回vector的实际长度…...
【Ratis】Ratis Streaming概览
看了Tsz-Wo Nicholas Sze博士的一个关于Ratis的share,在share里提到了raits做的一个性能优化:客户端流。比较感兴趣,特此记录一下。如果想看原始分享的,可以搜关键词:Apache Ratis - A High Performance Raft Library 关于Ratis Stream的pdf介绍,在这个PR的附件里: [Ra…...
Python Seaborn面试题及参考答案
目录 如何用 stripplot () 绘制带随机偏移的分类散点图?如何控制 jitter 参数? swarmplot () 如何避免散点重叠?适用场景与数据量限制是什么? 使用 catplot () 绘制箱线图时,如何通过 kind 参数切换图表类型? 如何通过 hue 参数在分类图中添加第三个维度(如性别)? …...
linux下基本命令和扩展命令(安装和登录命令、文件处理命令、系统管理相关命令、网络操作命令、系统安全相关命令、其他命令)欢迎补充噢
基本命令 ls: 列出目录内容 ls:列出当前目录内容ls -l:以长格式列出(显示详细信息)ls -a:显示隐藏文件ls -lh:以易读格式显示文件大小 pwd: 显示当前工作目录 pwd:显示当前目录的绝对路径 cd:…...
K8S学习之基础四十:K8S配置altermanager发送告警到钉钉群
配置altermanager发送告警到钉钉群 创建钉钉群,设置机器人助手(必须是管理员才能设置),获取webhook webhook: https://oapi.dingtalk.com/robot/send?access_token25bed933a52d69f192347b5be4b2193bc0b257a6d9ae68d81619e3ae3d93f7c6…...
实用工具--OfficeAI 助手 v0.3.20(长期免费,2025-03-18 本地支持WPSWord联动)
软件简介 OfficeAI助手,作为Microsoft Office与WPS的得力智能插件,集文档自动生成、内容精准校对与润色、公式智能推荐等多功能于一体。它凭借强大的数据分析能力,深度融入Office/WPS办公生态,一键简化复杂流程,让办公…...
Android 关于compose的一些坑和理解
** 1.如何在 WindowManager.addView 中使用 Jetpack Compose** 一、引出问题 Android 开发中,很常见的一个场景,通过 WindowManager.addView() 添加一个 View 到屏幕上。Android 最新的视图框架 Jetpack Compose,如何应用进来。这个被添加的…...
ref setState 合成事件
ref & setState & 合成事件 受控组件的概念:数据改变视图的叫受控组件;通过dom操作改变的叫非受控。 语法:给refxxx赋一个值,然后通过this.refs.xxx就可以获取到相应dom元素,通过你这个名字存储的值就是这个do…...
调用feapder作为子程序时setting.py文件不起作用
feaper 官方文档地址: 简介及安装 - feapder官方文档|feapder-document 问题: 在最近的开发中需要调用feapder作为主程序调用的子程序时发现自动入库时无法入库,通过查看日志信息发现连接数据库时被拒绝连接了,但是我的setting.p…...
gralloc1_perform具体在干什么
gralloc1_perform 会在特定场景下通过 ioctl 调用,执行 缓存 (cache) 管理 和 内存映射 操作,确保 CPU 和 GPU 之间的数据一致性。 📌 为什么需要对 cache 进行操作? 在 Android 系统中,CPU 和 GPU 通常共享 DDR 内存…...
【Pandas】pandas Series plot.barh
Pandas2.2 Series Plotting 方法描述Series.plot([kind, ax, figsize, …])用于绘制 Series 对象的数据可视化图表Series.plot.area([x, y, stacked])用于绘制堆叠面积图(Stacked Area Plot)Series.plot.bar([x, y])用于绘制垂直条形图(Ver…...
机器学习之浅层神经网络
文章目录 一、浅层神经网络概述(一)定义(二)常见类型 二、浅层神经网络的前向传播三、浅层神经网络的反向传播四、编写浅层神经网络案例(Python NumPy 实现)代码解释 五、浅层神经网络与深度学习的区别&am…...
透析Vue的nextTick原理
nextTick 是 Vue.js 中的一个核心机制,用于在 下一次 DOM 更新周期后 执行回调函数。它的核心原理是 利用 JavaScript 的事件循环机制(Event Loop),结合微任务(Microtask)或宏任务(Macrotask&am…...
Beans模块之工厂模块注解模块@Qualifier
博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…...
产品更新 | 数字助决胜:华望M-Arch平台实现从体系模型到仿真推演
华望产品更新速递 功能介绍 |M-Arch体系建模软件的核心功能 ◆体系架构建模 ◆逻辑仿真 ◆与多种工具集成 ◆多专业协同建模 产品亮点 |M-Arch软件在体系作战中的作用 ◆全面构建任务和体系架构建模的能力 ◆模型化的装备体系分析方法 ◆提升作战体系架构设计与优化 前…...
IP地址结构体与字符串转换函数详解
IP地址结构体与字符串转换函数详解 在Linux C网络编程中,IP地址的二进制结构体(如struct in_addr)与字符串形式(如"192.168.1.1")之间的转换经常涉及到,与IP地址格式相关的函数包括inet_aton、i…...
debug - 安装.msi时,为所有用户安装程序
文章目录 debug - 安装.msi时,为所有用户安装程序概述笔记试试在目标.msi后面直接加参数的测试 备注备注END debug - 安装.msi时,为所有用户安装程序 概述 为了测试,装了一个test.msi. 安装时,只有安装路径的选择,没…...
基于springboot的社区团购系统(012)
摘 要 本课题是根据用户的需要以及网络的优势建立的一个社区团购系统,来满足用户团购的需求。 本社区团购系统应用Java技术,MYSQL数据库存储数据,基于Spring Boot框架开发。在网站的整个开发过程中,首先对系统进行了需求分析&…...
应用权限组列表
文章目录 使用须知位置相机麦克风通讯录日历运动数据身体传感器图片和视频音乐和音频跨应用关联设备发现和连接剪切板文件夹文件(deprecated) 使用须知 在申请目标权限前,建议开发者先阅读应用权限管控概述-权限组和子权限,了解相关概念,再合…...
4.1、网络安全模型
目录 网络安全体系概述网络安全模型-BLP模型网络安全模型-Biba模型网络安全模型 - 信息流模型信息保障模型能力成熟度模型其它安全模型网络安全原则 网络安全体系概述 网络安全体系是网络安全保证系统的最高层概念抽象,是一个体系,体系一般是一个概念&a…...
前端对接生成式AI接口(类ChatGPT)问题汇总
文章目录 前端实现对话流问题总结流式数据传输问题后台Response Headers问题大量数据分段接收问题多个流时间戳(Time)相同导致被合并的问题 中止对话问题复制问题部署上线问题(Nginx缓冲导致) 前端实现对话流问题总结 流式数据传…...
布隆过滤器(Bloom Filter)详解
布隆过滤器详解 1. 什么是布隆过滤器? 布隆过滤器(Bloom Filter)是一种高效的概率型数据结构,主要用于判断某个元素是否存在于一个集合中。它的特点是: 允许误判:可能会误判元素存在(假阳性&…...
QoS(Quality of Service)服务质量概念
一、什么是QoS? QoS(Quality of Service)即服务质量,在网络业务中可以通过保证传输的带宽、降低传输时延、降低数据丢包率以及时延抖动等措施来提高服务质量。QoS是一套用于管理和提高网络性能的工具和技术,用于流量优…...
CSS实现当鼠标悬停在一个元素上时,另一个元素的样式发生变化的效果
CSS可以实现当鼠标悬停在一个元素上时,另一个元素的样式发生变化的效果。可以通过以下几种方法来实现: 1. 使用兄弟选择器(Adjacent Sibling Selector) 如果两个元素是兄弟关系(即它们有相同的父元素)&am…...
【C++11】左值引用、右值引用、移动语义和完美转发
🦄个人主页:修修修也 🎏所属专栏:C ⚙️操作环境:Visual Studio 2022 目录 📌左值引用和右值引用 🎏左值和左值引用 🎏右值和右值引用 📌左值引用和右值引用比较 🎏左值引用 🎏右值…...
Docker镜像迁移
目录 1.查看镜像当前配置 2.镜像迁移 1. 停止 Docker Desktop 2. 关闭 WSL 实例(若基于 WSL 2) 4. 导出原镜像数据 5.注销原实例 6. 导入数据到新路径 7. 设置 Docker Desktop 使用新路径(可选) 8. 启动 Docker Desktop …...
Compose 实践与探索十五 —— 自定义触摸
1、自定义触摸与一维滑动监测 之前我们在讲 Modifier 时讲过如下与手势检测相关的 Modifier: Modifier.clickable { } Modifier.combinedClickable { } Modifier.pointerInput {detectTapGestures { } }这里对以上内容就不再赘述了,直接去讲解更复杂的…...
第P8周:YOLOv5-C3模块实现
🍨 本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 1. 模块组成 C3 模块由 卷积层(Convolutional layers)、激活函数(Activation functions) 和 残差连接&#…...
知识蒸馏:让大模型“瘦身“而不失智慧的魔术
引言:当AI模型需要"减肥" 在人工智能领域,一个有趣的悖论正在上演:大模型的参数规模每年以10倍速度增长,而移动设备的算力却始终受限。GPT-4的1750亿参数需要价值500万美元的GPU集群运行,但现实中的智能设备…...
`docker commit`和`docker tag`
1.docker commit docker commit是一个 Docker 命令,用于将一个正在运行的容器(Container)的状态提交为一个新的镜像(Image)。这类似于在版本控制系统中提交更改。 作用 • 当你对一个容器进行了修改(例如安…...
构建下一代AI Agent:自动化开发与行业落地全解析
1. 下一代AI Agent:概念与核心能力 核心能力描述技术支撑应用价值自主性独立规划与执行任务,无需持续人工干预决策树、强化学习、目标导向规划减少人工干预,提高任务执行效率决策能力评估多种方案并选择最优解决方案贝叶斯决策、多目标优化、…...
项目篇:模拟实现高并发内存池(2)
1.整体框架的设计 首先我们要来大概的梳理一下我们的高并发内存池的整体框架设计 在现代很多开发环境其实都是多核多线程,在申请内存的情况下,就必然会存在激烈的锁竞争问题。如果我们需要要实现内存池,必须要考虑以下几方面的问题。 1.性…...
PostgreSQL用SQL实现俄罗斯方块
📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…...
强大的AI网站推荐(第二集)—— V0.dev
网站:V0.dev 号称:前端开发神器,专为开发人员和设计师设计,能够使用 AI 生成 React 代码 博主评价:生成的UI效果太强大了,适合需要快速创建UI原型的设计师和开发者 推荐指数:🌟&…...
田间机器人幼苗视觉检测与护苗施肥装置研究(大纲)
田间机器人幼苗视觉检测与护苗施肥装置研究 基于多光谱视觉与精准施肥的农业机器人系统设计 第一章 绪论 1.1 研究背景与意义 农业智能化需求: 传统幼苗检测依赖人工,效率低且易遗漏弱苗/病苗施肥不精准导致资源浪费和环境污染 技术挑战:…...
vLLM 同时部署多个模型及调用
目录 一、单例加载多模型 (一) 原生多模型支持(vLLM ≥0.3.0) (二) 针对 vLLM 单实例部署多模型时 只有最后一个模型生效 的问题,结合实际测试和源码分析,以下是具体原因和解决方…...
LeetCode 2680.最大或值:位运算
【LetMeFly】2680.最大或值:位运算 力扣题目链接:https://leetcode.cn/problems/maximum-or/ 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 k 。每一次操作中,你可以选择一个数并将它乘 2 。 你最多可以进行 k 次操作&#…...
Python——MySQL数据库编程
MySQL 是现在最流行的关系型数据库管理系统,在 WEB 开发中,MySQL 是最好的 RDBMS 应用软件之一。接下来,让我们快速掌握 python 使用 MySQL 的相关知识,并轻松使用 MySQL 数据库。 第1关:python数据库编程之创建数据库…...
AI 如何重塑数据湖的未来
在生成式 AI 与大模型技术飞速发展的今天,数据湖技术正迎来前所未有的挑战与机遇。海量非结构化数据的存储与处理、实时性与计算效率的平衡、高效存储的需求,已成为数据平台的核心难题。如何突破传统架构的局限,构建支持 AI 驱动的高效数据湖…...
C++ - 从零实现Json-Rpc框架-2(服务端模块 客户端模块 框架设计)
项⽬设计 本质上来讲,我们要实现的rpc(远端调⽤)思想上并不复杂,甚⾄可以说是简单,其实就是客⼾端想要完成某个任务的处理,但是这个处理的过程并不⾃⼰来完成,⽽是,将请求发送到服务…...
课程5. 迁移学习
课程5. 迁移学习 卷积神经网络架构ImageNet神经网络架构实践从 torchvision 加载模型在一个图像上测试预先训练的网络 迁移学习网络训练冻结层实践准备数据替换网络的最后一层冻结层网络训练获取测试样本的质量指标 课程计划: 流行的神经网络架构迁移学习 卷积神经…...
SATA(Serial Advanced Technology Attachment)详解
一、SATA的定义与核心特性 SATA(串行高级技术附件)是一种 用于连接存储设备(如硬盘、固态硬盘、光驱)的高速串行接口标准,取代了早期的PATA(并行ATA)。其核心特性包括: 高速传输&am…...