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

news2025/1/17 8:16:28

        本文包含:

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

目录

第一部分:需求分析

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.coloradmin.cn/o/2277930.html

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

相关文章

【机器学习】制造业转型:机器学习如何推动工业 4.0 的深度发展

我的个人主页 我的领域:人工智能篇,希望能帮助到大家!!!👍点赞 收藏❤ 引言 在当今科技飞速发展的时代,制造业正经历着前所未有的变革,工业4.0的浪潮席卷而来。工业4.0旨在通过将…

MPLS原理及配置

赶时间可以只看实验部分 由来:90年代中期,互联网流量的快速增长。传统IP报文依赖路由器查询路由表转发,但由于硬件技术存在限制导致转发性能低,查表转发成为了网络数据转发的瓶颈。 因此,旨在提高路由器转发速度的MPL…

小程序如何引入腾讯位置服务

小程序如何引入腾讯位置服务 1.添加服务 登录 微信公众平台 注意:小程序要企业版的 第三方服务 -> 服务 -> 开发者资源 -> 开通腾讯位置服务 在设置 -> 第三方设置 中可以看到开通的服务,如果没有就在插件管理中添加插件 2.腾讯位置服务…

【spring mvc】文件上传、下载

文件上传,存储至本地目录中 一、代码1、工具类(敏感后缀过滤)2、文件上传,存储至本地3、文件下载 二、效果演示1、上传1.1、postMan 请求1.2、上传效果 2、下载2.1、下载效果 一、代码 1、工具类(敏感后缀过滤&#x…

C语言预处理艺术:编译前的魔法之旅

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文一、预处理的作用与流程&#xf…

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

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

Linux(Centos7)安装Mysql/Redis/MinIO

安装Mysql 安装Redis 搜索Redis最先版本所在的在线安装yum库 查看以上两个组件是否是开机自启 安装MinIO 开源的对象存储服务,存储非结构化数据,兼容亚马逊S3协议。 minio --help #查询命令帮助minio --server --help #查询--server帮助minio serve…

Python从0到100(八十三):神经网络-使用残差网络RESNET识别手写数字

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能…

【漏洞分析】DDOS攻防分析

0x00 UDP攻击实例 2013年12月30日,网游界发生了一起“追杀”事件。事件的主角是PhantmL0rd(这名字一看就是个玩家)和黑客组织DERP Trolling。 PhantomL0rd,人称“鬼王”,本名James Varga,某专业游戏小组的…

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

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

下载文件,浏览器阻止不安全下载

背景: 在项目开发中,遇到需要下载文件的情况,文件类型可能是图片、excell表、pdf、zip等文件类型,但浏览器会阻止不安全的下载链接。 效果展示: 下载文件的两种方式: 一、根据接口的相对url,拼…

如何在谷歌浏览器中设置自定义安全警告

随着网络环境的日益复杂,浏览器的安全问题也愈发引人关注。谷歌浏览器作为一款广泛使用的浏览器,其自定义安全警告功能为用户提供了更加个性化和安全的浏览体验。本文将详细介绍如何在谷歌浏览器中设置自定义安全警告,帮助用户更好地保护自己…

AI 编程工具—Cursor进阶使用 阅读开源项目

AI 编程工具—Cursor进阶使用 阅读开源项目 首先我们打开一个最近很火的项目browser-use ,直接从github 上克隆即可 索引整个代码库 这里我们使用@Codebase 这个选项会索引这个代码库,然后我们再选上这个项目的README.md 文件开始提问 @Codebase @README.md 这个项目是用…

细说STM32F407单片机窗口看门狗WWDG的原理及使用方法

目录 一、窗口看门狗的工作原理 1、递减计数器 2、窗口值和比较器 3、看门狗的启动 4、提前唤醒中断 二、窗口看门狗的HAL驱动程序 1、窗口看门狗初始化 2.窗口看门狗刷新 3.EWI中断及其处理 三、不开启EWI的WWDG示例 1、示例功能 2、项目设置 (1&…

【Rust自学】12.6. 使用TDD(测试驱动开发)开发库功能

12.6.0. 写在正文之前 第12章要做一个实例的项目——一个命令行程序。这个程序是一个grep(Global Regular Expression Print),是一个全局正则搜索和输出的工具。它的功能是在指定的文件中搜索出指定的文字。 这个项目分为这么几步: 接收命令行参数读取…

利用rsync备份全网服务器数据

一、项目描述 某公司里有一台Web服务器,里面的数据很重要,但是如果硬盘坏了数据就会丢失,现在领导要求把数据做备份,这样Web服务器数据丢失在可以进行恢复,要求如下: 1、备份要求 每天晚上00点整在Web服…

Go基础之环境搭建

文章目录 1 Go 1.1 简介 1.1.1 定义1.1.2 特点用途 1.2 环境配置 1.2.1 下载安装1.2.2 环境配置 1.2.2.1 添加环境变量1.2.2.2 各个环境变量理解 1.2.3 验证环境变量 1.3 包管理工具 Go Modules 1.3.1 开启使用1.3.2 添加依赖包1.3.3 配置国内包源 1.3.3.1 通过 go env 配置1.…

Go Ebiten小游戏开发:贪吃蛇

贪吃蛇是一款经典的小游戏,玩法简单却充满乐趣。本文将介绍如何使用 Go 语言和 Ebiten 游戏引擎开发一个简单的贪吃蛇游戏。通过这个项目,你可以学习到游戏开发的基本流程、Ebiten 的使用方法以及如何用 Go 实现游戏逻辑。 项目简介 贪吃蛇的核心玩法是…

如何优化Elasticsearch大文档查询?

记录一次业务复杂场景下DSL优化的过程 背景 B端商城业务有一个场景就是客户可见的产品列表是需要N多闸口及各种其它逻辑组合过滤的,各种闸口数据及产品数据都是存储在ES的(有的是独立索引,有的是作为产品属性存储在产品文档上)。 在实际使用的过程中&a…

在VS2022中用C++连接MySQL数据库读取数据库乱码问题

1.正确安装mysql 安装之后的配置文件 2.在VS2022中进行相关配置 (1)右键项目,打开属性 注意是右键项目,不是.cpp文件 (2)配置属性-> VC目录 -> 包含目录 ->添加头文件路径(如图&am…