数仓建模(三)建模三步走:需求分析、模型设计与数据加载

        本文包含:

  • 数据仓库的背景与重要性
  • 数据仓库建模的核心目标
  • 本文结构概览:需求分析、模型设计与数据加载

目录

第一部分:需求分析

1.1 需求分析的定义与目标

1.2 需求分析的步骤

1.2.1 业务需求收集

1.2.2 技术需求分析

1.2.3 成果输出

1.3 常见问题与解决策略

1.4 需求分析案例

第二部分:模型设计

2.1 数据仓库模型的分类与选择

2.1.1 数据仓库模型分类

2.1.2 模型选择的原则

2.2 维度建模的核心概念

2.2.1 事实表

2.2.2 维度表

2.2.3 粒度选择的重要性

2.3 模型设计步骤

2.3.1 概念模型设计

2.3.2 逻辑模型设计

2.3.3 物理模型设计

2.4 常见模型设计问题与优化

2.5 实战案例

第三部分:数据加载

3.1 数据加载的定义与核心任务

3.2 数据加载的流程

3.2.1 数据抽取

3.2.2 数据转换

3.2.3 数据加载

3.3 数据加载的性能优化

3.3.1 优化策略

3.3.2 缓存与索引

3.3.3 异常处理机制

3.4 数据加载的工具与框架

3.4.1 开源工具

3.4.2 数据集成平台

3.5 实战案例

第四部分:综合案例与项目总结

4.1 综合案例:从零到一构建一个数据仓库

4.1.1 项目背景

4.1.2 数据仓库建设流程

1. 需求分析

2. 模型设计

3. 数据加载

4. 系统测试与优化

4.1.3 项目结果

4.2 成功的数据仓库建模经验总结

4.2.1 需求分析的关键

4.2.2 模型设计的原则

4.2.3 数据加载的优化策略

4.2.4 团队协作与管理

结论


建模落地步骤

第一部分:需求分析

1.1 需求分析的定义与目标

在数据仓库建模中,需求分析是首要环节,其目标是明确数据仓库的建设目的,确保最终设计的模型能够满足业务需求和技术需求。

  • 需求分析的定义:通过与业务和技术团队的充分沟通,深入理解业务背景、数据来源及使用场景,并形成清晰的需求文档。
  • 目标
    • 确定数据仓库需要支持的业务指标和分析场景。
    • 梳理各数据源的结构和质量。
    • 识别系统需要的性能和扩展能力。
1.2 需求分析的步骤
1.2.1 业务需求收集
  • 明确业务目标
    例如,在零售行业中,业务需求可能包括客户购买行为分析、销售趋势预测、库存管理优化等。
  • 识别关键指标(KPI)
    通过访谈业务部门,了解他们日常关注的指标,例如销售额、转化率、库存周转率等。
  • 典型分析问题
    • 哪些商品的销售增长最快?
    • 不同地区的销售差异如何?

方法

  • 与业务人员一对一访谈,使用模板问题引导讨论。
  • 组织跨部门的需求研讨会,整合不同团队的视角。
1.2.2 技术需求分析
  • 数据源的类型
    识别企业内部的系统(如CRM、ERP、POS)和外部数据(如第三方统计数据)。
  • 数据质量与可用性评估
    确定数据源是否有缺失、重复或不一致的问题。
  • 性能需求
    例如,日交易记录超过1000万笔的数据仓库,需要支持实时查询和并发分析。

方法

  • 制定数据质量检查清单。
  • 使用数据分析工具(如SQL或Python)进行探索性数据分析(EDA)。
1.2.3 成果输出
  • 需求文档:包括业务需求、技术需求、数据源清单、期望输出格式等。
  • 优先级排序:列出核心需求与次要需求,明确实现顺序。
1.3 常见问题与解决策略
  1. 需求模糊不清
    原因:业务方对数据仓库缺乏了解。
    解决:引入简单的原型系统,帮助业务方快速验证需求。

  2. 需求变更频繁
    原因:市场动态变化或业务策略调整。
    解决:采用敏捷开发方法,分阶段交付。

  3. 跨部门需求冲突
    原因:不同团队对指标定义或优先级存在分歧。
    解决:设立需求评审委员会,确保决策权统一。

1.4 需求分析案例

