01 一文了解大数据存储框架:数据库、数据仓库、数据集市、数据网格、数据湖、数据湖仓
1. 大数据存储框架
1.1 定义
- 数据库(Database):数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
- 数据仓库(Data Warehouse):数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策和信息的全局共享。
- 数据集市(Data Mart):数据集市是一个小型的、面向特定主题或部门的数据仓库,通常用于满足特定用户群体的分析需求。
- 数据网格(DataMesh):数据网格数据网格的本质是一种去中心化的社会技术方法,旨在帮助组织更好地管理和利用分散在不同系统和应用程序中的数据资产。它强调将数据资产转化为可重用、可组合、可交互的数据元素,以支持组织内部和跨组织的业务创新和数字化转型。
- 数据湖(Data Lake):数据湖是一个存储各种各样原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。数据湖通常是企业所有数据的单一存储,包括源系统数据的原始副本以及用于报告、可视化、分析和机器学习等任务的转换数据。
- 数据湖仓(Data Lakehouse):数据湖仓是一个结合了数据湖和数据仓库优点的存储架构,旨在提供一个既能存储原始数据又能进行高效分析的环境。
1.2 数据存储框架的应用场景
应用场景 | 示例 | |
---|---|---|
数据库 | 广泛应用于各种需要存储、检索和管理数据的系统中,如:客户关系管理(CRM)、企业资源规划(ERP)、电子商务网站等 | 客户关系管理(CRM):行使用数据库来存储客户的账户信息、交易记录等;电商网站使用数据库来存储商品信息、用户购物车内容、订单数据等 |
数据仓库 | 主要用于支持企业的决策分析,如:市场分析、客户分析、业务过程优化 | 电信公司使用数据仓库来存储和分析客户的通话记录、数据使用情况等,以便制定更精准的营销策略或优化网络布局 |
数据集市 | 适用于需要快速响应特定查询或分析需求的部门或项目团队 | 一个销售部门可能会建立自己的数据集市,其中包含与销售业绩、客户信息和市场活动相关的数据,以便销售团队能够快速地进行销售分析和预测 |
数据网格 | 适用于企业中数据分布广泛且数据需求多样化,需要打破数据孤岛,实现数据共享和协同工作的场景。如:跨部门的数据协作、企业与外部合作伙伴的数据共享等。 | 一家大型制造企业,其研发部门、生产部门、销售部门和售后服务部门各自拥有大量数据。通过数据网格,研发部门可以获取销售部门关于市场需求和客户反馈的数据,以优化产品设计;生产部门可以结合研发部门的新技术信息和销售部门的预测数据,合理安排生产计划;销售部门可以了解到研发部门的产品更新进展和生产部门的库存情况,从而制定更精准的销售策略。 |
数据湖 | 适用于需要存储和处理大量多样化数据的环境,尤其是当数据的结构和用途在存储时不明确的情况下 | 一个大型互联网公司可能会使用数据湖来存储用户行为日志、社交媒体帖子、图片和视频等,便于后续数据挖掘等。 |
数据湖仓 | 适用于那些既需要灵活的数据存储和处理能力,又需要高性能分析查询的企业 | 一个大型金融机构可能会采用数据湖仓架构来存储和处理大量的交易数据、客户信息和市场数据,同时支持实时风险分析、投资组合优化等高性能分析查询 |
2. 数据仓库基础知识
数据存储结构:非结构化、半结构化、结构化数据
定义 | 示例 | 常见场景 | 特点 | |
---|---|---|---|---|
结构化数据 | 结构化数据是指可以使用关系型数据库表示和存储的数据,通常以二维表 的形式呈现。 | 数字、符号等 | 二维表,包含属性和元组。例如,成绩单是属性,而90分作为对应的元组。 | - 数据以行为单位,每行数据表示一个实体的信息,且每行的属性是相同的。 - 存储和排列有一定的规律,便于查询和修改等操作。 |
半结构化数据 | 半结构化数据既有数据又有结构,但结构不是严格固定的,不完全符合关系型数据的规范。 | XML、JSON等 | Web数据、日志文件、配置文件等场景 | 数据的结构可能在不同的记录中有所变化,但仍具有一定的可解析性和组织性。 |
非结构化数据 | 非结构化数据是指没有固定结构和格式的数据,通常无法以关系型数据库的形式进行存储和表示。 | 文本、图像、音频、视频等 | 社交媒体内容、电子邮件、文档、多媒体文件等 | - 非结构化数据不适合使用传统的关系型数据库进行存储和管理。 - 非结构化数据的分析和处理需要采用特定的技术和工具,如自然语言处理、图像处理、音频处理等。 |
2.1 数据仓库基本概念
概念:数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。
- 主题性:数据仓库是面向主题组织数据的,而不是面向事务处理。它围绕企业的关键业务主题进行数据组织,例如客户、销售、产品、财务等。
- 操作型数据库的数据是面向事务处理任务,而数据仓库的数据是按照一定的主题域进行组织。
- 主题的划分需要根据企业的业务需求和战略目标来确定。例如,一个零售企业可能会将数据划分为“客户主题”(包括客户基本信息、购买行为等)、“销售主题”(包括销售订单、销售额等)、“产品主题”(包括产品信息、库存情况等)。
- 集成性:数据仓库中的数据是从多个数据源抽取、转换、清洗后集成在一起的,这些数据源可能包括企业内部的事务处理系统、外部数据源等。
- 稳定性:数据仓库中的数据是相对稳定的,一旦加载到数据仓库中,数据通常不会被频繁修改。
- 因为数据仓库主要目的是为决策分析提供数据,所涉及的操作主要是数据査询,一旦某个数据存入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,修改和删除操作很少,通常只需要定期的加载、刷新来更新数据,而不是实时更新。
- 时变性(反映历史变化):数据仓库中的数据是随时间变化的,数据仓库能够记录数据在不同时间点的状态,便于进行历史数据分析和趋势预测。
定位:承接各种数据源,通过采集、建(数据资产/模型建设)、管(数据管理/数据服务)、用(如何利用数据为下游创建价值)的方式实现下游需求内容为数据分析、运营、风控等业务提供数据支撑。
2.2 数据仓库分层
- 为什么要进行数仓分层?
- 清晰数据结构:数仓每一层都有对应的作用,方便在使用时更好定位与了解
- 数据血缘追踪:清晰知道表/任务上下游,方便排查问题,知道下游哪个模块在使用,提升开发效率及后期管理维护
- 减少重复开发:完善数仓好中间层,减少后期不必要的开发,从而减少资源消耗,保障口径、数据统一
- 把复杂问题简单化:将复杂任务拆解成多个步骤来完成,每一层处理单一步骤,当数据问题出现时候,只需从问题起点开始修复
- 数仓分层
- ODS(接入层)全称Operational Data Store,ODS层是最接近数据源的一层,从数据源(api、数据库等)将数据同步数仓中,中间不做任何处理操作
- DWD(明细层)全称Data Warehouse Detail,是数仓明细数据层,对ODS层的数据进行关联,清洗,维度退化(将维度表中维度数据放入明细表中),转换,主题域建设等操作
- DWM(轻度汇总层)全称Data WareHouse Middle,轻度汇总层数据仓库中DWD层和DWS层之间的一个过渡层次,是对DWD层的生产数据进行轻度综合和汇总统计(可以把复杂指标前置处理),提升公共指标的复用性,减少重复加工
- DWS(汇总层)全称Data WareHouse Servce,按照主题域、颗粒度(例如买家、卖家)划分,按照周期粒度、维度聚合形成指标较多的宽表,用于提供后续的业务查询,数据应用,最重要一点需要在DWS层完成指标口径统一及沉淀
- ADS(应用层)全称Applacation data service,按照应用域,颗粒度划分(例如买家、卖家)划分,按照应用主题将对应数据标签补充至应用层,最终形成用户画像及专项应用
2.3 数据仓库建模方法论
详解数据建模方法、模型、规范、流程、架构、分层和工具-CSDN博客
2.3.1 数据模型的概念和分类
概念:数据特征的抽象,通常包括数据结构、数据操作、数据约束。
分类:概念模型(ER图)、逻辑模型、物理模型(面向计算机)
概念数据模型 | 逻辑数据模型 | 物理数据模型 | |
---|---|---|---|
目的 | 描述业务实体及其之间的关系,不涉及具体的数据库技术或实现细节。 | 在概念模型的基础上进一步细化,包括更多的细节如主键、外键、索引等,但仍然独立于任何特定的数据库管理系统(DBMS)。 | 基于逻辑模型,具体化到选定的DBMS上,考虑性能优化、存储结构等因素。 |
主要关注点 | 业务规则、实体、属性及它们之间的关系 | 确保数据完整性和一致性,同时考虑数据如何被组织和访问 | 表结构、字段类型、索引、分区策略等技术细节 |
工具 | ER图(实体-关系图)是最常用的工具之一 | 增强版的ER图或其他逻辑模型表示法 | 数据库设计工具,直接生成用于创建数据库的SQL脚本 |
2.3.2 数仓建模方法论
数据仓库建模方法论可分为:维度建模、范式建模、Data Vault模型、Anchor模型。其中,维度建模按数据组织类型划分可分为星型模型、雪花模型、星座模型。
- 维度建模:维度建模Ralph Kimball提出,从分析决策的需求出发构建模型,为分析需求服务,因此它重点关注用户如何更快速地完成需求分析,同时具有较好的大规模复杂查询的响应性能。
- 星型模型,主要是维表和事实表,以事实表为中心,所有维度直接关联在事实表上,呈星型分布。
- 雪花模型,在星型模型的基础上,维度表上又关联了其他维度表。这种模型维护成本高,性能方面也较差,所以一般不建议使用。尤其是基于Hadoop体系构建数仓,减少join就是减少shuffle,性能差距会很大。
- 星座模型,是对星型模型的扩展延伸,多张事实表共享维度表。数仓模型建设后期,大部分维度建模都是星座模型。
- 范式建模:实体关系(ER)模型,采用 ER 模型建设数据仓库模型的出发点是整合数据,将各个系统中的数据以整个企业角度按主题进行相似性组合和合并,并进行一致性处理,为数据分析决策服务,但是并不能直接用于分析决策。
- 3NF(三范式):
- 第一范式:每个属性都不可再分(确保每列保持原子性);
- 第二范式:非主字段都完全依赖于主键(确保表中的每列都和主键相关);
- 第三范式:非主键字段不能依赖于其他非主键字段(确保每列都和主键列直接相关,而不是间接相关)
- 3NF(三范式):
- Data Vault模型:Data Vault 是 Dan Linstedt 发起创建的一种模型,它是 ER 模型的衍生,其设计的出发点也是为了实现数据的整合,但不能直接用于数据分析决策。它强调建立一个可审计的基础数据层,也就是强调数据的历史性、可追溯性和原子性,而不要求对数据进行过度的一致性处理和整合;同时它基于主题概念将企业数据进行结构化组织,并引入了更进一步的范式处理来优化模型,以应对源系统变更的扩展性。
- Anchor模型:Anchor 对 Data Vault 模型做了进一步规范化处理, Lars Ronnback 的初衷是设计一个高度可扩展的模型,其核心思想是所有的扩展只是添加而不是修改,因此将模型规范到 6NF ,基本变成了 K-V 结构化模型。
维度建模 | 范式建模 | Data Vault模型 | Anchor模型 | |
---|---|---|---|---|
目的 | 旨在优化查询性能,支持快速的数据分析 | 通过消除数据冗余来确保数据的一致性和完整性 | 提供一种灵活的方法来处理历史数据和变化的数据,同时保持数据的完整性和一致性 | 进一步减少数据冗余并提高灵活性,适用于需要高度可扩展性的环境 |
结构 | 基于星型模式或雪花模式构建,包括事实表(存储度量值)和维度表(描述上下文信息) | 遵循数据库规范化原则,特别是第三范式,即所有非主键属性都必须直接依赖于主键,并且避免传递依赖 | 由中心表(Hub)、链接表(Link)和卫星表(Satellite)组成。Hubs表示业务实体,Links表示实体间的关系,Satellites存储与实体相关的详细信息和变化历史 | 类似于Data Vault,但更加细化。它将不变的部分(如标识符)分离出来作为“锚点”,而变动的部分则存储在独立的表中。 |
优点 | - 高效的查询性能,特别适合OLAP(联机分析处理)操作。 - 易于理解和使用,对于业务用户友好。 | - 数据冗余低,维护成本相对较低。 - 支持事务处理系统中的高效插入、更新和删除操作。 | - 支持数据的历史追踪,允许对数据变更进行审计。 - 灵活性高,易于扩展 | - 极低的数据冗余,非常高的灵活性。 - 支持细粒度的数据变更管理。 |
缺点 | - 数据冗余较高,可能导致更新异常。 - 不适合频繁的数据变更。 | - 对于复杂的查询和数据分析,可能需要进行多次表连接,影响性能。 | - 结构较为复杂,学习曲线陡峭。 - 查询性能可能不如维度模型。 | - 设计和实现更为复杂。 - 可能导致大量的小表,增加了管理和维护的难度。 |
2.3.3 比对
三范式建模 | 维度建模 | |
---|---|---|
角度不同 | 三范式严格遵循每一范式内容,按照范式内容建模 | kimball建模(维度维度),按照多个维度进行分析,更多按照星形模型 |
出发点不同 | 3NF建模(三范式建模),考虑自上而下建模(这里的上指的是上游数据源,先拥有dw层再往上进行设计,瀑布模型,不易于后期扩展) | kimball建模(维度维度),考虑自下而上建模(这里的下指的是数据集市),先拥有数据集市来设计dw层,敏捷模型,易于扩展易于后期维护及使用) |
模型精度 | 三范式模型由于没有分层概念冗余低数据精度高 | kimball建模(维度维度),由于多层建设导致冗余高数据精度低 |
星型模型 | 雪花模型 | |
---|---|---|
概念 | 因为数据的冗余所以很多查询不需要做外部连接,因此一般情况下效率比雪花模型高,设计与实现比较简单 | 由于去除了冗余,有些统计就需要通过表的连接才能产生,所以效率不一定有星型模型高。因此在冗余可以接受的前提下,实际运用中星型模型使用更多,也更有效率 |
特点 | 1. 只需要确定主键 2. 不需要在外部进行连接,大大提高性能实现高度并行化 3. 容易理解,只需要看关联条件和血缘关系就能确定模型 | 1. 需要主外键来确立管理 2. 雪花模型在维度表、事实表之间的连接很多,因此性能方面会比较低,不能并行化 3. 过多的连接使得开发和后期维护都增大难度 |
3. 数据仓库VS其他存储框架
3.1 数据仓库VS数据库
区别 | 数据库OLTP | 数据仓库OLAP |
---|---|---|
处理方式 | 在线事务处理方式 | 在线分析处理方式 |
应用场景 | 日常事务处理 | 面向分析决策 |
数据结构 | 关系模型(ER模型)以业务流程为参考,面向应用的设计 | 维度模型(雪花模型、星型模型)以业务主题为参考,面向主题的设计 |
数据量级 | 相对较小,只存储当前数据 | 相对较大,存储历史数据+当前数据 |
数据特点 | 最新、细节、二维、分立 | 历史、聚集、多维、集成 |
实时性要求 | 实时性要求高 | 实时性要求相对较小 |
操作类型 | 支持频繁的增删改查操作 | 查询为主,可添加、无删除、无变更操作 |
设计理论 | 遵循三范式、避免冗余 | 违范式、适当冗余 |
处理量 | 频繁、小批次、高并发、低延迟 | 非频繁、大批量、高吞吐、有延迟 |
度量 | 事务吞吐量 | 查询吞吐量、响应时间 |
3.2 数据仓库VS数据集市
数据仓库(Data Warehouse)是一个用于整个企业的存储库,包含来自不同业务、系统和部门的集成数据。它基于整个企业的数据模型建立,面向企业范围内的主题。
数据集市(Data Mart)是一个面向特定业务领域或功能单元的主题化数据存储库。它通常是部门级的,为某个局部范围内的管理人员提供决策支持。
区别 | 数据仓库 | 数据集市 |
---|---|---|
适用范围 | 整个企业 | 特定部门或功能单元 |
数据来源 | 来自不同业务、系统和部门的集成数据 | 可从数据仓库获取,或来自各生产系统 |
数据规模 | 较大(企业级) | 相对较小(部门级) |
主题 | 面向企业主题,与整个企业运营相关, 如:如销售、客户、供应链等。 | 面向部门主题,与特定业务或功能单元相关的, 如销售业绩、市场营销、财务等。 |
目标 | 未整个企业各部门提供决策支持 | 为特定部门提供决策支持 |
功能 | 提供企业范围内的数据分析和报告 | 提供部门级的数据分析和报告 |
3.3 数据仓库VS数据网格
数据网格到底是什么,它真的能替代数据仓库和数据湖吗?-CSDN博客
数据网格(DataMesh)是一个新兴的概念,旨在帮助组织更好地管理和利用分散在不同系统和应用程序中的数据资产。它强调将数据资产转化为可重用、可组合、可交互的数据元素,以支持组织内部和跨组织的业务创新和数字化转型。
特点:
- 分布式架构:数据不是集中存储在一个地方,而是分布在企业的各个领域或部门中。
- 领域所有权:每个业务领域对其生成的数据负有直接责任,包括数据的质量、治理和安全。
- 自助服务:通过标准化的接口和协议,使数据消费者能够方便地发现和使用数据产品,无需深入了解底层数据结构。
- 联合治理:尽管数据是分散的,但整个企业需要遵循一套共同的数据标准和协议,以确保数据的一致性和互操作性。
数据仓库 | 数据网格 | |
---|---|---|
架构 | 集中式架构,数据集成到一个中心存储中 | 分布式架构,数据存储在不同的领域团队中,通过标准化的规则和语法进行连接和交互 |
数据所有权 | 由企业专门团队负责管理和维护 | 数据的所有权归于创建它的业务领域,每个团队可以自主管理和拥有自己的数据。 |
数据冗余性和业务对齐 | 数据仓库通常会合并和整合数据,以消除冗余并满足业务需求 | 数据网格允许数据在不同的领域团队之间存在冗余,以满足各自的业务需求 |
目标 | 数据仓库旨在提供一个一致、可信赖的数据源,用于企业的决策支持和分析 | 数据网格旨在通过领域团队拥有的数据产品,实现更快速的洞察和分析,并推动数据驱动的决策制定 |
3.4 数据仓库VS数据湖
数据湖是一个存储大规模、多样化数据的组织方法,可以存储结构化
、非结构化
和半结构化
的数据,是一个大型、灵活的数据存储仓库,可以将企业的所有数据源整合起来。
数据仓库 | 数据湖 | |
---|---|---|
数据存储 | 结构化数据 | 结构化、半结构化、非结构化数据 |
数据处理 | 经过清洗和处理的数据 | 原始数据,不需要预处理,后续根据需要进行处理 |
数据目的 | 支持商业智能和分析 | 支持探索性分析与机器学习 |
使用对象 | 商业分析师和业务用户,用于快速生成报告和决策制定 | 数据科学家和工程师,用于复杂模型训练和算法开发 |
数据访问 | SQL查询 | 多种工具和技术,如Hadoop、Spark等 |
数据处理速度 | 高性能,适合历史数据分析 | 高灵活度,适合实时和流式数据分析 |
数据架构 | 星型模型或雪花模型 | 没有特定的数据架构 |
成本与可扩展性 | 高成本,需要预定义模式和规划,在处理大数据集时更高成本和复杂性,可扩展性低 | 低成本,可以存储各种类型数据,且易于扩展 |
3.5 数据仓库VS数据湖仓
湖仓一体是一个全新的开放式数据架构,将数据仓库的数据结构和管理功能与数据湖的低成本存储和灵活性相结合,不仅保留了数据湖的特点,如存储非结构化数据和半结构化数据,还可以支持事务、数据治理和数据模型化等功能数据仓库所具备的特点。
数据仓库 | 湖仓一体 | |
---|---|---|
数据存储方式 | 结构化数据 | 结构化、半结构化、非结构化数据 |
数据处理方式 | 批量处理 | 批量处理和实时处理 |
数据集成 | 集成的 | 非集成的 |
数据模型 | 事实和维度模型 | 没有明确的数据模型 |
更新频率 | 周期性更新 | 实时更新 |
数据安全性 | 严格的访问控制 | 灵活的访问控制 |
数据处理技术 | ETL工具和SQL | 大数据处理工具与技术 |
使用用户 | 决策者和分析师 | 决策者、分析师和数据科学家 |
数据仓库 | 数据湖 | 湖仓一体 | |
---|---|---|---|
数据存储 | 结构化数据 | 结构化、半结构化、非结构化数据 | 结构化、半结构化、非结构化数据 |
目的 | 数据分析和商业智能(BI) | 机器学习(ML)和人工智能(AI)负载 | 数据分析和机器学习 |
费用 | 存储昂贵又耗时 | 存储具有成本效益、灵活性和快速性 | 存储具有成本效益、灵活性和快速性 |
ACID合规性 | 符合ACID,确保最高水平的完整性 | 非ACID合规性,更新和删除较复杂 | 符合ACID,确保多方同时读取或写入数据的一致性 |
六种存储结构比对汇总
数据库 | 数据仓库 | 数据集市 | 数据网格 | 数据湖 | 湖仓一体 | |
---|---|---|---|---|---|---|
定义 | 用于存储相关数据 | 存储历史数据、支持数据分析 | 针对特定业务部门的数据子集 | 数据的自治和共享 | 存储原始数据的大型存储库 | 集成数据仓库和数据湖 |
用途 | OLTP | OLAP | 特定业务部门的数据分析和决策支持 | 跨组织和团队的数据分享和协作 | 灵活的数据分析和探索 | 原始数据探索和历史数据分析 |
数据类型 | 结构化、非结构化、关系型、非关系型 | 结构化 | 结构化 | 结构化、半结构化、非结构化数据 | 结构化、半结构化、非结构化数据 | 结构化、半结构化、非结构化数据 |
数据处理 | 实时事务数据处理 | 提取-转换-加载(ETL) | 针对特定需求的数据提取和整合 | 数据所有者自洽,分布式数据共享 | 原始数据存储,按需处理和分析 | 原始数据探索和历史数据分析 |
查询 | SQL查询 | SQL查询 | SQL查询 | 分布式数据查询和共享 | 按需处理和分析 | 原始数据探索和历史数据分 |
数据组织 | 表、索引、键、视图、数据类型 | 表、索引、键、视图、数据类型 | 表、索引、键、视图、数据类型 | 分布式数据组织和架构 | 灵活的数据组织 | 灵活的数据组织 |
数据共享 | 有限的共享能力 | 针对特定用户和部门的共享 | 针对特定业务部门的共享 | 强调数据自治和共享 | 强调跨组织和跨团队共享 | 结合数据仓库和数据湖的共享能力 |
数据分析 | 实时事务数据分析 | 历史数据分析和商业智能 | 特定业务部门的数据分析和决策支持 | 跨组织和跨团队的数据分析和协作 | 灵活的数据分析和探索 | 原始数据探索和历史数据分析 |
参考链接
https://blog.csdn.net/giszz/article/details/135634301
https://blog.csdn.net/ttyy1112/article/details/145682207
https://blog.csdn.net/lzhlizihang/article/details/144091421
https://devpress.csdn.net/cloud-native/64be23e9bc2c435cdd54a97a.html
相关文章:
01 一文了解大数据存储框架:数据库、数据仓库、数据集市、数据网格、数据湖、数据湖仓
1. 大数据存储框架 1.1 定义 数据库(Database):数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据仓库(Data Warehouseÿ…...
QT —— QWidget(2)
QT —— QWidget(2) windowTitlewindowIconQt 资源系统 (qrc 机制) 详解基本概念使用方法1. 创建 .qrc 文件 设置背景windowOpacity 我们今天继续来学习QWidget,如果大家上一次的博客还没有看过,可以点击这里: https:/…...
微信小程序预览文件 兼容性苹果
uni.request({url: url,method: GET,header: {Authorization: token,responseType: blob,},responseType: "arraybuffer",success: (res) > {uni.hideLoading()const fs wx.getFileSystemManager(); //获取全局唯一的文件管理器let index url.lastIndexOf("…...
QT:qt5调用打开exe程序并获取调用按钮控件实例2025.5.7
为实现在 VS2015 的 Qt 开发环境下打开外部 exe,列出其界面按钮控件的序号与文本名,然后点击包含特定文本的按钮控件。以下是更新后的代码: #include <QCoreApplication> #include <QProcess> #include <QDebug> #include…...
Flink + Kafka 数据血缘追踪与审计机制实战
一、引言 在实时数据系统中,“我的数据从哪来?去往何处?” 是业务方最关心的问题之一。 尤其在以下场景下: 📉 金融风控:模型出现预警,需回溯数据源链路。 🧾 合规审计:监管要求提供数据全流程路径。 🛠 运维排查:Kafka Topic 数据乱序或错发后快速定位来源。 …...
【图书管理系统】详细讲解用户登录:后端代码实现及讲解、前端代码讲解
1. 约定前后端交互接口 [请求] /user/login [参数] userName&password [响应] 登录成功返回–true;登录失败返回–false 2. 后端代码 2.1 后端代码的逻辑 Controller层: (1)从请求和参数可以得出,前端通过127.0.…...
uni-app实现完成任务解锁拼图功能
界面如下 代码如下 <template><view class"puzzle-container"><view class"puzzle-title">任务进度 {{completedCount}}/{{totalPieces}}</view><view class"puzzle-grid"><viewv-for"(piece, index) in…...
鸿蒙开发——1.ArkTS声明式开发(UI范式基本语法)
鸿蒙开发——1、ArkTS声明式开发:UI范式基本语法 [TOC](鸿蒙开发——1、ArkTS声明式开发:UI范式基本语法)一、ArkTS的基本组成(1)核心概念(像贴标签一样控制组件)(2)基础工具包(现成的积木块&am…...
ChatGPT-4o:临床医学科研与工作的创新引擎
技术点目录 2024大语言模型最新进展介绍ChatGPT-4o提示词使用方法与技巧ChatGPT-4o助力临床医学日常生活、学习与工作ChatGPT-4o助力临床医学课题申报、论文选题及实验方案设计ChatGPT-4o助力信息检索、总结分析、论文写作与投稿、专利idea构思与交底书的撰写ChatGPT-4o助力临床…...
Excel点击单元格内容消失
Excel点击单元格内容消失 前言一、原因说明二、解决方案1.菜单栏中找到“审阅”,选择“撤销工作表保护”2.输入密码3.解除成功 前言 Excel想要编辑单元格内容时,无论是单击还是双击单元格内容都莫名其妙的消失了 一、原因说明 单击或者双击Excel中单元…...
单片机-STM32部分:7、GPIO输入 按键
飞书文档https://x509p6c8to.feishu.cn/wiki/RtuVw6GgZiuwyBkxmdDcdsAFnKk 根据原理图,找到KEY1对应的PC3 找到CubeMX中的PC3,设置为GPIO_Input 右击,修改引脚名称为KEY1 或者在GPIO配置属性中修改 引脚模式:这里默认为输入模式&…...
从创意到变现:独立创造者的破局之路——解码《Make:独立创造者手册》
在创业浪潮奔涌的时代,独立创造者正成为商业领域中一股不可忽视的新兴力量。他们凭借对创新的执着、对问题的敏锐洞察,以及对自由创业模式的追求,试图在竞争激烈的市场中开辟属于自己的天地。《Make:独立创造者手册》如同一位经验丰富的创业导师,为独立创造者们提供了一套…...
14前端项目----登录/注册
登录/注册 assets用户注册模块登录模块tokenlogin组件业务token校验获取用户登录信息 登录成功---Header组件 assets assets文件夹:一般也是放置静态资源–>一般是多个组件共用的静态资源 webpack 会把 assests 静态资源当作是一个模块,打包到 js 文件里,不存在a…...
【FreeRTOS-消息队列】
参照正点原子以及以下gitee笔记整理本博客,并将实验结果附在文末。 https://gitee.com/xrbin/FreeRTOS_learning/tree/master 一、队列简介 1、FreeRTOS中的消息队列是什么 答:消息队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(消息传…...
二叉查找树,平衡二叉树(AVL),b树,b+树,红黑树
🌲 一、二叉查找树(Binary Search Tree,简称 BST) 📌 定义 二叉查找树是一棵二叉树,它满足这样的特性: 每个节点最多有两个子节点(左、右)对于任意一个节点: 它左子树的所有节点值都比它小它右子树的所有节点值都比它大📈 举个例子 复制代码 10/ \5 20/ \ …...
可执行文件格式(ELF格式)以及进程地址空间第二讲【Linux操作系统】
文章目录 可执行文件的格式可执行文件中存储了什么可执行文件中的虚拟地址以及加载 进程地址空间第二讲CPU如何执行进程的代码再谈进程地址空间的区域划分 可执行文件的格式 源文件被编译器编译之后的可执行文件,并不是只有代码和数据,还有一定的格式&a…...
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】8.1 基础图表绘制(折线图/柱状图/散点图)
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL数据分析实战:基础图表绘制(折线图/柱状图/散点图)8.1 基础图表绘制8.1.1 折线图:展现数据趋势数据准备图表绘制步…...
Yii2.0 模型规则(rules)详解
一、基本语法结构 public function rules() {return [// 规则1[[attribute1, attribute2], validator, options > value, ...],// 规则2[attribute, validator, options > value, ...],// 规则3...]; }二、规则类型分类 1、核心验证器(内置验证器࿰…...
Notepad++中XML格式化插件介绍
Notepad++中XML格式化插件介绍 背景安装指南安装步骤验证安装成功安装失败可尝试使用说明XML文件格式正确时格式化错误格式检查XML Tools插件核心功能盘点常见问题格式化后没变化中文显示乱码拯救杂乱XML格式!Notepad++这个神器插件,必须接收!背景 接手别人写的XML,缩进乱成…...
在 R 中,清除包含 NA(缺失值)的数据
在 R 中,清除包含 NA(缺失值)的数据可以通过多种方式实现,具体取决于你希望如何处理这些缺失值。以下是几种常见的方法,包括删除包含 NA 的行、删除包含 NA 的列,或者用特定值填充 NA。 1. 删除包含 NA 的…...
Linux复习笔记(一)基础命令和操作
遇到的问题,都有解决方案,希望我的博客能为你提供一点帮助。 一、Linux中的基础命令和操作(约30%-40%) 1.用户和组(5%左右) 1.1用户简介(了解) 要求:了解,知道有三个用户…...
多线程的出现解决了什么问题?深入解析多线程的核心价值
多线程的出现解决了什么问题?深入解析多线程的核心价值 1. 引言 在计算机科学中,多线程(Multithreading) 是一种重要的并发编程技术,它允许一个进程同时执行多个任务,从而提高程序的性能和响应能力。那么,多线程究竟是为了解决哪些问题而诞生的?它的核心价值是什么?…...
java集合菜鸟教程
1、Java集合的分类 1Java中的集合类可以分为两大类: (1)实现Collection接口,Collection是一个基本的集合接口,Collection中可以容纳一组集合元素(Element),图1是Collection与子类的…...
体育培训的实验室管理痛点 质检LIMS如何重构体育检测价值链
在竞技体育与全民健身并行的时代背景下,体育培训机构正面临双重挑战:既要通过科学训练提升学员竞技水平,又需严格把控运动安全风险。作为实验室数字化管理的核心工具,质检LIMS系统凭借其标准化流程管控与智能化数据分析能力&#…...
3、食品包装控制系统 - /自动化与控制组件/food-packaging-control
76个工业组件库示例汇总 食品包装线控制系统 这是一个用于食品包装线控制系统的自定义组件,提供了食品包装生产线的可视化监控与控制界面。组件采用工业风格设计,包含生产流程控制、实时数据监控和逻辑编程三个主要功能区域。 功能特点 工业风格UI设…...
AbMole的Calcein-AM/PI细胞双染试剂盒,精准区分细胞活死状态
在细胞生物学研究中,细胞活性检测是基础且关键的实验环节。然而,传统方法在检测活细胞和死细胞时常常面临诸多挑战:例如,检测过程复杂、耗时,容易受到细胞类型和实验条件的限制;荧光信号不稳定,…...
力扣刷题Day 37:LRU 缓存(146)
1.题目描述 2.思路 方法1:直接用Python封装好的数据结构OrderedDict(兼具哈希表与双向链表的数据结构)。 方法2:哈希表辅以双向链表。 3.代码(Python3) 方法1: class LRUCache(collections…...
动态规划之01背包——三道题助你理解01背包
目录 二维数组实现 一维数组实现 例一P1164 小A点菜 P1048 [NOIP 2005 普及组] 采药 P1802 5 倍经验日 首先做动规很好的一个办法就是卡哥提出的动规五部曲个人觉得很好用 确定dp数组(dp table)以及下标的含义 确定递推公式 dp数组如何初始化 确定遍…...
【前端笔记】CSS 选择器的常见用法
目录 1. CSS 的基本语法规范2. CSS 的引入方式3. CSS 选择器的种类3.1 标签选择器3.2 类选择器3.3 id 选择器3.4 复合选择器3.5 通配符选择器 4. 补充内容 1. CSS 的基本语法规范 选择器 {1 条 / n 条声明} 选择器决定的是修改谁声明决定的是怎么修改声明的属性是键值对&…...
电脑桌面悬浮窗便签,好用的电脑桌面便签工具
不知道大家有没有发现,我们每天要处理的事情越来越多:工作会议、项目截止日期、临时灵感、购物清单...光靠大脑记忆显然不够靠谱。你可能试过用手机备忘录,但工作时频繁切换设备又很影响效率。 这时候,一款好用的电脑桌面便签工具…...
Windows环境下maven的安装与配置
1.检查JAVA_HOME环境变量 Maven是使用java开发的,所以必须知道当前系统环境中的JDK的安装目录。 搜索栏直接输入“cmd” 或者 WinR 输入cmd 在打开的终端窗口输入“echo %JAVA_HOME”,就可以看到jdk的位置了。 如果没有的话,请参考我的文章&a…...
PyTorch 中如何针对 GPU 和 TPU 使用不同的处理方式
一个简单的矩阵乘法例子来演示在 PyTorch 中如何针对 GPU 和 TPU 使用不同的处理方式。 这个例子会展示核心的区别在于如何获取和指定计算设备,以及(对于 TPU)可能需要额外的库和同步操作。 示例代码: import torch import tim…...
数据库同步方案:构建企业数据流通的高速通道
在数字经济时代,数据已成为企业核心资产。根据Gartner统计,超过70%的企业因数据孤岛问题导致决策延迟,而高效可靠的数据库同步方案正是破解这一困局的关键技术。本文将深度解析数据库同步的核心逻辑、主流方案及实践策略,助企业构…...
微信小程序开发,登录注册实现
文章目录 1. 官方文档教程2. 注册实现3. 登录实现4. 关于作者其它项目视频教程介绍 1. 官方文档教程 https://developers.weixin.qq.com/miniprogram/dev/framework/路由跳转的几种方式: https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab…...
VSCode怎么同时打开多个页面
VSCode中打开一个文件会把另一个文件覆盖,始终保持打开一个文件的状态,相对于其他IDE是不太习惯的,如果同时打开两个文件页面怎么去设置呢 1、禁用预览模式 2、快速分屏快捷键: Ctrl\ (Windows/Linux) 或 Cmd\ (macOS)...
【多种不同提交方式】通过springboot实现与前端网页数据交互(非常简洁快速)
【多种不同提交方式】通过springboot实现与前端网页数据交互 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是springboot的使用。前后每一小节的内容是存在的有:学习and理解的关联性。【帮帮志系列文章】&am…...
Web 架构之负载均衡全解析
文章目录 一、引言二、思维导图三、负载均衡的定义与作用定义作用1. 提高可用性2. 增强性能3. 实现扩展性 四、负载均衡类型硬件负载均衡代表设备优缺点 软件负载均衡应用层负载均衡代表软件优缺点 网络层负载均衡代表软件优缺点 五、负载均衡算法轮询算法(Round Ro…...
猫咪如厕检测与分类识别系统系列~进阶【一】视频流推流及网页实时展示
前情提要 家里养了三只猫咪,其中一只布偶猫经常出入厕所。但因为平时忙于学业,没法时刻关注牠的行为。我知道猫咪的如厕频率和时长与健康状况密切相关,频繁如厕可能是泌尿问题,停留过久也可能是便秘或不适。为了更科学地了解牠的如…...
DeepSeek全域智能革命:从量子纠缠到星际文明的认知跃迁引言:认知边界的坍缩与重构
一、认知架构的技术基石 1.1 混合专家系统的流形蒸馏 DeepSeek-R2的MoE架构采用微分流形蒸馏技术,将6710亿参数的教师模型(如DeepSeek-Prover-V2)的知识嵌入到动态路由网络中。通过辛几何约束下的参数投影,模型在保留数学证明能…...
Mkdocs页面如何嵌入PDF
嵌入PDF 嵌入PDF代码 ,注意PDF的相对地址 <iframe src"../个人简历.pdf (相对地址)" width"100%" height"800px" style"border: 1px solid #ccc; overflow: auto;"></iframe>我的完整代码: <d…...
JS进阶DAY2 构造函数数据常用函数
深入对象 1.创建对象的三种方式 1.利用对象字面量创建对象 const o{ name:佩奇 } 2.利用 new Object 创建对象 const onew Object({ name:佩奇}) console.log(o) //{name:佩奇} 3.利用构造函数创建对象 2.构造函数 构造函数:是一种特殊的函数,主要用来初始…...
【ARM AMBA AHB 入门 3 -- AHB 总线介绍】
请阅读【ARM AMBA 总线 文章专栏导读】 文章目录 AHB Bus 简介AHB Bus 构成AHB BUS 工作机制AHB 传输阶段 AHB InterfacesAHB仲裁信号 AHB 数据访问零等待传输(no waitstatetransfer)等待传输(transfers with wait states)多重传送(multipletransfer)--Pipeline AHB 控制信号 A…...
计划评审技术PERT
计划评审技术(Program Evaluation and Review Technique,PERT)是一种用于项目管理和分析的工具,主要用于估算项目完成时间、识别关键路径以及评估项目进度风险。它最初是在20世纪50年代由美国海军开发的,用于管理复杂的…...
【Leetcode 每日一题 - 扩展】3342. 到达最后一个房间的最少时间 II
问题背景 有一个地窖,地窖中有 n m n \times m nm 个房间,它们呈网格状排布。 给你一个大小为 n m n \times m nm 的二维数组 m o v e T i m e moveTime moveTime,其中 m o v e T i m e [ i ] [ j ] moveTime[i][j] moveTime[i][j] 表…...
Linux57配置MYSQL YUM源
错了,弄错了下载地址 显示没MYSQL 刚才YUM包弄错了 下的是rpm文件 应该安装 通过yum install安装 .repo中的enabled需要修改 哪些能修改 哪些不改 配置特定软件的YUM仓库 nginx看教程有官方文档 将官方文档中YUM配置写入.repo文件然后yum clean all yum ma…...
Kafka是什么?典型应用场景有哪些? (消息队列、流处理平台;日志收集、实时分析、事件驱动架构等)
Kafka 核心解析与场景代码示例 一、Kafka核心概念 Apache Kafka 是分布式流处理平台,具备以下核心能力: 发布-订阅模型:支持多生产者/消费者并行处理持久化存储:消息默认保留7天(可配置)分区机制&#x…...
数据实验分析
数据分析数据分类与绘图数据分类方法:通过指定列名和函数(如SUM)来分类数据,确保数据集中包含所需列,否则会报错。嵌套柱形图应用:嵌套柱形图用于展示多层次分类的数据,如按店名和化妆品类别分类…...
PostgreSQL中“参数默认值实现伪重载“详解
什么是伪重载? "伪重载"指的是通过单一函数定义配合参数默认值和条件逻辑来模拟传统编程语言中方法重载的效果。与真正的函数重载(PostgreSQL支持的多同名函数不同参数实现)不同,伪重载是在一个函数内部处理不同参数组…...
在IDEA中编写Spark程序并运行
Spark是基于scala的,当然它也可以支持java和scala还有python语言,我们这里会使用scala。 1.在Idea中安装插件,使得Idea中可以编写scala代码。 2.使用Maven创建项目,并在pom.xml文件中配置相关的依赖。 3.设置maven依赖项。修改po…...
知识图谱:AI大脑中的“超级地图”如何炼成?
人类看到“苹果”一词,会瞬间联想到“iPhone”“乔布斯”“牛顿”,甚至“维生素C”——这种思维跳跃的背后,是大脑将概念连结成网的能力。而AI要模仿这种能力,需要一张动态的“数字地图”来存储和链接知识,这就是知识…...