华为数据之道-读书笔记
内容简介
关键字
数字化生产
已经成为普遍的商业模式,其本质是以数据为处理对象,以ICT平台为生产工具,以软件为载体,以服务为目的的生产过程。
信息与通信技术平台(Information and Communication Technology Platform,ICT)
数据孤岛
IT系统中的数据语言不统一,不同I系统之间的数据不贯通,同样的数据需要在不同TT系统中重复录入,甚至不同I系统中的同一个数据不一致等。这些问题限制了运营效率的提升和效益的改进,华为迫切需要数字化转型来改变这种状况。
数字化转型(怎么做)
ToB / ToC
数据入湖
数据入湖 是指将数据从各种数据源(如数据库、文件系统、实时流数据等)导入到 数据湖 中的过程。数据湖是一个存储系统,能够以原始格式保存海量结构化、半结构化和非结构化数据,为后续的数据分析、机器学习和数据驱动决策提供支持。
数据消费
数据消费 是指在数据生态系统中,用户或系统通过对数据的访问、分析和处理,从而获取有价值的信息,用于支持决策、优化业务流程或推动创新。它是数据生命周期的重要阶段,通常紧接在数据存储(如数据湖或数据仓库)之后。
数据消费的核心含义
- 数据消费的本质是将存储在数据平台中的原始数据转化为对业务有意义的洞察和价值。
- 数据消费的形式可以多种多样,比如生成报表、构建机器学习模型、驱动实时决策等。
数据消费的常见形式
-
报表与可视化:
- 数据被消费为可视化的报表和图表,用于业务监控和决策支持。
- 工具:Power BI、Tableau、FineBI 等。
- 例子:通过销售数据生成月度销售报表。
-
业务分析与洞察:
- 利用统计学或分析工具,对数据进行深度挖掘。
- 工具:Excel、Python(Pandas、Matplotlib)、R 等。
- 例子:分析用户行为数据,发现客户流失的原因。
-
实时数据处理:
- 消费实时流数据,支持快速响应和实时决策。
- 工具:Kafka、Spark Streaming、Flink 等。
- 例子:实时监控物流运输状态。
-
数据驱动的自动化:
- 数据直接被系统或服务消费,用于触发自动化流程。
- 例子:银行的风控系统根据用户交易数据自动判定风险。
-
机器学习与AI模型:
- 数据作为模型训练的输入,驱动机器学习或人工智能应用。
- 工具:TensorFlow、PyTorch、Scikit-learn 等。
- 例子:根据历史数据训练模型预测未来销售趋势。
-
API 数据消费:
- 数据通过 API 提供给应用程序消费。
- 例子:电商平台通过 API 查询库存数据并更新页面。
数据消费的技术架构
数据消费通常依赖于以下技术架构:
-
数据湖与数据仓库:
- 数据消费的基础是数据存储。数据湖存储原始数据,数据仓库存储加工后的结构化数据。
- 工具:Hadoop、Amazon S3、Snowflake 等。
-
数据集成与查询:
- 数据通过 ETL 或 ELT 流程集成,并通过查询工具消费。
- 工具:Presto、Hive、BigQuery 等。
-
数据可视化平台:
- 将复杂数据呈现为易于理解的图表或仪表板。
- 工具:Tableau、Power BI、Grafana 等。
-
实时流处理:
- 实时数据的消费需要强大的流处理能力。
- 工具:Kafka、Flink、Spark Streaming 等。
数据消费的挑战
- 数据质量:
- 如果数据不准确、不完整或不及时,会直接影响消费结果的可靠性。
- 访问性能:
- 当数据量过大时,如何高效查询和处理数据是一个难题。
- 安全与隐私:
- 数据消费涉及敏感数据时,如何确保合规性和安全性。
- 数据孤岛:
- 数据分散在多个系统中,导致消费过程中难以整合。
数据底座
数据底座 是一个支持企业数字化转型的核心技术平台,用来统一管理、存储和处理企业所有的数据资源。它是企业实现数据驱动决策、智能化应用的基础设施,类似于建筑物的地基,支撑着上层的各种数据应用。
数据底座的主要组成部分
-
数据存储:
- 数据底座需要存储结构化、半结构化和非结构化数据,通常包括以下系统:
- 数据湖:存储原始的、海量的多种数据类型。
- 数据仓库:存储经过处理和结构化的数据,用于高效分析。
- 云存储:灵活支持弹性存储(如 AWS S3、阿里云 OSS)。
- 数据底座需要存储结构化、半结构化和非结构化数据,通常包括以下系统:
-
数据集成:
- 将企业的多种数据源(如数据库、日志系统、实时流数据)统一整合到数据底座。
- 工具:ETL(提取、转换、加载)工具(如 Apache NiFi、Informatica)。
-
数据治理:
- 确保数据的质量、规范性和安全性。
- 包括数据清洗、数据标准化、元数据管理、数据权限控制。
-
数据分析与服务:
- 支持多种数据分析需求,包括统计分析、机器学习、实时处理等。
- 提供数据 API 和服务,支持上层应用调用数据。
-
数据安全:
- 实现数据加密、访问控制、日志记录,确保数据合规性和安全性。
-
开发与运维支持:
- 为数据科学家、分析师和开发者提供统一的平台工具(如 Jupyter Notebook、BI 工具)。
ETL(提取、转换、加载)
ETL 是指 提取(Extract)、转换(Transform)、加载(Load),是一种将数据从一个或多个来源提取出来,经过转换处理后加载到目标系统(如数据仓库、数据湖)的数据集成过程。ETL 是数据处理的重要环节,广泛用于数据仓库建设、数据分析和业务报表生成。
ETL 的三个主要步骤
-
提取(Extract):
- 从多个数据源中获取原始数据,包括结构化数据(如数据库表)、半结构化数据(如 JSON、XML)和非结构化数据(如文本、日志)。
- 数据源示例:
- 数据库(MySQL、Oracle、PostgreSQL)
- 文件系统(CSV、Excel)
- API 或实时流(如 Kafka)
- 目标是尽可能完整地提取数据,同时避免影响源系统性能。
-
转换(Transform):
- 对提取的原始数据进行清洗、规范化和处理,以满足目标系统的要求。通常包括以下操作:
- 数据清洗:处理空值、重复值、异常值。
- 格式转换:统一日期格式、单位等。
- 数据聚合:计算总数、平均值等。
- 维度处理:将数据映射到维度表或事实表。
- 业务规则应用:根据业务逻辑衍生新字段或分类数据。
- 对提取的原始数据进行清洗、规范化和处理,以满足目标系统的要求。通常包括以下操作:
-
加载(Load):
- 将转换后的数据加载到目标系统中,如数据仓库(如 Snowflake、Redshift)或数据湖(如 Hadoop、S3)。
- 加载方式:
- 全量加载:每次将所有数据重新加载到目标系统。
- 增量加载:只加载新增或更新的数据。
- 确保数据加载的完整性和准确性。
IoT数据
IoT数据(Internet of Things 数据)是指由物联网设备生成、收集和传输的数据。这些设备通过网络互联,可以实时感知、监测和传输信息,从而为数据分析和智能化应用提供支持。
IoT 数据的来源
IoT 数据主要来源于各种连接到互联网的设备和传感器,这些设备可以分为以下几类:
-
工业设备:
- 工厂中的机器、机器人、设备传感器。
- 例如:温度、压力、振动传感器。
-
智能家居设备:
- 智能音箱、智能门锁、智能灯泡、智能电表。
- 例如:记录室内温湿度、用电量、用户行为等。
-
可穿戴设备:
- 智能手表、健身追踪器。
- 例如:记录心率、步数、睡眠数据。
-
交通工具:
- 车辆中的 GPS、车载诊断系统(OBD)。
- 例如:车辆位置、速度、燃油使用情况。
-
环境监测设备:
- 气象站、空气质量监测仪。
- 例如:二氧化碳浓度、噪声水平、降雨量。
-
物流与零售:
- 包括物流追踪器、智能货架、RFID 标签。
- 例如:商品库存、运输位置、存储条件。
IoT 数据的特点
-
实时性:
- IoT 数据通常以流数据的形式实时产生,适合用于实时监控和快速响应。
- 例如:传感器每秒传输一次温度数据。
-
多样性:
- IoT 数据可以是结构化、半结构化或非结构化的,包含数值、文本、图片、视频等。
- 例如:结构化的电量数据,非结构化的设备日志。
-
海量性:
- 由于设备数量庞大,数据生成频率高,IoT 数据通常呈现出“数据爆炸”的特点。
- 例如:一台传感器每天产生上 GB 的数据。
-
分布式来源:
- 数据来自分布在不同地点的设备,具有高度分散性。
- 例如:不同城市的环境监测设备生成的数据。
-
时序性:
- 数据通常是以时间序列形式产生,带有时间戳,用于分析变化趋势。
- 例如:每天记录温度变化曲线。
IoT 数据的存储与处理
由于 IoT 数据量大、种类多且实时性强,对数据存储和处理系统的要求较高。
存储方式
-
云存储:
- 使用云平台(如 AWS、Azure、阿里云)存储数据,具有弹性扩展性。
- 例如:将 IoT 数据存储在 AWS IoT Core。
-
边缘计算:
- 在设备附近(边缘)处理和存储部分数据,降低传输延迟。
- 例如:工业设备实时分析振动数据,异常时才上传到云。
-
数据湖与数据仓库:
- 数据湖(如 Hadoop、AWS S3):存储原始数据。
- 数据仓库(如 Snowflake、Redshift):存储结构化数据用于分析。
处理方式
-
实时数据处理:
- 使用流处理框架(如 Apache Kafka、Flink)分析实时数据。
- 例如:监控车辆速度,超速时发出警报。
-
批量数据分析:
- 将 IoT 数据定期导入数据仓库,使用大数据工具(如 Spark)进行批处理。
- 例如:分析一周内设备的运行状态。
-
机器学习与AI:
- 使用 AI 模型对 IoT 数据进行预测和异常检测。
- 例如:预测工业设备的故障。
Mapping
Mapping 在开发中通常指的是数据或信息之间的映射关系,即将一种数据结构、字段或实体转换成另一种对应的数据结构或字段,以便在不同系统或模块之间进行数据的传递或处理。Mapping 是软件开发中常见的概念,广泛应用于数据传输、转换、模型映射等场景。
Mapping的常见场景
Mapping 的作用
-
数据转换:
- 将数据从一种格式或结构转换为另一种,以满足不同模块或系统的需求。
-
系统集成:
- 在多个系统之间共享数据时,通过映射来解决字段或数据结构不一致的问题。
-
降低耦合性:
- 使用映射层可以隔离不同系统或模块的实现细节,降低代码的耦合性。
-
提升代码可维护性:
- 通过统一的映射规则或工具,简化数据转换的逻辑,方便后续维护。
常见的 Mapping 技术与工具
-
编程语言中的工具:
- Java:
ModelMapper
、MapStruct
。 - Python:
pydantic
、Marshmallow
。 - JavaScript:手动映射(如使用
map()
方法)。
- Java:
-
数据库工具:
- Hibernate、JPA(ORM 工具)。
- 数据库视图用于映射复杂字段。
-
ETL 工具:
- Apache Nifi、Talend、Informatica,用于跨系统的大规模数据映射和转换。
-
配置文件与规则:
- JSON、YAML 配置文件中定义的映射规则。
- 自定义映射规则文件。
逻辑实体
物理表
虚拟表
视图
数据模型
数据模型 是一种对现实世界数据及其相互关系的抽象表达,用来描述数据的结构、操作和约束。它是数据库设计、数据处理和数据管理的基础工具,帮助我们理解和组织复杂的数据。
Data Lab
Data Lab 是指企业数据管理和分析中的一个核心功能模块或场景,通常代表了一个集中的数据实验室(Data Laboratory)或分析平台。它的主要目标是为用户提供灵活的探索、分析和试验数据的环境,帮助实现业务洞察和智能决策。
数据治理
对企业的数据管理和利用进行评估、指导和监督,通过提供不断创新的数据服务,为企业创造价值
数据源
指业务上首次正式发布某项数据的应用系统,并经过数据管理专业组织认证,作为企业范围内唯一数据源头被周边系统调用。
数据Owner
公司数据 Owner 是公司数据战略的制定者、数据文化的营造者、数据资产的所有者和数据
争议的裁决者,拥有公司数据日常管理的最高决策权。
数据 Owner 的职责包括:
① 负责数据管理体系建设。
② 负责信息架构建设。
③ 负责数据质量管理。
④ 负责数据底座和数据服务建设。
⑤ 负责数据争议裁决。
数据Owner要负责所辖领域的信息架构建设和维护,负责保障所辖领域的数据质量,承接公司各个部门对本领域数据的需求,并有责任建立数据问题回溯和奖惩机制,对所辖领域的数据问题及争议进行裁决,公司有权对不遵从信息架构或存在严重数据质量问题的责任人进行问责。
主数据
参与业务事件的主体或资源,是具有高业务价值的、跨流程和跨系统重复使用的数据。主数据与基础数据有一定的相似性, 都是在业务事件发生之前预先定义;但又与基础数据不同,主数据的取值不受限于预先定义的数据范围,而且主数据的记录的增加和减少一般不会影响流程和IT系统的变化
元数据
定义数据的数据,是有关一个企业所使用的物理数据、技术和业务流程、数据规则和约束以及数据的物理与逻辑结构的信息
元数据是描述数据的数据,用于打破业务和IT之间的语言障碍,帮助业务更好地理解数据。
元数据通常分为业务、技术和操作三类。
其中:
业务元数据:用户访问数据时了解业务含义的途径,包括资产目录、Owner、数据密级
等。
技术元数据:实施人员开发系统时使用的数据,包括物理模型的表与字段、ETL 规则、
集成关系等。
操作元数据:数据处理日志及运营情况数据,包括调度频度、访问记录等。
数据导航/数据地图DMAP