案例:某零售企业的需求分析

  • 背景:该企业希望通过数据仓库支持销售分析和库存管理。
  • 业务需求
    • 识别畅销品和滞销品。
    • 对比不同地区的销售业绩。
  • 技术需求
    • 日销售数据约500万条,需支持实时查询。
    • 数据来源包括POS系统、会员系统和供应链管理系统。
  • 分析过程
    1. 与销售团队沟通,明确KPI为销售额、毛利率、退货率等。
    2. 检查数据质量,发现POS系统的数据存在部分缺失。
    3. 提出解决方案:在数据加载过程中增加异常值填补与校验逻辑。
  • 输出成果
    • 确定需求文档,列出关键指标和分析场景。
    • 为后续模型设计提供清晰方向。

第二部分:模型设计

2.1 数据仓库模型的分类与选择
2.1.1 数据仓库模型分类
  1. 星型模型

    • 结构特点:以事实表为中心,多个维度表围绕其设计,维度表中不拆分子表。
    • 优点
      • 查询逻辑简单直观,易于理解。
      • 高效支持多维分析,如OLAP查询。
    • 缺点
      • 数据冗余度较高,维度表可能包含重复信息。
  2. 雪花模型

    • 结构特点:对维度表进行进一步规范化拆分,将重复信息分散到多个表中。
    • 优点
      • 数据冗余度低,存储效率高。
    • 缺点
      • 查询复杂度增加,性能下降。
  3. 数据湖与数据仓库结合

    • 背景:现代企业往往需要处理多样化、非结构化的数据。
    • 特点
      • 数据湖存储原始数据,提供灵活性;
      • 数据仓库对经过清洗和转换的数据进行建模,优化性能。
    • 场景:适用于需要同时支持实时流处理和离线分析的场景。
2.1.2 模型选择的原则
  • 业务需求驱动:模型设计需围绕业务场景展开。例如,财务分析偏向使用星型模型,科学研究更倾向于雪花模型。
  • 性能与存储平衡:权衡查询效率和存储空间,例如大规模日志分析场景可能需要宽表设计。
  • 系统扩展性:为未来的数据增长预留空间,如增加新的维度或事实字段。

2.2 维度建模的核心概念
2.2.1 事实表
  • 作用:记录业务活动的数值型数据,通常包含度量指标(如销售额)和外键(关联维度表)。

  • 分类

    1. 事务型事实表:记录单一业务事件,适用于实时交易场景,例如订单明细表。
    2. 快照型事实表:记录某一时刻的整体状态,例如每月库存快照表。
    3. 累积型事实表:记录事件从开始到结束的状态变化,例如项目生命周期表。
  • 设计原则

    • 粒度明确:粒度决定数据表的记录细节水平,影响查询性能与数据量。
      • 示例:电商订单数据的粒度可以是“单个订单”或“单个商品”。
    • 事实列设计:确保每个度量字段都可以有效计算,如总金额、数量等。
2.2.2 维度表
  • 作用:存储描述性信息,为事实表中的数据提供上下文支持。
  • 设计技巧
    • 定义主键(通常为业务主键,如客户ID)。
    • 添加分组字段(如“季度”、“类别”)以支持聚合查询。
    • 使用层次结构(如“国家 > 省 > 市”)优化分析。
2.2.3 粒度选择的重要性
  • 定义:事实表中一条记录的详细程度。
  • 影响:粒度越细,数据量越大,分析的灵活性越高,但性能需求也更高。
  • 案例:零售商的销售分析
    • 粒度:按“交易ID”存储 → 支持订单级分析;按“商品ID”存储 → 支持商品级分析。

2.3 模型设计步骤
2.3.1 概念模型设计
  • 目的:定义高层次的业务实体及其关系。
  • 方法:通过业务需求分析,识别核心对象和关键关系。
  • 示例
    • 实体:客户、产品、订单。
    • 关系:客户与订单之间为“一对多”,订单与产品之间为“多对多”。
2.3.2 逻辑模型设计
  • 定义维度表与事实表
    • 确定主键、外键。
    • 设计字段类型,如数值型用于事实列,字符型用于维度列。
  • 字段设计
    • 添加衍生字段(如“商品类别”、“客户年龄段”)简化分析。
    • 提供多语言支持(如“产品名称”和“产品名称_英文”)。
2.3.3 物理模型设计
  • 数据库技术选择:如MySQL适用于中小型项目,Hive适合大数据量分析。
  • 存储优化
    • 使用分区策略:按时间、区域等分区提升查询性能。
    • 引入分桶:将数据分散到多个文件中以优化Join操作。
  • 索引设计
    • 单字段索引:提高单列查询速度。
    • 复合索引:支持复杂查询场景,如联合过滤条件。

