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

        本文包含:

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

目录

第一部分:需求分析

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年有望),数据仓库的能力将更加丰富,为企业的数字化转型提供更强大的动力。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++指南】类和对象(八):匿名对象

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C指南》 期待您的关注 引言 在C编程中,匿名对象是一种特殊的对象,它在创建时没有被命名。 这种对象通常用…

编译pytorch——cuda-toolkit-nvcc

链接 https://blog.csdn.net/wjinjie/article/details/108997692https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#switching-between-driver-module-flavorshttps://forums.developer.nvidia.com/t/can-not-load-nvidia-drivers-on-ubuntu-22-10/239750https://…

智汇云舟参编《城市轨道交通安全防范系统技术要求》国标正式发布

近日,根据国家标准化管理委员会官网,全国标准信息公共服务平台发布的公告,国家标准《城市轨道交通安全防范系统技术要求》(GB/T 26718-2024)已由全国城市轨道交通标准化技术委员会上报国家标准化管理委员会&#xff0c…

Unity解决滑动条的value值的滑动条消失问题

在这里我们看到原本的value的滑动条消失了 解决办法 把编辑器的边框往外面拉一下就可以了(之前遇到这个问题还重启了几次unity没想到居然是这个问题)

HarmonyOS应用开发者初级认证最新版– 2025/1/13号题库新版

1.欢迎各位读者,本文档来自鸿蒙开发学员亲测,最新版。(考试时直接Ctrlf进行搜索,一定要认真比对答案,有的答案相似度很高)!!!!!! 欢迎…

kubernetes v1.29.XX版本HPA、KPA、VPA并压力测试

序言: 在大型电商、购物、直播活动期间,对于火爆流量的激增,如何保障业务稳定并且做到资源不浪费,自动回收。 场景:kubernetes 原生容器化承载业务流量(非云环境) 方案:kubernetes自…

HarmonyOS NEXT应用开发边学边玩系列:从零实现一影视APP (五、电影详情页的设计实现)

在上一篇文章中,完成了电影列表页的开发。接下来,将进入电影详情页的设计实现阶段。这个页面将展示电影的详细信息,包括电影海报、评分、简介以及相关影人等。将使用 HarmonyOS 提供的常用组件,并结合第三方库 nutpi/axios 来实现…

Vulnhub DC-8靶机攻击实战(一)

导语   Vulnhub DC-8靶机教程来了,好久没有更新打靶的教程了,这次我们在来更新一期关于Vulnhub DC-8的打靶训练,如下所示。 安装并且启动靶机 安装并且启动靶机,如下所示。 开始信息采集 进入到Kali中,通过如下的命令来查找到靶机的IP地址。 arp-scan -l根据上面的结…

神经网络基础-正则化方法

文章目录 1. 什么是正则化2. 正则化方法2.1 Dropout正则化2.2 批量归一化(BN层) 学习目标: 知道正则化的作用掌握随机失活 DropOut 策略知道 BN 层的作用 1. 什么是正则化 在设计机器学习算法时希望在新样本上的泛化能力强。许多机器学习算法都采用相关的策略来减小…

【Linux】12.Linux进程概念(1)

文章目录 1. 冯诺依曼体系结构2. 操作系统(Operator System)概念设计OS的目的胆小的操作系统定位如何理解 "管理"总结 3. 进程基本概念task_struct-PCB的一种task_ struct内容分类组织进程查看进程通过系统调用获取进程标示符通过系统调用创建进程-fork初识 1. 冯诺依…

【Linux网络编程】序列化与反序列化

目录 一,序列化和反序列化的说明 二,Jsoncpp库的介绍 三,Jsoncpp库的使用 3-1,Json::Value类 3-2,Json::StreamWriter类 3-3,Json::CharReader类 一,序列化和反序列化的说明 序列化与反…

Oracle报错ORA-01078、LRM-00109

虚拟机异常关机后,rac数据库备机无法启动数据库,报错如下 解决方法: 找到如下路径文件 执行: cp init.ora.016202516818 /u01/app/oracle/product/19.3.0/db/dbs/ mv init.ora.016202516818 initplm2.ora 再次进入命令行sqlpl…

STM32-keil安装时遇到的一些问题以及解决方案

前言: 本人项目需要使用到STM32,故需配置keil 5,在配置时遇到了以下问题,并找到相应的解决方案,希望能够为遇到相同问题的道友提供一些解决思路 1、提示缺少(missing)version 5编译器 step1:找…

【Hive】海量数据存储利器之Hive库原理初探

文章目录 一、背景二、数据仓库2.1 数据仓库概念2.2 数据仓库分层架构2.2.1 数仓分层思想和标准2.2.2 阿里巴巴数仓3层架构2.2.3 ETL和ELT2.2.4 为什么要分层 2.3 数据仓库特征2.3.1 面向主题性2.3.2 集成性2.3.3 非易失性2.3.4 时变性 三、hive库3.1 hive概述3.2 hive架构3.2.…

mqtt详细介绍及集成到springboot

mqtt详细介绍及集成到springboot 1.mqtt发布/订阅消息参数详细介绍2. mqtt客户端连接参数介绍3. docker-compose搭建mqtt服务端4. springboot集成mqtt实现发布订阅5. 测试注意事项 1.mqtt发布/订阅消息参数详细介绍 1.1. qosQoS0 ,Sender 发送的一条消息&#xff0…

基于springboot的租房网站系统

作者:学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”,支持远程部署调试、运行安装。 项目包含: 完整源码数据库功能演示视频万字文档PPT 项目编码&#xff1…

自动化办公|xlwings简介

xlwings 是一个开源的 Python 库,旨在实现 Python 与 Microsoft Excel 的无缝集成。它允许用户使用 Python 脚本自动化 Excel 操作,读取和写入数据,执行宏,甚至调用 VBA 脚本。这使得数据分析、报告生成和其他与 Excel 相关的任务…

概率函数,累计分布函数

四. 累计分布函数 1. 累计分布函数(CDF, Cumulative Distribution Function) 累计分布函数是用来描述随机变量取值小于或等于某个给定值的概率。它适用于离散型和连续型随机变量,并且能够通过概率质量函数(PMF)或概率…

Flutter项目适配鸿蒙

Flutter项目适配鸿蒙 前言Flutter项目适配鸿蒙新工程直接支持ohos构建新项目编译运行 适配已有的Flutter项目 前言 目前市面上使用Flutter技术站的app不在少数,对于Flutter的项目,可能更多的是想直接兼容Harmonyos,而不是直接在重新开发一个…

链家房价数据爬虫和机器学习数据可视化预测

完整源码项目包获取→点击文章末尾名片!