汇聚/钻取/切片
数据粒度
SLA
第一部分
第一章
数字化转型目标
数字化转型蓝图
数据工作框架
数据体系建设的整体框架
第二章
数据治理体系框架
数据管理总纲
第三章
数据分类管理框架
数据分类
基础数据治理
基础数据是用于分类或目录整编的数据,通常有一个有限的允许、可选值范围。也就是常见的基础码值。如性别、币种、业务单类型等。
基础数据治理无论对优化业务流程还是数据分析都有较高的价值。一方面是增强与外部系统、提高业务敏捷度;另一方面,减少mapping的开发,支持业务端到端分析,增加业务确定性。码值管理最好通过系统来管控,目前的工作里也遇到这类问题,因为老系统之前较为混乱,新建系统建了一套全新的,但当时相关标准管理系统不完善,且在新老mapping上并不完善,导致数据部门很难开展工作。
基础数据治理的价值
基础数据治理的收益
基础数据治理的框架
主数据治理
主数据具有高业务价值的、可以在企业内跨流程跨系统被重复使用的数据,具有唯一、准确、权威的数据源。通常是业务事件的参与方,参与方在业务中是一个很重要的概念。常见的主数据有机构主数据、员工主数据、产品主数据、财务主数据等。
华为的主数据范围包含客户、产品、供应商、组织和人员。每个主数据都有相应的架构、流程及管控组织来负责管理。目前的工作里也各自新建域来管理相应的主数据,但缺少良好的流程和管控,产品功能存在但实际转起来时没有那么顺畅,需要不断打磨。最后的目的是保证数出一孔,提高数据质量、支持交易流打通等。
主数据管理策略
主数据管理框架
客户主数据
客户数据是企业最重要的主数据之一,几乎贯穿所有业务经营活动。客户数据在全流程中的及时性、准确性、完整性、一致性、有效性、唯一性是业务高效运作、经营可控的重要保障。随着业务发展,华为客户数量迅速增长,客户数据种类复杂多样,因此要构建客户数据管理和服务化能力,以满足经营分析、交易打通、内外部遵从、客户价值挖掘等核心要求,支撑面向多BG的战略转变。
这里的“多BG”指的是“多业务群”(Business Groups)的意思。华为作为一个全球化的大型企业,通常会根据不同的产品线、市场需求、技术方向等,划分为多个业务群(BGs)。这些业务群可能包括消费业务、企业业务、运营商业务等。每个BG都有其独立的目标、运作模式和管理需求。因此,“支撑面向多BG的战略转变”意味着要建立一个能够支持多个业务群战略需求的系统或平台,以确保客户数据能够在各个业务群之间高效流通和利用。
事务数据治理
事务数据用于记录企业经营过程中产生的业务事件,其实质是主数据之间活动产生的数据。如一条xx订单数据。
事务数据会调用主数据和基础数据,当然也有自身的数据。如一张订单上,一般有客户、产品、机构主数据,币种、订单类型等基础数据,也有订单金额、订单号等事务数据。因此,事务数据治理的重点是管理好事务数据对主数据和基础数据的调用,以及事务数据之间的关联关系,确保上下游传递顺畅,数仓中间层建模时就是事实表表来源。
报告数据治理
报告数据是对数据进行处理加工后,用作业务决策依据的数据。主要是指维度、指标。
观测数据治理
观测数据是观测者通过观测工具获取观测对象行为/过程的记录数据。如系统日志、物联网数据、GPS数据等。
观测对象主要是人、事、物和环境,观测对象要定义成业务对象进行管理。观测方式分为软感知(使用软件或各种技术进行数据收集,比如某log日志)和硬感知(收集对象为物理世界中物理实体,如IOT数据)。
规则数据治理
规则数据是结构化描述业务规则变量(一般为决策表、关联关系表、评分卡等形式)的数据,是实现业务规则的核心数据。无法实例化,只能以逻辑实体存在。如某下单流程中的定价规则,风控规则等。业务规则/规则变量->规则数据,一个业务规则可以包含0-N个规则数据。
非结构化数据
外部数据
外部数据是指华为公司引入的外部组织或者个人拥有处置权利的数据,如供应商资质证明、消费者洞察报告等。外部数据治理的出发点是合规遵从优先,与内部数据治理的目的不同。
元数据
元数据是定义数据的数据,是有关一个企业所使用的物理数据、技术和业务流程、数据规则和约束以及数据的物理与逻辑结构的信息。属于描述性标签,描述了数据、相关概念以及他们之间的关系,如业务术语、指标定义、表/字段描述等。
元数据设计原则
数据资产编码
数据资产编码(DAN,Data Asset Numbering) 是一种对数据资产进行唯一标识的编码体系,用于帮助企业对其数据资产进行统一管理、标识和追踪。
Schema (skiːmə,s给m)是数据库的设计图,定义了数据的结构、类型和关系,为数据存储、管理和使用提供规范。
元数据注册
元数据注册 是指将元数据(Metadata)按照一定的规范和标准,登记到一个元数据管理平台或元数据仓库中,以便统一管理和使用。这个过程确保企业或组织中的数据资源可以被清晰地描述、分类和追踪,从而实现对数据的全面理解、利用和管控。
元数据注册有4种模式,一对一模式(逻辑实体和物理表一对一)、主从模式(一对多,逻辑实体对应多张物理表)、主扩模式(一对多主物理表为核心表,少数属性存在其他物理表中)和父子模式(多个逻辑实体业务属性完全相同,按照不同场景区分逻辑实体,但落在同一物理表中)。
第二部分
第四章
企业级信息架构
信息架构原则
第五章
数据底座总体架构
数据湖
数据湖(入湖方法)
这里区分下物理入湖和虚拟入湖:
(1)物理入湖是指将原始数据复制到数据湖中,主要有批量集成、数据复制同步(实时,CDC)、消息集成(实时,API提取数据,MQ工具)和流集成(实时,Pipline工具)。
(2)虚拟入湖是指原始数据不在数据湖中进行物理存储,而是通过建立虚拟表的集成方式实现入湖,实时性强,一般面向小数据量应用,数据量过大可能影响源系统。主要是面向需要低数据低时延、高灵活性和临时模式(不断消费下的模式)的消费场景。如Denodo中的逻辑数据架构,支持数据虚拟化。
批量集成
数据复制同步
消息集成
流集成
数据虚拟化
结构化数据入湖
结构化数据是指由二维表结构来逻辑表达和实现的数据,严格遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。
触发结构化数据入湖的场景有两种:
第一,企业数据管理组织基于业务需求主动规划和统筹;
第二,响应数据消费方的需求。
结构化数据入湖过程包括:数据入湖需求分析及管理、检查数据入湖条件和评估入湖标准、实施数据入湖、注册元数据。
非结构化数据入湖
数据主题联结
第六章
数据服务
数据地图
服务+自助
数字化运营过程
第三部分
相关文章:
华为数据之道-读书笔记
内容简介 关键字 数字化生产 已经成为普遍的商业模式,其本质是以数据为处理对象,以ICT平台为生产工具,以软件为载体,以服务为目的的生产过程。 信息与通信技术平台(Information and Communication Technology Platf…...
Zookeeper(28)Zookeeper的线性化写入和顺序一致性读是什么?
Zookeeper 是一个分布式协调服务,它在设计上提供了强一致性的保证,其中包括线性化写入和顺序一致性读。这两种一致性模型确保了在分布式系统中数据的一致性和操作的确定性。 线性化写入(Linearizable Writes) 线性化写入保证在任…...
Ubuntu安装GitLab
在 Ubuntu 上安装 GitLab 的步骤如下。这里以 GitLab Community Edition(CE)为例: 前提条件 确保你的 Ubuntu 系统是 20.04 或更高版本。确保你的系统满足 GitLab 的硬件要求。 步骤 更新系统包: sudo apt update sudo apt upg…...
Stable Diffusion 3.5 介绍
Stable Diffusion 3.5 是由 Stability AI 推出的最新一代图像生成模型,是 Stable Diffusion 系列的重要升级版本。以下是关于 Stable Diffusion 3.5 的详细信息: 版本概述 Stable Diffusion 3.5 包含三个主要版本: Stable Diffusion 3.5 L…...
力扣hot100-->滑动窗口、贪心
你好呀,欢迎来到 Dong雨 的技术小栈 🌱 在这里,我们一同探索代码的奥秘,感受技术的魅力 ✨。 👉 我的小世界:Dong雨 📌 分享我的学习旅程 🛠️ 提供贴心的实用工具 💡 记…...
### 2.5.3 二叉树的基本操作
2.5.3 二叉树的基本操作 // 获取树中节点的个数 int size(Node root);// 获取叶子节点的个数 int getLeafNodeCount(Node root);// 子问题思路-求叶子结点个数// 获取第K层节点的个数 int getKLevelNodeCount(Node root,int k);// 获取二叉树的高度 int getHeight(Node root);…...
GAEA 社区:从用户到共同创造者
GAEA 模型最引人注目的方面之一是,它将用户视为共同创造者,而不仅仅是被动的消费者。在许多中心化平台中,用户就是用户。但在 GAEA 的生态系统中,每个人都在推动进步。无论您是贡献计算能力、分享有价值的数据还是帮助改进模型&am…...
记录一个连不上docker中的mysql的问题
引言 使用的debian12,不同发行版可能有些许差异,连接使用的工具是navicat lite 本来是毫无思绪的,以前在云服务器上可能是防火墙的问题,但是这个桌面环境我压根没有使用防火墙。 直到 ying192:~$ mysql -h127.0.0.1 -uroot ERROR 1045 (28…...
doris:MySQL Load
Doris 兼容 MySQL 协议,可以使用 MySQL 标准的 LOAD DATA 语法导入本地文件。MySQL Load 是一种同步导入方式,执行导入后即返回导入结果。可以通过 LOAD DATA 语句的返回结果判断导入是否成功。一般来说,可以使用 MySQL Load 导入 10GB 以下的…...
使用vitepress搭建自己的博客项目
一、介绍can-vitepress-blog 什么是CAN BLOG CAN BLOG是基于vitepress二开的个人博客系统,他能够方便使用者快速构建自己的博客文章,无需繁琐的配置和复杂的代码编写。 CAN BLOG以antdv为UI设计基础,简洁大方,界面友好…...
Yii框架中的扩展:如何使用外部库
在Yii框架中,扩展功能的一种常见且有效的方式是使用外部库。这些外部库可以帮助开发者实现特定的功能,如调用第三方API、处理图片、生成PDF文件或发送邮件等。以下是使用外部库扩展Yii框架的详细步骤: 一、安装外部库 使用Composerÿ…...
【Elasticsearch】inference ingest pipeline
Elasticsearch 的 Ingest Pipeline 功能允许你在数据索引之前对其进行预处理。通过使用 Ingest Pipeline,你可以执行各种数据转换和富化操作,包括使用机器学习模型进行推理(inference)。这在处理词嵌入、情感分析、图像识别等场景…...
Linux的基本指令(上)
1.ls指令 语法:ls [选项] [目录或文件] 功能:对于⽬录,该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件,将列出⽂件名以及其他信息。 常用选项: -a 列出⽬录下的所有⽂件,包括以 . 开头的隐含⽂件。 -d 将…...
【贪心算法】洛谷P1106 - 删数问题
2025 - 01 - 22 - 第 46 篇 【洛谷】贪心算法题单 - 【贪心算法】 - 【学习笔记】 作者(Author): 郑龙浩 / 仟濹(CSND账号名) 目录 文章目录 目录P1106 删数问题题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路代码 P1106 删数问题 题目描述 键盘输入一个高…...
【人工智能】Python中的知识图谱构建与应用
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着人工智能技术的不断发展,知识图谱已成为信息检索、推荐系统、自然语言处理等领域的重要技术之一。本文将详细介绍如何使用Python构建知…...
Spring WebSocket 与 STOMP 协议结合实现私聊私信功能
目录 后端pom.xmlConfig配置类Controller类DTO 前端安装相关依赖websocketService.js接口javascripthtmlCSS 效果展示简单测试连接: 报错解决方法1、vue3 使用SockJS报错 ReferenceError: global is not defined 功能补充拓展1. 安全性和身份验证2. 异常处理3. 消息…...
【Matlab高端绘图SCI绘图模板】第05期 绘制高阶折线图
1.折线图简介 折线图是一个由点和线组成的统计图表,常用来表示数值随连续时间间隔或有序类别的变化。在折线图中,x 轴通常用作连续时间间隔或有序类别(比如阶段1,阶段2,阶段3)。y 轴用于量化的数据&#x…...
java后端之事务管理
Transactional注解:作用于业务层的方法、类、接口上,将当前方法交给spring进行事务管理,执行前开启事务,成功执行则提交事务,执行异常回滚事务 spring事务管理日志: 默认情况下,只有出现Runti…...
常见的多媒体框架(FFmpeg GStreamer DirectShow AVFoundation OpenMax)
1.FFmpeg FFmpeg是一个非常强大的开源多媒体处理框架,它提供了一系列用于处理音频、视频和多媒体流的工具和库。它也是最流行且应用最广泛的框架! 官方网址:https://ffmpeg.org/ FFmpeg 的主要特点和功能: 编解码器支持: FFmpe…...
如何移植ftp服务器到arm板子?
很多厂家提供的sdk,一般都不自带ftp服务器功能, 需要要发人员自己移植ftp服务器程序。 本文手把手教大家如何移植ftp server到arm板子。 环境 sdk:复旦微 Buildroot 2018.02.31. 解压 $ mkdir ~/vsftpd $ cp vsftpd-3.0.2.tar.gz ~/vs…...
牛批,吾爱出品
可能是因为从事IT的原因,我身边的大多数朋友也是从事相关工作的,而IT工作往往需要长时间对着电脑。这样就很容易眼睛疲劳。今天给大家推荐几款,希望有对有需要的小伙伴有所帮助,大家可以收藏以来哦。 CareUEyes CareUEyes是一款绿…...
基于 Android 的日程管理系统的设计与实现
标题:基于 Android 的日程管理系统的设计与实现 内容:1.摘要 基于 Android 的日程管理系统旨在帮助用户更高效地管理个人日程安排。该系统采用了 Android 平台的优势,结合了简洁的界面设计和强大的功能,为用户提供了便捷的日程管理体验。 在设计与实现过…...
Kubectl 与 Helm 详解
在 Kubernetes 生态中,kubectl 和 Helm 是两个核心工具,分别用于直接管理 Kubernetes 资源和简化应用的部署与管理。本文将深入探讨 kubectl 和 Helm 的功能、使用场景、部署与更新方式,并对比它们的优缺点。 1. Kubectl 详解 1.1 什么是 Kubectl? kubectl 是 Kubernetes…...
centos搭建docker registry镜像仓库
centos搭建docker registry镜像仓库 简介 Docker Registry是一个存储和分发Docker镜像的服务。它允许用户上传、下载和管理 Docker 镜像,为容器化应用的部署提供了便利。 拉取镜像 docker image pull registry证书配置 创建镜像仓库的镜像数据目录和证书目录&…...
Pyecharts之饼图与多饼图的应用
在数据可视化领域,饼图是一种常用的图表类型,特别适合展示数据的比例关系。Pyecharts 为我们提供了强大的饼图绘制功能,不仅可以轻松绘制各种饼图,还能对饼图的样式和数据标签进行深度定制,并且可以组合多个饼图以满足…...
51单片机入门_01_单片机(MCU)概述(使用STC89C52芯片;使用到的硬件及课程安排)
文章目录 1. 什么是单片机1.1 微型计算机的组成1.2 微型计算机的应用形态1.3 单板微型计算机1.4 单片机(MCU)1.4.1 单片机内部结构1.4.2 单片机应用系统的组成 1.5 80C51单片机系列1.5.1 STC公司的51单片机1.5.1 STC公司单片机的命名规则 2. 单片机的特点及应用领域2.1 单片机的…...
蓝桥杯LQ1044 求完数
题目描述 因子:因子也叫因数,例如3515,那么3和5是15的因子。 同时15115,那么1和15也是15的因子。 1,3,5,15 这四个因子是15的所有因子。 完数:如果一个数等于不含它本身的其他因子之…...
Django 日志配置实战指南
日志是 Django 项目中不可或缺的一部分,它帮助我们记录应用程序的运行状态、调试信息、错误信息等。通过合理配置日志,我们可以更好地监控和调试应用程序。本文将详细介绍如何在 Django 项目中实现日志文件分割、日志级别控制以及多环境日志配置,并结合最佳实践和代码示例,…...
[笔记] 极狐GitLab实例 : 手动备份步骤总结
官方备份文档 : 备份和恢复极狐GitLab 一. 要求 为了能够进行备份和恢复,请确保您系统已安装 Rsync。 如果您安装了极狐GitLab: 如果您使用 Omnibus 软件包,则无需额外操作。如果您使用源代码安装,您需要确定是否安装了 rsync。…...
php代码审计2 piwigo CMS in_array()函数漏洞
php代码审计2 piwigo CMS in_array()函数漏洞 一、目的 本次学习目的是了解in_array()函数和对项目piwigo中关于in_array()函数存在漏洞的一个审计并利用漏洞获得管理员帐号。 二、in_array函数学习 in_array() 函数搜索数组中是否存在指定的值。 in_array($search,$array…...
随机矩阵投影长度保持引理及其证明
原论文中的引理 2 \textbf{2} 2 1. \textbf{1. } 1. 引理 1 \textbf{1} 1(前提之一) 1.1. \textbf{1.1. } 1.1. 引理 1 \textbf{1} 1的内容 👉前提: X ∼ N ( 0 , σ ) X\sim{}N(0,\sigma) X∼N(0,σ)即 f ( x ) 1 2 π σ e – x 2 2 σ 2 f(x)\text{}…...
蓝桥杯真题 - 三国游戏 - 题解
题目链接:https://www.lanqiao.cn/problems/3518/learning/ 个人评价:难度 2 星(满星:5) 前置知识:贪心 整体思路 先假设魏蜀吴中的某一个势力最终获胜的情况下,如何求出事件发生的最大数量&a…...
Spring 源码学习(七)——注解后处理器-2
五 InitDestroyAnnotationBeanPostProcessor 类 1 属性 InitDestroyAnnotationBeanPostProcessor 类用于处理初始化与销毁注解;其中第一个属性为用于标识初始化方法与销毁方法注解类型的 initAnnotationType 与 destroyAnnotationType 属性、还有一个用于标识执行顺…...
即梦(Dreamina)技术浅析(一)
1.技术架构与核心组件 2.生成模型的具体实现 3.多模态融合技术 4.训练数据与模型优化 5.用户交互与创作流程 6.技术挑战与解决方案 7.未来发展方向 1. 技术架构与核心组件 即梦的技术架构可以分为以下几个核心组件: 1.1 前端用户界面(UI) 功能模块: 文字输入框:用…...
Spring MVC(二)
介绍 Cookie 与 Session Session 类似哈希表,存储了一些键值对结构,Key 就是 SessionID,Vaule 就是用户信息,客户端发起会话的时候,服务器一旦接收,就会创建会话【也就是 Session】,通过 Sessi…...
java求职学习day15
多线程 1 基本概念 1.1 程序和进程的概念 (1)程序 - 数据结构 算法,主要指存放在硬盘上的可执行文件。 (2)进程 - 主要指运行在内存中的可执行文件。 (3)目前主流的操作系统都支持多进程&a…...
Typesrcipt泛型约束详细解读
代码示例: // 如果我们直接对一个泛型参数取 length 属性, 会报错, 因为这个泛型根本就不知道它有这个属性 (() > {// 定义一个接口,用来约束将来的某个类型中必须要有length这个属性interface ILength{// 接口中有一个属性lengthlength:number}function getLen…...
[操作系统] 进程地址空间管理
虚拟地址空间的初始化 缺页中断 缺页中断的概念 缺页中断(Page Fault Interrupt) 是指当程序访问的虚拟地址在页表中不存在有效映射(即该页未加载到内存中)时,CPU 会发出一个中断信号,请求操作系统加载所…...
【fly-iot飞凡物联】(20):2025年总体规划,把物联网整套技术方案和实现并落地,完成项目开发和课程录制。
前言 fly-iot飞凡物联专栏: https://blog.csdn.net/freewebsys/category_12219758.html 1,开源项目地址进行项目开发 https://gitee.com/fly-iot/fly-iot-platform 完成项目开发,接口开发。 把相关内容总结成文档,并录制课程。…...
14-6-1C++STL的list
(一)list容器的基本概念 list容器简介: 1.list是一个双向链表容器,可高效地进行插入删除元素 2.list不可以随机存取元素,所以不支持at.(pos)函数与[ ]操作符 (二)list容器头部和尾部的操作 list对象的默…...
vue2和vue3指令
Vue 2 和 Vue 3 的指令系统非常相似,但 Vue 3 在指令方面进行了优化和扩展。以下是 Vue 2 和 Vue 3 中指令的对比: 1. 通用指令 这些指令在 Vue 2 和 Vue 3 中都可以使用,功能一致: 指令说明v-bind绑定 HTML 属性或组件 propsv-…...
求整数的和与均值(信息学奥赛一本通-1061)
【题目描述】 读入n(1≤n≤10000)个整数,求它们的和与均值。 【输入】 输入第一行是一个整数n,表示有n个整数。 第2~n1行每行包含1个整数。每个整数的绝对值均不超过10000。 【输出】 输出一行,先输出和,再输出平均值(保留到小数点…...
CodeForces 611:New Year and Domino ← 二维前缀和
【题目来源】 https://codeforces.com/contest/611/problem/C 【题目描述】 They say "years are like dominoes, tumbling one after the other". But would a year fit into a grid? I dont think so. Limak is a little polar bear who loves to play. He has r…...
【ROS2】RViz2界面类 VisualizationFrame 详解
1、简述 VisualizationFrame 继承自 QMainWindow 和 WindowManagerInterface; 窗口顶部是常规布局:菜单栏 和 工具栏 窗口中心是 RenderPanel,用来渲染3D画面 周围是dock区域,包括:DisplaysPanel、ViewsPanel、TimePanel、SelectionPanel 和 ToolPropertiesPanel Windo…...
梯度下降法 (Gradient Descent) 算法详解及案例分析
梯度下降法 (Gradient Descent) 算法详解及案例分析 目录 梯度下降法 (Gradient Descent) 算法详解及案例分析1. 引言2. 梯度下降法 (Gradient Descent) 算法原理2.1 基本概念2.2 算法步骤2.3 梯度下降法的变种3. 梯度下降法的优势与局限性3.1 优势3.2 局限性4. 案例分析4.1 案…...
【Flutter】旋转元素(Transform、RotatedBox )
这里写自定义目录标题 Transform旋转元素可以改变宽高约束的旋转 - RotatedBox Transform旋转元素 说明:Transform旋转操作改变了元素的方向,但并没有改变它的布局约束。因此,虽然视觉上元素看起来是旋转了,但它仍然遵循原始的宽…...
大数运算之C语言实现
一、 前言 在我们代码编程过程中,我们经常需要处理各种规模的数值。从日常工作中的一些简单算术在到科学研究中的复杂计算,数字无处不在。然而,当数值变的异常庞大时,就需要用到大数运算来进行实现。本文我们将介绍大数运算的基本…...
三高“高性能、高并发、高可靠”系统架构设计系列文章
目录 高并发系统的艺术:如何在流量洪峰中游刃有余 《数据密集型应用系统设计》读后感与高并发高性能实践案例 系统稳定性与高可用保障的几种思路 软件系统限流的底层原理解析 技术解决方案调研 延迟队列调研 重试调研 异步回调调研 分库分表调研 分布式事…...
Java设计模式 十八 状态模式 (State Pattern)
状态模式 (State Pattern) 状态模式是一种行为型设计模式,它允许对象在其内部状态改变时改变其行为。状态模式让一个对象在其状态改变时,其行为也随之改变,看起来就像是改变了对象的类。通过将状态的变化封装到不同的状态对象中,…...
Django创建纯净版项目并启动
1.Django的基本目录结构 2. 创建app项目 python manage.py startapp user# python manage.py 是固定的,代表python脚本,主要用于django中的项目管理 # startapp 创建app # user 你的app名字,也就是功能模块名称3.数据库 进入settings.…...