2.4 常见模型设计问题与优化
  1. 事实表过大
    • 问题:大规模事实表查询慢,占用存储多。
    • 解决:按时间、区域或业务场景进行拆分,如按月分表。
  2. 维度表冗余
    • 问题:维度表中重复字段增多,影响存储和一致性。
    • 解决:使用雪花模型或规范化设计。
  3. 数据一致性问题
    • 问题:来自多个系统的数据口径不同,影响分析结果。
    • 解决:在ETL阶段加入清洗规则,确保统一标准。

2.5 实战案例

案例:基于电商平台的模型设计

  1. 背景:某电商平台希望建立数据仓库支持用户行为分析和销售预测。
  2. 需求分析
    • 业务需求:PV、UV、跳出率、销售额分析;按品类统计商品销量。
    • 技术需求:日新增订单数据量500万条,支持10秒内响应查询。
  3. 模型设计
    • 概念模型:核心实体包括用户、订单、商品。
    • 逻辑模型
      • 事实表
        • 订单事实表(订单ID、销售额、用户ID、时间ID、商品ID)
      • 维度表
        • 用户维度表:用户基本信息,如性别、注册时间、会员等级。
        • 商品维度表:商品信息,如类别、品牌、库存状态。
    • 物理模型
      • 基于Hive设计分区表,分区字段为订单日期。
      • 引入分桶优化用户行为查询,分桶字段为用户ID。
  4. 优化措施
    • 宽表设计:将多个维度表的信息预先关联,提升高频查询效率。
    • 增量更新:每日加载增量数据,减少全量更新的性能开销。

第三部分:数据加载

3.1 数据加载的定义与核心任务

数据加载是数据仓库建模中的关键环节,它将原始数据从数据源中抽取、清洗、转换后加载到目标系统(如数据仓库或数据湖)中,为后续分析提供支撑。

  • 核心任务

    1. 数据抽取(Extract):从不同系统中获取原始数据。
    2. 数据转换(Transform):对数据进行清洗、聚合和标准化处理。
    3. 数据加载(Load):将处理后的数据写入数据仓库或数据库。
  • 目标

    • 确保数据的完整性、一致性和准确性。
    • 提高数据加载的性能和可靠性。

3.2 数据加载的流程
3.2.1 数据抽取
  • 数据源类型
    • 关系型数据库(如MySQL、PostgreSQL)
    • 非结构化数据(如JSON、日志文件)
    • 流式数据源(如Kafka、Flume)
  • 抽取方式
    • 全量抽取:适用于初始加载,完整拉取数据。
    • 增量抽取:只提取新增或更新的数据,减少数据量。
  • 工具与技术
    • Sqoop:从关系型数据库导入数据到HDFS或Hive。
    • Kafka:实时数据流的抽取与传输。
3.2.2 数据转换
  • 数据清洗
    • 去除重复数据。
    • 填补缺失值(如使用均值、中位数或默认值)。
    • 标准化字段格式(如日期格式、货币单位)。
  • 数据聚合
    • 例如,按天聚合用户访问日志,生成PV、UV等统计指标。
  • 衍生字段生成
    • 根据业务需求添加计算字段,如“销售额 = 单价 × 数量”。
3.2.3 数据加载
  • 加载方式
    • 批量加载:适用于历史数据或低频更新场景。
    • 实时加载:适用于实时分析需求,如监控系统。
  • 数据验证与监控
    • 验证数据完整性(记录数是否一致)。
    • 监控加载任务状态,及时发现失败或延迟。

3.3 数据加载的性能优化
3.3.1 优化策略
  1. 分区与分桶
    • 分区:按时间或区域对数据进行逻辑分割,减少查询范围。
    • 分桶:将数据物理分块以优化Join操作。
  2. 并行加载
    • 利用多线程或分布式架构并行处理多个数据源或分片。
  3. 批量插入
    • 通过批量插入减少单条插入操作的网络和IO开销。
  4. 增量更新
    • 通过记录变更数据(CDC),避免全量更新。
3.3.2 缓存与索引
  • 使用内存缓存(如Redis)加速加载过程。
  • 在目标系统中提前创建索引以提升写入后查询性能。
3.3.3 异常处理机制
  • 加入容错机制:如数据加载失败时,自动重试或回滚。
  • 生成日志记录:便于排查问题。

3.4 数据加载的工具与框架
3.4.1 开源工具
  1. Apache NiFi
    • 支持数据流的可视化设计和实时监控。
    • 适用于跨平台、多格式数据的集成与传输。
  2. Apache Airflow
    • 提供强大的调度和工作流管理功能,适合批量加载任务。
  3. Kafka
    • 支持高吞吐量的流式数据加载,适用于实时场景。
3.4.2 数据集成平台
  • Informatica:企业级数据集成解决方案,支持复杂ETL任务。
  • Talend:开源工具,适合中小型数据仓库构建。

3.5 实战案例

案例:某金融企业的数据加载实践

  1. 背景

    • 该企业需要构建一个数据仓库支持客户行为分析和风险管理。
    • 数据源包括交易记录系统、用户行为日志和第三方信用评级数据。
  2. 解决方案

    • 数据抽取
      • 使用Kafka实时抽取交易记录数据。
      • 使用Sqoop批量导入用户行为日志到HDFS。
    • 数据转换
      • 对交易记录进行清洗,去除重复条目并填充缺失字段。
      • 衍生信用评分字段,用于风险评级分析。
    • 数据加载
      • 交易数据采用实时加载,每分钟刷新一次。
      • 行为日志采用每日批量加载,更新至Hive数据仓库。
  3. 优化措施

    • 增量更新策略:通过事务时间戳标记增量数据,避免重复加载。
    • 使用分区表:按月分区交易数据,提升查询性能。
    • 监控与告警:通过Airflow监控加载任务状态,确保任务按时完成。
  4. 效果

    • 数据加载性能提升30%,每日数据更新时效性缩短至5分钟内。
    • 支持实时查询和离线分析,为决策提供及时支持。

第四部分:综合案例与项目总结

4.1 综合案例:从零到一构建一个数据仓库
4.1.1 项目背景

某连锁零售企业计划建设数据仓库,目标是支持以下业务需求:

  • 销售分析:按门店、商品类别、时间等维度分析销售额、利润率等关键指标。
  • 库存管理:实时监控库存状态,避免库存过剩或短缺。
  • 客户行为分析:分析客户购买习惯,提供精准营销建议。

技术需求包括:

  • 支持每日1000万条交易记录的导入与查询。
  • 响应时间要求:批量查询 ≤ 10秒,实时数据监控 ≤ 1分钟。
  • 数据来源多样,包括POS系统、CRM系统和第三方供应链数据。

4.1.2 数据仓库建设流程
1. 需求分析
  1. 业务需求:通过与销售、运营和市场团队的沟通,明确关键指标:
    • 日/周/月销售额和利润率。
    • 商品滞销率和补货建议。
    • 不同客户群体的购买偏好。
  2. 技术需求
    • 数据源清单:POS系统、会员系统、供应链管理系统。
    • 性能需求:支持实时监控和历史分析场景。
2. 模型设计
  1. 概念模型:确定核心业务实体和关系:
    • 实体:门店、商品、客户、订单。
    • 关系:客户与订单为“一对多”,订单与商品为“多对多”。
  2. 逻辑模型:设计事实表和维度表:
    • 事实表
      • 销售事实表(销售额、订单量、利润率、时间ID、门店ID、商品ID)。
      • 库存事实表(库存数量、入库时间、商品ID、门店ID)。
    • 维度表
      • 商品维度表:商品类别、品牌、规格等。
      • 时间维度表:日、周、月、季度、年。
      • 门店维度表:地区、门店类型、管理人员等。
      • 客户维度表:性别、年龄段、会员等级等。
  3. 物理模型
    • 使用Hive作为数据仓库,支持大规模数据处理。
    • 按时间分区事实表(如按月分区销售事实表)。
    • 对维度表建立索引(如商品ID索引,提升Join性能)。
3. 数据加载
  1. 数据抽取
    • 使用Kafka实时采集POS系统的订单数据。
    • 使用Sqoop每日批量导入会员数据和供应链数据。
  2. 数据转换
    • 清洗:去重、补齐缺失值(如缺失库存数据用平均值填补)。
    • 衍生:生成商品销量排名和会员购买频率字段。
  3. 数据加载
    • 批量加载:每日更新商品维度和销售事实表。
    • 实时加载:订单数据实时流式写入Kafka,再加载到Hive。
4. 系统测试与优化
  • 测试
    • 测试查询性能,确保核心查询在10秒内完成。
    • 验证数据一致性,确保加载数据与源系统一致。
  • 优化
    • 增量更新:通过记录变更时间戳,仅加载新增或更新数据。
    • 并行加载:分区表加载时采用多线程并行处理。

4.1.3 项目结果
  • 业务效果
    • 销售分析报告生成时间从1小时缩短至5分钟。
    • 实现实时库存监控,库存周转率提升15%。
    • 精准营销活动的ROI提高20%。
  • 技术效果
    • 支持每日数据导入量1亿条,查询响应时间≤10秒。
    • 系统运行稳定,具备良好的扩展性。

4.2 成功的数据仓库建模经验总结
4.2.1 需求分析的关键
  • 与业务部门深度协作:确保模型设计和数据加载完全对齐业务需求。
  • 建立需求优先级:合理规划实现顺序,避免低优先级需求占用资源。
4.2.2 模型设计的原则
  • 关注可扩展性:为未来的业务增长留有扩展空间,如新维度或新事实字段。
  • 平衡性能与存储:通过分区、分桶等技术优化大数据查询性能。
  • 坚持以业务场景为导向:从实际需求出发,避免过度设计或不必要的复杂化。
4.2.3 数据加载的优化策略
  • 自动化与监控:采用工具(如Airflow)调度和监控ETL任务,提升效率并降低出错率。
  • 增量更新:减少全量数据加载的开销,提高加载效率。
  • 实时与批量结合:根据场景选择适合的加载方式,既满足实时监控,也支持历史分析。
4.2.4 团队协作与管理
  • 跨部门协作:建立需求评审机制,减少部门间的冲突。
  • 敏捷开发:分阶段交付系统功能,快速响应需求变更。

结论

        数据仓库建模的成功,离不开需求分析、模型设计和数据加载这三步的紧密结合。通过科学的方法和合理的工具选型,企业能够高效构建一个稳定、可扩展的数据仓库,为数据驱动的决策提供强有力的支持。

        未来,随着实时数据处理技术和数据湖集成方案的发展更进一步(2025年有望),数据仓库的能力将更加丰富,为企业的数字化转型提供更强大的动力。

下节预告:大数据分析的基础结构 星型模型与雪花模型

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序-Docker+Nginx环境配置业务域名验证文件

在实际开发或运维工作中,我们时常需要在 Nginx 部署的服务器上提供一个特定的静态文件,用于域名验证或第三方平台验证。若此时使用 Docker 容器部署了 Nginx,就需要将该验证文件正确地映射(挂载)到容器中,并…

Python Wi-Fi密码测试工具

Python Wi-Fi测试工具 相关资源文件已经打包成EXE文件,可双击直接运行程序,且文章末尾已附上相关源码,以供大家学习交流,博主主页还有更多Python相关程序案例,秉着开源精神的想法,望大家喜欢,点…

usb通过hdc连接鸿蒙next的常用指令

参考官方 注册报名https://www.hiascend.com/developer/activities/details/44de441ef599450596131c8cb52f7f8c/signup?channelCodeS1&recommended496144 hdc-调试命令-调测调优-系统 - 华为HarmonyOS开发者https://developer.huawei.com/consumer/cn/doc/harmonyos-guid…

前端性能-HTTP缓存

前言 开启 HTTP 缓存是提升前端性能的常见手段之一。通过缓存,浏览器可以临时存储资源,在后续请求中直接使用本地副本,从而有效减少 HTTP 请求次数,显著缩短网页加载时间。以下是 HTTP 缓存的几个关键点: 1、减少重复…

【Unity-Game4Automation PRO 插件】

Game4Automation PRO 插件 是一个用于 Unity 引擎 的工业自动化仿真工具,它提供了对工业自动化领域的仿真和虚拟调试支持,特别是在与工业机器人、生产线、PLC 系统的集成方面。该插件旨在将工业自动化的实时仿真与游戏开发的高质量 3D 可视化能力结合起来…

【Linux】--- 进程的等待与替换

进程的等待与替换 一、进程等待1、进程等待的必要性2、获取子进程status3、进程等待的方法(1)wait()函数(2)waitpid函数 4、多进程创建以及等待的代码模型5、非阻塞接口 轮询 二、进程替换1、替换原理2、替…

一个超快低延迟.Net网络通信库:支持TCP, SSL, UDP, HTTP,HTTPS, WebSocket多协议

今天给大家推荐一个性能好、低延迟.Net网络通信库,基本支持所有协议。 01 项目简介 NetCoreServer是一个基于.NET Core的开源项目,一个高性能、跨平台的异步套接字服务器与客户端库。该项目支持多种传输协议,包括TCP、SSL、UDP、HTTP、HTTP…

苍穹外卖08——(涉及接收日期格式数据、ApachePOI导出报表、sql获取top10菜品数据)

营业额统计 service层 在需要处理空值、与数据库交互或使用集合时,Integer 、Double是更好的选择。 // 导入string工具类 import org.apache.commons.lang.StringUtils; Service // 标记该类为Spring的服务组件 Slf4j // 引入日志功能 public class Repor…

数据结构9——二叉搜索树

🥇1.二叉搜索树的概念 二叉搜索树(Binary Search Tree,BST)又称二叉排序树或二叉查找树,其要么是一棵空树,要么具有以下性质: ①:左子树上所有节点的值都小于根节点; ②:右子树上所有节点的值都…

如何使用wireshark 解密TLS-SSL报文

目录 前言 原理 操作 前言 现在网站都是https 或者 很多站点都支持 http2。这些站点为了保证数据的安全都通过TLS/SSL 加密过,用wireshark 并不能很好的去解析报文,我们就需要用wireshark去解密这些报文。我主要讲解下mac 在 chrome 怎么配置的&…

c++ haru生成pdf输出文本实例

haru是一个开源的生成pdf的库,花时间终于编译成功,以下是一个特别简单的写文本的实例: #include "hpdf.h" void CDemoDlg::OnBnClickedOk() { HPDF_Error_Handler error_handler NULL; HPDF_Doc pdf; pdf HPDF_New(…

Redis与MySQL主从复制原理解析

目录 1. 介绍2. Mysql主从复制的工作原理3. Mysql复制的类型3.1 基于语句的复制(Statement-based Replication, SBR)3.2 基于行的复制(Row-based Replication, RBR)3.3 混合复制(Mixed Replication) 4. Red…

一步到位Python Django部署,浅谈Python Django框架

Django是一个使用Python开发的Web应用程序框架,它遵循MVC(Model-View-Controller)设计模式,旨在帮助开发人员更快、更轻松地构建和维护高质量的Web应用程序。Django提供了强大的基础设施和工具,以便于处理复杂的业务逻…

迅为RK3568开发板篇OpenHarmony配置HDF驱动控制LED-新增 topeet子系统-编写 bundle.json文件

bundle.json 文件内容如下所示: 下面是对各个字段的解释: 1. name: "ohos/demos" - 这是组件或项目的名称,这里表示它属于 OHOS(OpenHarmony OS)生态系统下的一个名为"demos"的组件。 2. descri…

STM32 物联网智能家居 (三) 输入子系统

STM32 物联网智能家居 (三) 输入子系统 下面是物联网智能家居的输入子系统,见下图,在输入子系统中会实现按键输入、网络输入、标准输入Scanf,其中的网络输入放入到网络子系统中进行讲解。 一、输入子系统核心功能 STM32 物联网智能家居输入…

Windows 正确配置android adb调试的方法

下载适用于 Windows 的 SDK Platform-Tools https://developer.android.google.cn/tools/releases/platform-tools?hlzh-cn 设置系统变量,路径为platform-tools文件夹的绝对路径 点击Path添加环境变量 %adb%打开终端输入adb shell 这就成功了!

【C#深度学习之路】如何使用C#实现Yolo8/11 Segment 全尺寸模型的训练和推理

【C#深度学习之路】如何使用C#实现Yolo8/11 Segment 全尺寸模型的训练和推理 项目背景项目实现推理过程训练过程 项目展望写在最后项目下载链接 本文为原创文章,若需要转载,请注明出处。 原文地址:https://blog.csdn.net/qq_30270773/article…

线性回归超详解

目录 一、回归问题 vs 分类问题 二、线性回归 1、一句话理解 2、数学推导 2.1 线性函数表示 2.2 损失函数 2.3 梯度下降 2.3.1 什么是梯度 2.3.2 梯度下降目标 2.3.3 过程 2.3.4 迭代公式 3、特征预处理 3.1 为什么要预处理 3.2 数据归一化方法 1)最小…

docker 部署 Kafka 单机和集群

一、准备工作 安装 Docker 确保本机已安装 Docker。可以通过以下命令检查 Docker 是否已安装:docker --version如果未安装,可以访问 Docker 官网下载并安装 Docker Desktop(Windows 和 Mac)或使用包管理器安装(Linux&…

Uniapp开发安卓App,配置第一次打开软件出现的弹窗-隐私政策提示框

这里是直接使用的uniapp官方所提供的“原生隐私政策提示框”,废话不多说,直接上教程! 1.manifest.json—>安卓/IOS启动界面配置—>勾选“使用原生隐私政策提示框”2.勾选后,在你的项目下就会出现一个文件,andro…